Puedes conectarte a una instancia de Redis desde funciones de 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 función 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.
Función de ejemplo
Esta función de ejemplo establece una conexión con una instancia de Redis desde funciones de Cloud Run.
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/functions/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/functions/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/functions/memorystore/redis
El código de muestra incrementa un contador de Redis cada vez que se activa la función:
Go
Esta función usa el cliente
github.com/gomodule/redigo/redis
.
Node.js
Esta función usa el módulo redis
.
Python
Esta función usa el paquete redis-py
.
Desplegar el ejemplo en Cloud Run Functions
Para desplegar la funció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 RFC 1918, RFC 6598 y de clase E de IPv4.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 la implementación de la función, obtén su URL:
gcloud run services describe visit-count \ --region=REGION
Verás cómo aumenta el contador cada vez que activas la función enviando una solicitud GET
a su URL.