Puedes conectarte a una instancia de Redis desde Cloud Run Functions con el Acceso a VPC sin servidores.
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.
Configura el Acceso a VPC sin servidores
Para conectarte desde tus Cloud Run Functions 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 crear el conector en la misma región en la que deseas implementar tu función y de que el conector esté conectado a la red de VPC autorizada de la instancia de Redis. Recuerda el nombre del conector.
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 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
En esta función, se usa el paquete redis-py
.
Implementa la muestra en Cloud Run Functions
Implementa la función con Google Cloud CLI:
Go
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=VisitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --entry-point=visitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=visit_count \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Reemplaza lo siguiente:
REGION
por la región en la que deseas implementar la función.BASE_IMAGE
con la imagen base de la función, por ejemplo,go116
,nodejs16
opython310
Para obtener más información, consulta Imágenes base y entornos de ejecución de lenguajes admitidos.PROJECT_ID
por el ID de tu proyecto Google Cloud .CONNECTOR_NAME
por el nombre de tu conectorREDIS_IP
yREDIS_PORT
con 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 su URL:
gcloud run services describe visit-count \ --region=REGION \
Puedes ver cómo aumenta el contador cada vez que activas la función enviando una solicitud GET
a su URL.