Puedes conectarte a una instancia de Redis desde Cloud Run mediante la salida directa de VPC.
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.
Preparar la salida de la red VPC para la configuración
Para conectarte a tu instancia de Redis, tu servicio de Cloud Run debe tener acceso a la red VPC autorizada de la instancia de Redis.
Para encontrar el nombre de esta red, ejecuta el siguiente comando:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Anota el nombre de la red.
Aplicación de ejemplo
Esta aplicación de servidor HTTP de ejemplo establece una conexión con una instancia de Redis desde un servicio de Cloud Run.
Clona el repositorio del lenguaje de programación que hayas elegido 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
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
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.
Desplegar la aplicación en Cloud Run
Para desplegar la aplicación, sigue estos pasos:
Copia el
Dockerfile
en el directorio de origen:cp cloud_run_deployment/Dockerfile .
Crea una imagen de contenedor con Cloud Build ejecutando el siguiente comando:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Despliega el contenedor en Cloud Run ejecutando el siguiente comando:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
donde:
PROJECT_ID
es el ID de tu proyecto. Google CloudREGION
es la región en la que se encuentra tu instancia de Redis.NETWORK
es el nombre de la red VPC autorizada a la que está conectada tu instancia de Redis.SUBNET
es el nombre de tu subred. La subred debe ser/26
o mayor. La salida de VPC directa admite los intervalos IPv4 RFC 1918, RFC 6598 y de clase E.REDIS_IP
yREDIS_PORT
son la dirección IP y el número de puerto de tu instancia de Redis.
Una vez que se haya completado el despliegue, la línea de comandos mostrará la URL de tu servicio de Cloud Run. Visita esta URL en un navegador web (o usa una herramienta como curl
) y verás cómo aumenta el recuento en tu instancia de Redis cada vez que se visite el servicio.