É possível se conectar à sua instância do Redis a partir de instâncias de VMs do Compute Engine que usam a mesma rede autorizada que a instância do Redis.
Configuração
Se você já tiver instalado a Google Cloud CLI, criado uma instância do Redis e um bucket do Cloud Storage, pule estas 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.
Crie um bucket do Cloud Storage em que o artefato do aplicativo para este aplicativo de amostra será carregado. Para mais informações, consulte Criar buckets.
Como definir as configurações do gcloud para o aplicativo de amostra
- Defina o projeto padrão do
gcloud
como seu projeto de aplicativo de amostra.gcloud config set project [PROJECT_ID]
Exemplo de aplicativo
Este aplicativo de servidor HTTP de amostra estabelece uma conexão com uma instância do Redis usando uma instância de VM do Compute 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 implantar o aplicativo em uma VM do Compute Engine
Navegue até o diretório gce_deployment
:
cd gce_deployment
Com o script de implantação, é feito o upload do artefato para o caminho do Cloud Storage. Em seguida, é lançada uma instância do Compute Engine e um firewall é criado para expor a porta 8080. Com o script de inicialização a instância é preparada.
Defina as variáveis de ambiente REDISHOST
e REDISPORT
:
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
em que:
REDISHOST
é o IP da instância gerenciada do Redis.REDISPORT
é a porta da instância do Redis gerenciado por padrão, 6379.
Defina a variável de ambiente GCS_BUCKET_NAME
:
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
em que:
BUCKET_NAME
é o nome do bucket do Cloud Storage.PATH
é um caminho opcional para o diretório em que você quer armazenar o artefato do aplicativo.
Veja uma amostra de script de implantação com que é implantado esse aplicativo em uma nova instância de VM do Compute Engine.
Go
Java
Node.js
Python
Execute o script de implantação:
chmod +x deploy.sh
./deploy.sh
Script de inicialização do aplicativo
Esse script de inicialização é usado na amostra de script de implantação para preparar a instância. Para mais informações sobre scripts de inicialização e sobre como visualizar registros de execução de scripts de inicialização, consulte Como executar scripts de inicialização.
Go
Java
Node.js
Python
Pode levar vários minutos para que o aplicativo de amostra seja implantado na recém-criada instância do Compute Engine.
Quando a instância estiver pronta e o script de inicialização tiver concluído a execução, acesse a página de instâncias do Compute Engine e copie o endereço IP externo.
Para ver o aplicativo de amostra implantado, visite http://[EXTERNAL-IP]:8080
Use o script teardown.sh
para excluir a instância e o firewall criados pelo script de implantação: