Puedes conectarte a una instancia de Redis desde Cloud Run con la salida de VPC directa.
Configuración
Si ya instalaste Google Cloud CLI y creaste una instancia de Redis, puedes omitir estos pasos.
Instala la CLI de gcloud y, luego, 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.
Prepara la salida de la red de VPC para la configuración
Para conectarte a tu instancia de Redis, tu servicio de Cloud Run debe tener acceso a la red de 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)"
Toma nota del nombre de la red.
Aplicación de ejemplo
Esta aplicación del servidor HTTP de muestra establece una conexión con una instancia de Redis desde un servicio de Cloud Run.
Clona el repositorio de tu lenguaje de programación elegido 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
Para implementar la aplicación, haz lo siguiente:
Copia el archivo
Dockerfile
en el directorio fuente:cp cloud_run_deployment/Dockerfile .
Ejecuta el siguiente comando para compilar una imagen de contenedor con Cloud Build:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Ejecuta el siguiente comando para implementar el contenedor en Cloud Run:
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 Cloud .REGION
es la región en la que se encuentra tu instancia de Redis.NETWORK
es el nombre de la red de VPC autorizada a la que está conectada tu instancia de Redis.SUBNET
es el nombre de la subred. La subred debe ser/26
o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598 y 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 la implementación se complete de forma correcta, 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 observa que el recuento en tu instancia de Redis aumenta cada vez que se visita el servicio.