Puedes conectarte a tu instancia de Redis desde instancias de VM de Compute Engine que usen la misma red autorizada que tu instancia de Redis.
Configuración
Si ya has instalado la CLI de Google Cloud, has creado una instancia de Redis y has creado un segmento de Cloud Storage, puedes saltarte estos pasos.
Instala gcloud CLI e inicialízala:
gcloud init
Sigue la guía de inicio rápido para crear una instancia de Redis. Anota la zona, la dirección IP y el puerto de la instancia de Redis.
Crea un segmento de Cloud Storage en el que se subirá el artefacto de la aplicación de ejemplo. Para obtener más información, consulta el artículo Crear segmentos.
Configurar los ajustes de gcloud para la aplicación de ejemplo
- Define el proyecto predeterminado
gcloud
como el proyecto de la aplicación de ejemplo.gcloud config set project [PROJECT_ID]
Aplicación de ejemplo
Esta aplicación de servidor HTTP de ejemplo establece una conexión con una instancia de Redis desde una instancia de VM de Compute Engine.
Clona el repositorio del lenguaje de programación que quieras y ve a la carpeta que contiene el código de ejemplo:
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
Esta aplicación de ejemplo incrementa un contador de Redis cada vez que se accede al endpoint /
.
Go
Esta aplicación usa el cliente de
github.com/gomodule/redigo/redis
. Para instalarlo, ejecuta el siguiente comando:
go get github.com/gomodule/redigo/redis
Java
Esta aplicación se basa en servlets de Jetty 3.1.
Usa la biblioteca Jedis:
La clase AppServletContextListener
se usa para crear un grupo de conexiones de Redis de larga duración:
La clase VisitCounterServlet
es un servlet web que incrementa un contador de Redis:
Node.js
Esta aplicación usa el módulo redis
.
Python
Esta aplicación usa Flask
para el servicio web y el paquete redis-py
para comunicarse con la instancia de Redis.
Desplegar la aplicación en una VM de Compute Engine
Ve al directorio gce_deployment
:
cd gce_deployment
La secuencia de comandos de implementación sube el artefacto a la ruta de Cloud Storage. A continuación, inicia una instancia de Compute Engine y crea un cortafuegos para exponer el puerto 8080. A continuación, la secuencia de comandos de inicio prepara la instancia.
Define las variables de entorno REDISHOST
y REDISPORT
:
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
donde:
REDISHOST
es la IP de la instancia de Redis gestionada.REDISPORT
es el puerto de la instancia de Redis gestionada. El valor predeterminado es 6379.
Define la variable de entorno GCS_BUCKET_NAME
:
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
donde:
BUCKET_NAME
es el nombre de tu segmento de Cloud Storage.PATH
es una ruta opcional al directorio en el que quieres almacenar el artefacto de la aplicación.
Aquí tienes un ejemplo de secuencia de comandos de implementación que despliega esta aplicación en una nueva instancia de VM de Compute Engine.
Go
Java
Node.js
Python
Ejecuta la secuencia de comandos de implementación:
chmod +x deploy.sh
./deploy.sh
Secuencia de comandos de inicio de la aplicación
Esta secuencia de comandos de inicio se usa en la secuencia de comandos de implementación de ejemplo para preparar la instancia. Para obtener más información sobre las secuencias de comandos de inicio y cómo ver los registros de ejecución de las secuencias de comandos de inicio, consulta Ejecutar secuencias de comandos de inicio.
Go
Java
Node.js
Python
La aplicación de ejemplo puede tardar varios minutos en desplegarse en la instancia de Compute Engine que acabas de crear.
Una vez que la instancia esté lista y la secuencia de comandos de inicio se haya ejecutado, ve a la página de instancias de Compute Engine y copia la dirección IP externa.
Para ver la aplicación de ejemplo que has implementado, ve a http://[EXTERNAL-IP]:8080.
Puedes usar la secuencia de comandos teardown.sh
para eliminar la instancia y el cortafuegos creados por la secuencia de comandos de implementación: