Sie können über Cloud Run Functions mithilfe von ausgehendem Direct VPC-Traffic eine Verbindung zu einer Redis-Instanz herstellen.
Einrichtung
Wenn Sie das Google Cloud CLI bereits installiert und eine Redis-Instanz erstellt haben, können Sie diese Schritte überspringen.
Installieren Sie die gcloud CLI und initialisieren Sie sie:
gcloud initFolgen Sie der Schnellstartanleitung zum Erstellen einer Redis-Instanz. Notieren Sie sich die Zone, die IP-Adresse und den Port der Redis-Instanz.
Ausgehenden VPC-Netzwerk für die Konfiguration vorbereiten
Zum Herstellen einer Verbindung zu Ihrer Redis-Instanz benötigt Ihre Cloud Run-Funktion Zugriff auf das autorisierte VPC-Netzwerk der Redis-Instanz.
Führen Sie den folgenden Befehl aus, um den Namen dieses Netzwerks zu ermitteln:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Notieren Sie sich den Netzwerknamen.
Beispielfunktion
Diese Beispielfunktion stellt eine Verbindung zu einer Redis-Instanz über Cloud Run Functions her.
Klonen Sie das Repository für die gewünschte Programmiersprache und rufen Sie den Ordner auf, der den Beispielcode enthält:
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
Der Beispielcode erhöht jedes Mal, wenn die Funktion ausgelöst wird, einen Redis-Zähler:
Go
Diese Funktion verwendet den github.com/gomodule/redigo/redis-Client.
Node.js
Diese Funktion verwendet das Modul redis.
Python
Diese Funktion verwendet das Paket redis-py.
Beispiel in Cloud Run Functions bereitstellen
So stellen Sie die Funktion bereit:
Kopieren Sie die Datei
Dockerfilein das Quellverzeichnis:cp cloud_run_deployment/Dockerfile .Erstellen Sie mit Cloud Build ein Container-Image, indem Sie den folgenden Befehl ausführen:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Stellen Sie den Container in Cloud Run bereit, indem Sie den folgenden Befehl ausführen:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORTDabei gilt:
PROJECT_IDist die ID Ihres Google Cloud -Projekts.REGIONist die Region, in der sich Ihre Redis-Instanz befindet.NETWORKist der Name des autorisierten VPC-Netzwerk, mit dem Ihre Redis-Instanz verbunden ist.SUBNETist der Name Ihres Subnetzes. Das Subnetz muss/26oder größer sein. Ausgehender Direct VPC-Traffic unterstützt die IPv4-Bereiche RFC 1918, RFC 6598 und die Klasse E.REDIS_IPundREDIS_PORTsind die IP-Adresse und die Portnummer Ihrer Redis-Instanz.
Rufen Sie nach Abschluss der Funktionsbereitstellung die URL Ihrer Funktion ab:
gcloud run services describe visit-count \ --region=REGION
Sie können sehen, wie der Zähler jedes Mal erhöht wird, wenn Sie die Funktion auslösen, indem Sie eine GET-Anfrage an die zugehörige URL senden.