Vous pouvez vous connecter à une instance Redis à partir d'instances de VM Compute Engine utilisant le même réseau autorisé que votre instance Redis.
Configuration
Si vous avez déjà installé la CLI Google Cloud, créé une instance Redis et un bucket Cloud Storage, vous pouvez ignorer ces étapes.
Installez la gcloud CLI et initialisez-la:
gcloud init
Suivez le Guide de démarrage rapide pour créer une instance Redis. Retenez la zone, l'adresse IP et le port de l'instance Redis.
Créez un bucket Cloud Storage dans lequel l'artefact d'application de cet exemple d'application sera chargé. Pour en savoir plus, consultez Créez des buckets.
Configurer des paramètres gcloud pour l'exemple d'application
- Définissez le projet par défaut
gcloud
sur votre exemple de projet d'application.gcloud config set project [PROJECT_ID]
Exemple d'application
Cet exemple d'application de serveur HTTP établit une connexion à une instance Redis à partir d'une instance de VM Compute Engine.
Clonez le dépôt correspondant au langage de programmation souhaité et accédez au dossier contenant l'exemple de code :
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
Cet exemple de code incrémente un compteur Redis à chaque accès au point de terminaison /
.
Go
Cette application utilise le client github.com/gomodule/redigo/redis
. Installez-le en exécutant la commande suivante :
go get github.com/gomodule/redigo/redis
Java
Cette application est basée sur un servlet Jetty 3.1.
Il utilise la bibliothèque Jedis :
La classe AppServletContextListener
permet de créer un pool de connexions Redis longue durée :
La classe VisitCounterServlet
est un servlet Web qui incrémente un compteur Redis :
Node.js
Cette application utilise le module redis
.
Python
Cette application utilise Flask pour la diffusion Web et le package redis-py
pour communiquer avec l'instance Redis.
Déployer l'application vers une VM Compute Engine
Accédez au répertoire gce_deployment
:
cd gce_deployment
Le script de déploiement importe l'artefact vers le chemin d'accès Cloud Storage. Il lance ensuite une instance Compute Engine, ce qui crée un pare-feu pour exposer le port 8080. Enfin, le script de démarrage prépare l'instance.
Définissez les variables d'environnement REDISHOST
et REDISPORT
:
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
où :
REDISHOST
est l'adresse IP de l'instance Redis gérée.REDISPORT
est le port de l'instance Redis gérée 6379 par défaut.
Définissez la variable d'environnement GCS_BUCKET_NAME
:
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
où :
BUCKET_NAME
est le nom du bucket Cloud Storage.PATH
est un chemin d'accès facultatif vers le répertoire dans lequel vous souhaitez stocker l'artefact de l'application.
Voici un exemple de script de déploiement qui déploie cette application sur une nouvelle instance de VM Compute Engine.
Go
Java
Node.js
Python
Exécutez le script de déploiement :
chmod +x deploy.sh
./deploy.sh
Script de démarrage de l'application
Ce script de démarrage est utilisé dans l'exemple de script de déploiement pour préparer l'instance. Pour en savoir plus sur les scripts de démarrage et l'affichage des journaux d'exécution du script de démarrage, consultez la section Exécuter des scripts de démarrage.
Go
Java
Node.js
Python
Le déploiement de l'exemple d'application sur la nouvelle instance Compute Engine peut prendre plusieurs minutes.
Une fois l'instance prête et l'exécution du script de démarrage terminée, accédez à la page Instances de VM de Compute Engine, puis copiez l'adresse IP externe.
Pour afficher l'exemple d'application que vous avez déployé, accédez à http://[EXTERNAL-IP]:8080.
Vous pouvez utiliser le script teardown.sh
pour supprimer l'instance et le pare-feu créés par le script de déploiement :