As aplicações do App Engine têm de estar na mesma rede autorizada que a instância do Redis para acederem à mesma.
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.
Aplicação de exemplo
Esta aplicação de servidor HTTP de exemplo estabelece uma ligação a uma instância do Redis a partir de uma instância do ambiente flexível do App Engine.
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/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
Esta aplicação de exemplo incrementa um contador do Redis sempre que o ponto final /
é acedido.
Ir
Esta aplicação usa o cliente
github.com/gomodule/redigo/redis
. Instale-o executando o seguinte comando:
go get github.com/gomodule/redigo/redis
Java
Esta aplicação baseia-se no servlet Jetty 3.1.
Usa a biblioteca Jedis:
A classe AppServletContextListener
é usada para criar um conjunto de ligações Redis de longa duração:
A classe VisitCounterServlet
é um servlet Web que incrementa um contador Redis:
Node.js
Esta aplicação usa o módulo redis
.
Python
Esta aplicação usa o Flask
para o serviço Web e o pacote redis-py
para comunicar com a instância do Redis.
Preparar a aplicação para implementação
Para aceder à instância do Redis, a instância do App Engine tem de ser implementada na mesma rede autorizada que a instância do Redis, e tem de fornecer os detalhes de ligação da instância do Redis. Pode encontrar a rede autorizada, o endereço IP e a porta da sua instância do Redis executando o seguinte comando:
gcloud redis instances describe [INSTANCE_ID] --region [REGION]
Crie uma aplicação do App Engine.
Atualize a configuração da app para especificar o endereço IP, a porta e a rede da sua instância do Redis:
Ir
Atualize o ficheiro
gae_flex_deployment/app.yaml
:Consulte o artigo Configurar a sua app com app.yaml para mais detalhes.
Java
Atualize o ficheiro
gae_flex_deployment/app.yaml
para especificar a rede da instância do Redis:Atualize o ficheiro
src/main/resources/application.properties
com o endereço IP e a porta da sua instância do Redis:Para mais informações sobre a configuração da sua app, consulte o artigo Configurar a sua app com app.yaml.
Node.js
Atualize o ficheiro
gae_flex_deployment/app.yaml
:Consulte o artigo Configurar a sua app com app.yaml para mais detalhes.
Python
Atualize o ficheiro
gae_flex_deployment/app.yaml
:Consulte o artigo Configurar a sua app com app.yaml para mais detalhes.
Implementar a aplicação no ambiente flexível do App Engine
Para implementar a aplicação:
Copie os ficheiros de configuração necessários para o diretório de origem:
Ir
Copie o ficheiro
app.yaml
para o diretório de origem:cp gae_flex_deployment/app.yaml .
Java
Copie o ficheiro
app.yaml
para o diretório de origem:mkdir -p src/main/appengine cp gae_flex_deployment/app.yaml src/main/appengine/
Node.js
Copie o ficheiro
app.yaml
para o diretório de origem:cp gae_flex_deployment/app.yaml .
Python
Copie o ficheiro
app.yaml
para o diretório de origem:cp gae_flex_deployment/app.yaml .
Execute o comando de implementação:
Ir
gcloud app deploy
Esta operação pode demorar alguns minutos.
Java
mvn appengine:deploy
Esta operação pode demorar alguns minutos.
Node.js
gcloud app deploy
Esta operação pode demorar alguns minutos.
Python
gcloud app deploy
Esta operação pode demorar alguns minutos.
Após a conclusão da implementação, visite a sua app no seguinte URL,
substituindo [PROJECT_ID]
pelo ID do seu Google Cloud projeto:
https://[PROJECT_ID].appspot.com
A contagem na sua instância do Redis aumenta sempre que a app é visitada.