Vous pouvez vous connecter à une instance Redis à partir de Cloud Run à l'aide de la sortie VPC directe ou 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.
Préparer la sortie réseau VPC pour la configuration
Pour se connecter à votre instance Redis, votre service Cloud Run doit avoir accès au réseau VPC autorisé de votre instance Redis. Pour activer cet accès, vous avez besoin de la sortie VPC directe ou d'un connecteur d'accès au VPC sans serveur. Comparez les deux méthodes de sortie réseau.
Recherchez le nom du réseau autorisé de votre instance Redis en exécutant la commande suivante:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Notez le nom du réseau.
Si vous utilisez l'accès au VPC sans serveur, créez un connecteur. Veillez à utiliser la même région et le même réseau VPC que ceux utilisés par l'instance Redis. Notez le nom du connecteur.
Exemple d'application
Cet exemple d'application de serveur HTTP établit une connexion à une instance Redis à partir d'un service Cloud Run.
Clonez le dépôt correspondant au langage de programmation choisi et accédez au dossier contenant l'exemple de code:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-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
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 dans Cloud Run
Pour déployer l'application, procédez comme suit :
Copiez le fichier
Dockerfile
dans le répertoire source :cp cloud_run_deployment/Dockerfile .
Utilisez Cloud Build pour créer une image de conteneur à l'aide de la commande suivante :
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Déployez le conteneur dans Cloud Run.
Si vous utilisez la sortie VPC directe, exécutez la commande suivante:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
où :
PROJECT_ID
est l'ID de votre projet Google Cloud.REGION
est la région dans laquelle se trouve votre instance Redis.NETWORK
est le nom du réseau VPC autorisé auquel votre instance Redis est associée.SUBNET
est le nom de votre sous-réseau. Le sous-réseau doit être/26
ou supérieur. La sortie VPC directe est compatible avec les plages IPv4 RFC 1918, RFC 6598 et Classe E.REDIS_IP
etREDIS_PORT
sont l'adresse IP et le numéro de port de votre instance Redis.
Si vous utilisez un connecteur d'accès au VPC sans serveur, exécutez la commande suivante:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --vpc-connector CONNECTOR_NAME \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
où :
PROJECT_ID
est l'ID de votre projet Google Cloud.REGION
est la région où se trouvent le connecteur d'accès au VPC sans serveur et votre instance Redis.CONNECTOR_NAME
est le nom du connecteur.REDIS_IP
etREDIS_PORT
sont l'adresse IP et le numéro de port de votre instance Redis.
Une fois le déploiement terminé, la ligne de commande affiche l'URL de votre service Cloud Run. Accédez à cette URL dans un navigateur Web (ou utilisez un outil tel que curl
) et observez le compteur sur votre instance Redis à chaque visite du service.