Puedes conectarte a una instancia de Redis desde Cloud Run Functions usando 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 e inicializa:
gcloud initSigue 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 función 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.
Función de muestra
Esta función de muestra establece una conexión con una instancia de Redis desde Cloud Run Functions.
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/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 genera un aumento en un contador de Redis cada vez que se activa la función:
Go
En esta función, se usa el
github.com/gomodule/redigo/redis
cliente.
Node.js
En esta función, se usa el redis
módulo.
Python
En esta función, se usa el
redis-py paquete.
Implementa la muestra en Cloud Run Functions
Sigue estos pasos para implementar la función:
Copia el archivo
Dockerfileen el directorio del código fuente:cp ../../../memorystore/redis/cloud_run_deployment/Dockerfile .Compila una imagen de contenedor con Cloud Build a través del siguiente comando:
gcloud artifacts repositories create --location REPO_REGION --repository-format=docker REPO_ID gcloud builds submit --pack image=REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1,builder=gcr.io/buildpacks/builder:latest,env=GOOGLE_FUNCTION_SIGNATURE_TYPE=http,env=GOOGLE_FUNCTION_TARGET=VisitCount
Implementa el contenedor en Cloud Run a través del siguiente comando:
gcloud run deploy \ --image REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1 \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Donde:
REPO_REGIONes la región del repositorio.REPO_IDes el nombre del repositorio que contiene la imagen de la aplicación.PROJECT_IDes el ID de tu Google Cloud proyecto.REGIONes la región en la que se encuentra tu instancia de Redis.NETWORKes el nombre de la red de VPC autorizada a la que está conectada tu instancia de Redis.SUBNETes el nombre de la subred. La subred debe ser/26o mayor. La salida de VPC directa es compatible con los rangos IPv4 RFC 1918, RFC 6598, y clase E.REDIS_IPyREDIS_PORTson la dirección IP y el número de puerto de tu instancia de Redis.
Cuando finalice la implementación de la función, recupera la URL de tu función:
gcloud run services describe visit-count \ --region=REGION
Puedes ver el aumento del contador cada vez que activas la función enviando una solicitud GET a su URL.