Puedes conectarte a una instancia de Redis desde el entorno estándar de App Engine mediante Acceso a VPC sin servidor.
Configuración
Si ya has instalado la CLI de Google Cloud y has creado una instancia de Redis, puedes saltarte estos pasos.
Instala gcloud CLI e inicialízala:
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.
Configurar Acceso a VPC sin servidor
Para conectar tu aplicación de App Engine a la red de VPC autorizada de tu instancia de Redis, debes configurar Acceso a VPC sin servidor.
Para encontrar la red autorizada de tu instancia de Redis, ejecuta el siguiente comando:
gcloud redis instances describe [INSTANCE_ID] --region [REGION]
Sigue las instrucciones de la sección Crear un conector para crear un conector de Acceso a VPC sin servidor. Asegúrate de crear el conector en la misma región que tu aplicación y de que el conector esté asociado a la red de VPC autorizada de la instancia de Redis. Recuerda el nombre del conector.
Aplicación de ejemplo
Esta aplicación de servidor HTTP de ejemplo establece una conexión con una instancia de Redis desde una aplicación de entorno estándar de App Engine.
Clona el repositorio del lenguaje de programación que quieras y ve a la carpeta que contiene el código de ejemplo:
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 ejemplo incrementa un contador de Redis cada vez que se accede al endpoint /
.
Go
Esta aplicación usa el cliente de
github.com/gomodule/redigo/redis
. Para instalarlo, ejecuta el siguiente comando:
go get github.com/gomodule/redigo/redis
Java
Esta aplicación se basa en servlets de Jetty 3.1.
Usa la biblioteca 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
Esta aplicación usa el módulo redis
.
Python
Esta aplicación usa Flask
para el servicio web y el paquete redis-py
para comunicarse con la instancia de Redis.
Preparar la aplicación para el despliegue
Para acceder a la instancia de Redis, la aplicación de App Engine debe configurarse para usar tu conector de acceso a VPC sin servidor y debes proporcionar los detalles de conexión de tu instancia de Redis.
Si aún no tienes una, crea una aplicación de App Engine.
Actualiza la configuración de la aplicación para especificar el conector de acceso a VPC sin servidor, la dirección IP y el puerto de tu instancia de Redis:
Go
Actualiza el archivo de
gae_standard_deployment/app.yaml
:Para obtener más información, consulta el artículo Archivo de configuración app.yaml.
Java
Actualiza el archivo
gae_standard_deployment/appengine-web.xml
para especificar tu conector de Acceso a VPC sin servidor:Actualiza el archivo
src/main/resources/application.properties
con la dirección IP y el puerto de tu instancia de Redis:Para obtener más información sobre cómo configurar tu aplicación, consulta la referencia de appengine-web.xml.
Node.js
Actualiza el archivo de
gae_standard_deployment/app.yaml
:Para obtener más información, consulta el artículo Archivo de configuración app.yaml.
Python
Actualiza el archivo de
gae_standard_deployment/app.yaml
:Para obtener más información, consulta el artículo Archivo de configuración app.yaml.
Desplegar la aplicación en el entorno estándar de App Engine
Para desplegar la aplicación, sigue estos pasos:
Copia los archivos de configuración necesarios en el directorio de origen:
Go
Copia los archivos
app.yaml
ygo.mod
en el directorio de origen:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
Copia el archivo
appengine-web.xml
en el directorio de origen: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 de origen:cp gae_standard_deployment/app.yaml .
Python
Copia el archivo
app.yaml
en el directorio de origen: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
Una vez completada la implementación, el comando mostrará la URL en la que puedes visitar tu aplicación. Si visitas esta URL, verás cómo aumenta el recuento en tu instancia de Redis cada vez que se carga la página.