Vous pouvez vous connecter à une instance Redis à partir de l'environnement standard App Engine à l'aide de l'accès au VPC sans serveur.
Prérequis
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:
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 :
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/memorystore/redis
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/memorystore/redis
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 /
.
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
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 :
Cette application utilise le module redis
.
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 :
Mettez à jour le fichier
gae_standard_deployment/app.yaml
:Pour en savoir plus, consultez la page Fichier de configuration app.yaml.
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.
Mettez à jour le fichier
gae_standard_deployment/app.yaml
:Pour en savoir plus, consultez la page Fichier de configuration app.yaml.
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 :
Copiez les fichiers
app.yaml
etgo.mod
dans le répertoire source :cp gae_standard_deployment/{app.yaml,go.mod} .
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/
Copiez le fichier
app.yaml
dans le répertoire source :cp gae_standard_deployment/app.yaml .
Copiez le fichier
app.yaml
dans le répertoire source :cp gae_standard_deployment/app.yaml .
Exécutez la commande deploy :
gcloud app deploy
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
gcloud app deploy
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.