Puedes conectarte a una instancia de Redis desde Cloud Run Functions con Acceso a VPC sin servidores.
Configuración
Si ya instalaste Google Cloud CLI y creaste una instancia de 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 tu instancia de Redis red de VPC autorizada, 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 ejemplo establece una conexión a una instancia de Redis desde 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
Esta función usa redis
módulo.
Python
Esta función usa el
redis-py
.
Implementa la muestra en 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 actives la función, envía
una solicitud GET
a su URL.