Vous pouvez vous connecter à une instance Redis à partir de fonctions Cloud Run à 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 gcloud CLI et initialisez-le :
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 à partir de vos fonctions Cloud Run au réseau VPC autorisé de votre instance Redis, 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 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 où vous souhaitez déployer votre fonction, et assurez-vous qu'il est associé au réseau VPC autorisé de l'instance Redis. Mémorisez le nom du connecteur.
Exemple de fonction
Cet exemple de fonction établit une connexion à une instance Redis à partir des fonctions Cloud Run.
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/functions/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/functions/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/functions/memorystore/redis
L'exemple de code incrémente un compteur Redis chaque fois que la fonction est déclenchée :
Go
Cette fonction utilise le client github.com/gomodule/redigo/redis
.
Node.js
Cette fonction utilise le module redis
.
Python
Cette fonction utilise le package redis-py
.
Déployer l'exemple sur Cloud Run Functions
Déployez la fonction à l'aide de Google Cloud CLI :
Go
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=VisitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --entry-point=visitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=visit_count \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Remplacez :
REGION
par la région dans laquelle vous souhaitez déployer la fonction.BASE_IMAGE
avec l'image de base de la fonction, par exemplego116
,nodejs16
oupython310
. Pour en savoir plus, consultez Environnements d'exécution et images de base des langages compatibles.PROJECT_ID
par l'ID de votre Google Cloud projet.CONNECTOR_NAME
par le nom de votre connecteur.REDIS_IP
etREDIS_PORT
par l'adresse IP et le numéro de port de votre instance Redis.
Une fois le déploiement de la fonction terminé, récupérez son URL :
gcloud run services describe visit-count \ --region=REGION \
Vous pouvez voir le compteur augmenter chaque fois que vous déclenchez la fonction en envoyant une requête GET
à son URL.