Puedes conectarte a una instancia de Redis desde las funciones de Cloud Run mediante el Acceso a VPC sin servidores.
Configuración
Si ya instalaste Google Cloud CLI y creaste un Redis puedes omitir estos pasos.
Instala gcloud CLI 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 conectarte desde tus funciones de Cloud Run a la red de VPC autorizada de tu instancia de Redis, debes configurar el acceso a VPC sin servidores.
Encuentra la red autorizada de tu instancia de Redis mediante la ejecución del siguiente comando:
gcloud redis instances describe INSTANCE_ID --region REGION
Sigue las instrucciones para crear un conector a fin de crear un conector de Acceso a VPC sin servidores. Asegúrate de crea el conector en la misma región en la que quieres implementar tu y asegúrate de que el conector esté conectado al extremo de red de VPC autorizada. Recuerda el nombre del conector.
Función de muestra
Esta función de muestra establece una conexión con una instancia de Redis desde las funciones de Cloud Run.
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 incrementa un contador de Redis cada vez que se activa la función:
Go
En esta función, se usa el cliente github.com/gomodule/redigo/redis
.
Node.js
En esta función, se usa el módulo redis
.
Python
Esta función usa el
redis-py
.
Implementa la muestra en las funciones de Cloud Run
Implementa la función con Google Cloud CLI:
Go
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=go116 \ --source=. \ --entry-point=VisitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=nodejs16 \ --source=. \ --entry-point=visitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=python310 \ --source=. \ --entry-point=visit_count \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/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 región en la que deseas implementar la función.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.
Cuando finalice la implementación de la función, recupera la URL de la función:
gcloud functions describe visit-count \ --gen2 \ --region=REGION \ --format="value(serviceConfig.uri)"
Para ver el aumento del contador cada vez que activas la función, envía una solicitud GET
a su URL.