É possível se conectar a uma instância do Redis a partir das funções do Cloud Run usando a saída direta da VPC.
Configuração
Essas etapas podem ser ignoradas se você já tiver instalado a Google Cloud CLI e criado uma instância do Redis.
Instale a CLI gcloud e inicialize:
gcloud init
Siga o Guia de início rápido para criar uma instância do Redis. Anote a zona, o endereço IP e a porta da instância do Redis.
Preparar a saída da rede VPC para configuração
Para se conectar à instância do Redis, a função do Cloud Run precisa ter acesso à rede VPC autorizada da instância do Redis.
Para encontrar o nome dessa rede, execute o seguinte comando:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Anote o nome da rede.
Exemplo de função
Esta função de amostra estabelece uma conexão com uma instância do Redis a partir do Cloud Run functions.
Clone o repositório da linguagem de programação pretendida e navegue até a pasta que contém o código de amostra:
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
O código de amostra incrementa um contador do Redis sempre que a função é acionada:
Go
Essa função usa o cliente github.com/gomodule/redigo/redis
.
Node.js
Essa função usa o módulo redis
.
Python
Essa função usa o pacote
redis-py
.
Como implantar a amostra no Cloud Run functions
Para implantar a função, siga estas etapas:
Copie
Dockerfile
no diretório de origem:cp cloud_run_deployment/Dockerfile .
Crie uma imagem de contêiner usando o Cloud Build. Para isso, execute o comando a seguir:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Implante o contêiner no Cloud Run executando o seguinte comando:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
em que:
PROJECT_ID
é o ID do seu projeto Google Cloud .REGION
é a região em que a instância do Redis está localizada.NETWORK
é o nome da rede VPC autorizada a que a instância do Redis está anexada.SUBNET
é o nome da sub-rede. A sub-rede precisa ser/26
ou maior. A saída de VPC direta é compatível com intervalos IPv4 RFC 1918, RFC 6598 e classe E.REDIS_IP
eREDIS_PORT
são o endereço IP e o número da porta da instância do Redis.
Após a conclusão da implantação da função, recupere o URL dela:
gcloud run services describe visit-count \ --region=REGION
É possível ver o contador aumentar sempre que você aciona a função enviando
uma solicitação GET
para o URL dela.