Puedes conectarte a una instancia de Redis desde Cloud Functions mediante el acceso a VPC sin servidores. Tus funciones deben estar en la misma región que la instancia de Redis.
Configuración
Si ya instalaste el SDK de Cloud y creaste una instancia de Redis, puedes omitir estos pasos.
Instala el SDK de Cloud 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 Cloud 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 beta 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 que tu función y tu instancia de Redis, y asegúrate 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 a una instancia de Redis desde Cloud 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
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
.
Implementa la muestra en Cloud Functions
Implementa la función mediante el uso de la herramienta de línea de comandos de gcloud
:
Go
gcloud functions deploy VisitCount \ --runtime go111 \ --trigger-http \ --region [REGION] \ --vpc-connector projects/[PROJECT_ID]/locations/[REGION]/connectors/[CONNECTOR_NAME] \ --set-env-vars REDISHOST=[REDIS_IP],REDISPORT=[REDIS_PORT]
Node.js
gcloud functions deploy visitCount \ --runtime nodejs10 \ --trigger-http \ --region [REGION] \ --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 \ --runtime python37 \ --trigger-http \ --region [REGION] \ --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 misma región en la que se encuentran el conector de acceso a VPC sin servidores y la instancia de Redis.[CONNECTOR_NAME]
es el nombre del conector.[REDIS_IP]
y[REDIS_PORT]
son la dirección IP y el número de puerto de tu instancia de Redis.
Una vez que finalice la implementación de la función, verifica el aumento de recuento de visitas mediante el envío de una solicitud GET
a la URL de tu función:
Go
https://[REGION]-[PROJECT_ID].cloudfunctions.net/VisitCount
Node.js
https://[REGION]-[PROJECT_ID].cloudfunctions.net/visitCount
Python
https://[REGION]-[PROJECT_ID].cloudfunctions.net/visit_count