Puedes conectarte a una instancia de Redis desde Cloud Run (completamente administrado) mediante el Acceso a VPC sin servidores. Tu servicio de Cloud Run debe estar en la misma región que la instancia de Redis.
Configuración
Si ya instalaste el SDK de Cloud y creaste una instancia de Redis, puedes omitir estos pasos.
Instala el SDK de Cloud y, luego, inicializa:
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 conectarse a tu instancia de Redis, tu servicio de Cloud Run (completamente administrado) necesita acceso a la red de VPC autorizada de la instancia de Redis. Para habilitar este acceso, necesitas un conector de acceso a VPC sin servidores:
Busca el nombre de la red autorizada de tu instancia de Redis con el siguiente comando:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
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 instancia de Redis y asegúrate 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 establece una conexión a una instancia de Redis desde un servicio de Cloud Run (completamente administrado).
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
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
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.
Implementa la aplicación en Cloud Run (completamente administrado)
Para implementar la aplicación, haz lo siguiente:
Copia el archivo
Dockerfile
en el directorio fuente:cp cloud_run_deployment/Dockerfile .
Usa Cloud Build a fin de compilar una imagen de contenedor con el siguiente comando:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Implementa el contenedor en Cloud Run (completamente administrado):
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --vpc-connector CONNECTOR_NAME \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Donde:
PROJECT_ID
es el ID de tu proyecto de Google Cloud.REGION
es la misma región en la que se encuentran el conector de acceso a VPC sin servidores y la instancia de Redis.CONNECTOR_NAME
es el nombre del conector.REDIS_IP
yREDIS_PORT
son la dirección IP y el número de puerto de tu instancia de Redis.
Una vez que la implementación se complete de forma correcta, la línea de comandos muestra la URL de tu servicio de Cloud Run. Visita esta URL en un navegador web (o usa una herramienta como curl
) y observa cómo el recuento en tu instancia de Redis aumenta cada vez que se visita el servicio.