Vous pouvez vous connecter à une instance Redis à partir de l'environnement standard App Engine à l'aide de l'accès au VPC sans serveur.
Configuration
Si vous avez déjà installé Google Cloud CLI et créé une instance Redis, 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.
Configurer l'accès au VPC sans serveur
Pour vous connecter au réseau VPC autorisé de votre instance Redis à partir de votre application App Engine, vous devez configurer l'accès au VPC sans serveur.
Recherchez le réseau autorisé de votre instance Redis en exécutant la commande suivante :
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
Suivez les instructions de la section Créer un connecteur pour créer un connecteur d'accès au VPC sans serveur. Veillez à créer le connecteur dans la même région que votre application et assurez-vous qu'il est associé au réseau VPC autorisé de l'instance Redis. Mémorisez le nom du connecteur.
Exemple d'application
Cet exemple d'application de serveur HTTP établit une connexion à une instance Redis à partir d'une application d'environnement standard App 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.
Préparer l'application pour le déploiement
Pour accéder à l'instance Redis, vous devez configurer l'application App Engine pour qu'elle utilise votre connecteur d'accès au VPC sans serveur et fournir les informations de connexion de votre instance Redis.
Si vous n'en avez pas encore, créez une application App Engine.
Mettez à jour la configuration de l'application pour spécifier votre connecteur d'accès au VPC sans serveur, ainsi que l'adresse IP et le port de votre instance Redis :
Go
Mettez à jour le fichier
gae_standard_deployment/app.yaml
:Pour en savoir plus, consultez la page Fichier de configuration app.yaml.
Java
Mettez à jour le fichier
gae_standard_deployment/appengine-web.xml
pour spécifier votre connecteur d'accès au VPC sans serveur :Enfin, mettez à jour le fichier
src/main/resources/application.properties
avec l'adresse IP et le port de votre instance Redis :Pour en savoir plus sur la configuration de votre application, consultez la documentation de référence sur appengine-web.xml.
Node.js
Mettez à jour le fichier
gae_standard_deployment/app.yaml
:Pour en savoir plus, consultez la page Fichier de configuration app.yaml.
Python
Mettez à jour le fichier
gae_standard_deployment/app.yaml
:Pour en savoir plus, consultez la page Fichier de configuration app.yaml.
Déployer l'application dans l'environnement standard App Engine
Pour déployer l'application, procédez comme suit :
Copiez les fichiers de configuration nécessaires dans le répertoire source :
Go
Copiez les fichiers
app.yaml
etgo.mod
dans le répertoire source :cp gae_standard_deployment/{app.yaml,go.mod} .
Java
Copiez le fichier
appengine-web.xml
dans le répertoire source :mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
Copiez le fichier
app.yaml
dans le répertoire source :cp gae_standard_deployment/app.yaml .
Python
Copiez le fichier
app.yaml
dans le répertoire source :cp gae_standard_deployment/app.yaml .
Exécutez la commande deploy :
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
Une fois le déploiement terminé, la commande génère l'URL vers laquelle vous pouvez accéder à votre application. Si vous consultez cette URL, le nombre d'instances Redis augmente à chaque chargement de la page.