Pode estabelecer ligação a uma instância do Redis a partir de funções do Cloud Run através do Acesso a VPC sem servidor.
Configuração
Se já instalou a CLI Google Cloud e criou uma instância do Redis, pode ignorar estes passos.
Instale a CLI gcloud e inicialize-a:
gcloud init
Siga o guia de início rápido para criar uma instância do Redis. Tome nota da zona, do endereço IP e da porta da instância do Redis.
Configurar o Acesso a VPC sem servidor
Para estabelecer ligação das suas funções do Cloud Run à rede VPC autorizada da instância do Redis, tem de configurar o acesso a VPC sem servidor.
Encontre a rede autorizada da sua instância do Redis executando o comando:
gcloud redis instances describe INSTANCE_ID --region REGION
Siga as instruções em Criar um conetor para criar um conetor do Acesso a VPC sem servidor. Certifique-se de que cria o conector na mesma região onde quer implementar a sua função e certifique-se de que o conector está associado à rede VPC autorizada da instância do Redis. Lembre-se do nome do conetor.
Função de exemplo
Esta função de exemplo estabelece uma ligação a uma instância do Redis a partir de funções do Cloud Run.
Clone o repositório para a linguagem de programação pretendida e navegue para a pasta que contém o código de exemplo:
Ir
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 exemplo de código incrementa um contador do Redis sempre que a função é acionada:
Ir
Esta função usa o
github.com/gomodule/redigo/redis
cliente.
Node.js
Esta função usa o módulo redis
.
Python
Esta função usa o pacote
redis-py
.
Implementar o exemplo nas funções do Cloud Run
Implemente a função através da CLI Google Cloud:
Ir
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
Substituição:
REGION
com a região onde quer implementar a função.BASE_IMAGE
com a imagem base para a função, por exemplo,go116
,nodejs16
oupython310
. Para mais informações, consulte o artigo Tempos de execução de idiomas e imagens base suportados para mais informações.PROJECT_ID
com o ID do Google Cloud projeto.CONNECTOR_NAME
com o nome do conetor.REDIS_IP
eREDIS_PORT
com o endereço IP e o número da porta da sua instância do Redis.
Após a conclusão da implementação da função, obtenha o URL da função:
gcloud run services describe visit-count \ --region=REGION \
Pode ver o contador aumentar sempre que aciona a função enviando um pedido GET
para o respetivo URL.