É possível se conectar a uma instância do Redis a partir do ambiente padrão do App Engine usando o Acesso VPC sem servidor.
Configuração
Se você já instalou a Google Cloud CLI e criou um Redis é possível pular essas etapas.
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.
Configurar o acesso VPC sem servidor
Para se conectar a partir do aplicativo do App Engine à rede VPC autorizada da instância do Redis, configure o acesso VPC sem servidor.
Encontre a rede autorizada da instância do Redis executando o comando:
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
Siga as instruções em Como criar um conector para criar um conector de acesso VPC sem servidor. Certifique-se de criar o conector na mesma região do seu app e verificar se o conector está anexado à rede VPC autorizada da instância do Redis. Lembre-se do nome do conector.
Exemplo de aplicativo
Este aplicativo de servidor HTTP de amostra estabelece uma conexão com uma instância do Redis a partir de um aplicativo de ambiente padrão do App Engine.
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/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis
Este aplicativo de amostra incrementa um contador do Redis sempre que o endpoint
/
é acessado.
Go
Este aplicativo usa o cliente
github.com/gomodule/redigo/redis
. Instale-o executando o comando a seguir:
go get github.com/gomodule/redigo/redis
Java
Esta aplicação é baseada em servlets do Jet 3.1.
Ele usa a biblioteca Jedis (em inglês):
A classe AppServletContextListener
é usada para criar um pool de conexão
Redis de longa duração:
A classe VisitCounterServlet
é um servlet da Web que incrementa um
contador do Redis:
Node.js
Este aplicativo usa o módulo redis
(em inglês).
Python
Este aplicativo usa o Flask
para veiculação na Web e o pacote redis-py
(links em inglês) para se comunicar com a instância do Redis.
Como preparar o aplicativo para implantação
Para acessar a instância do Redis, o aplicativo do App Engine precisa ser configurado para usar o conector de acesso VPC sem servidor, e você precisa fornecer os detalhes de conexão da instância do Redis.
Crie um aplicativo do App Engine se você ainda não tiver um.
Atualize a configuração do aplicativo para especificar o conector de acesso VPC sem servidor e o endereço IP e a porta da instância do Redis:
Go
Atualize o arquivo
gae_standard_deployment/app.yaml
:Consulte Arquivo de configuração do app.yaml para mais detalhes.
Java
Atualize o arquivo
gae_standard_deployment/appengine-web.xml
para especificar o conector de acesso VPC sem servidor:E atualize o arquivo
src/main/resources/application.properties
com o endereço IP e a porta da sua instância do Redis:Para mais informações sobre como configurar seu aplicativo, consulte Referência do appengine-web.xml.
Node.js
Atualize o arquivo
gae_standard_deployment/app.yaml
:Consulte Arquivo de configuração do app.yaml para mais detalhes.
Python
Atualize o arquivo
gae_standard_deployment/app.yaml
:Consulte Arquivo de configuração do app.yaml para mais detalhes.
Como implantar o aplicativo no ambiente padrão do App Engine
Para implantar o aplicativo:
Copie os arquivos de configuração necessários para o diretório de origem:
Go
Copie os arquivos
app.yaml
ego.mod
para o diretório de origem:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
Copie o arquivo
appengine-web.xml
para o diretório de origem:mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
Copie o arquivo
app.yaml
para o diretório de origem:cp gae_standard_deployment/app.yaml .
Python
Copie o arquivo
app.yaml
para o diretório de origem:cp gae_standard_deployment/app.yaml .
Execute o comando de implantação:
Go
gcloud app deploy
Java
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
Node.js
gcloud app deploy
Python
gcloud app deploy
Após a conclusão da implantação, o comando gerará o URL em que você poderá visitar seu aplicativo. Se visitar esse URL, você verá a contagem na sua instância do Redis aumentar sempre que a página for carregada.