Puedes conectarte a una instancia de Redis desde el entorno estándar de App Engine mediante el acceso a VPC sin servidores.
Configuración
Si ya instalaste Google Cloud CLI y creaste una instancia de Redis, puedes omitir estos pasos.
Instala la CLI de gcloud y realiza la inicialización:
gcloud init
Sigue la Guía de inicio rápido para crear una instancia de Redis. Anota la zona, la dirección IP y el puerto de la instancia de Redis.
Configura el Acceso a VPC sin servidores
Para conectarte desde tu aplicación de App Engine a la red de VPC autorizada de la instancia de Redis, debes configurar el acceso a VPC sin servidores.
Encuentra la red autorizada de tu instancia de Redis mediante la ejecución del siguiente comando:
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
Sigue las instrucciones para crear un conector a fin de crear un conector de Acceso a VPC sin servidores. Asegúrate de crear el conector en la misma región que tu app y de que el conector esté conectado a la red de VPC autorizada de la instancia de Redis. Recuerda el nombre del conector.
Aplicación de muestra
Esta aplicación del servidor HTTP de muestra establece una conexión con una instancia de Redis desde una aplicación del entorno estándar de App Engine.
Clona el repositorio de tu lenguaje de programación deseado y navega a la carpeta que contiene el código de muestra:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis
Esta aplicación de muestra aumenta un contador de Redis cada vez que se accede al extremo /
.
Go
En esta aplicación, se usa el cliente github.com/gomodule/redigo/redis
. Para instalarla, ejecuta el siguiente comando:
go get github.com/gomodule/redigo/redis
Java
Esta aplicación se basa en el servlet Jetty 3.1.
Usa la biblioteca de Jedis:
La clase AppServletContextListener
se usa para crear un grupo de conexiones de Redis de larga duración:
La clase VisitCounterServlet
es un servlet web que incrementa un contador de Redis.
Node.js
En esta aplicación, se usa el módulo redis
.
Python
Esta aplicación usa Flask para la entrega web y el paquete redis-py
a fin de comunicarse con la instancia de Redis.
Preparar la aplicación para la implementación
Para acceder a la instancia de Redis, la aplicación de App Engine debe estar configurada a fin de usar tu conector de acceso a VPC sin servidores y debes proporcionar los detalles de conexión de la instancia de Redis.
Si aún no tienes una, crea una aplicación de App Engine.
Actualiza la configuración de la app para especificar el conector de acceso a VPC sin servidores, además de la dirección IP y el puerto de tu instancia de Redis:
Go
Actualiza el archivo
gae_standard_deployment/app.yaml
:Consulta el archivo de configuración app.yaml para obtener más detalles.
Java
Actualiza el archivo
gae_standard_deployment/appengine-web.xml
para especificar el conector de acceso a VPC sin servidores:Actualiza el archivo
src/main/resources/application.properties
mediante la dirección IP y el puerto de tu instancia de Redis:Para obtener más información sobre la configuración de tu aplicación, consulta Referencia de appengine-web.xml.
Node.js
Actualiza el archivo
gae_standard_deployment/app.yaml
:Consulta el archivo de configuración app.yaml para obtener más detalles.
Python
Actualiza el archivo
gae_standard_deployment/app.yaml
:Consulta el archivo de configuración app.yaml para obtener más detalles.
Implementa la app en el entorno estándar de App Engine
Para implementar la aplicación, haz lo siguiente:
Copia los archivos de configuración necesarios en el directorio del código fuente:
Go
Copia los archivos
app.yaml
ygo.mod
en el directorio del código fuente:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
Copia el archivo
appengine-web.xml
en el directorio fuente:mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
Copia el archivo
app.yaml
en el directorio fuente:cp gae_standard_deployment/app.yaml .
Python
Copia el archivo
app.yaml
en el directorio fuente:cp gae_standard_deployment/app.yaml .
Ejecuta el comando de implementación:
Go
gcloud app deploy
Java
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
Node.js
gcloud app deploy
Python
gcloud app deploy
Cuando se complete la implementación, el comando generará la URL en la que puedes visitar tu app. Si visitas esta URL, el recuento en tu instancia de Redis aumentará cada vez que se cargue la página.