Sie können über Cloud Run eine Verbindung zu einer Redis-Instanz herstellen. Verwenden Sie dazu direkten ausgehenden VPC-Traffic (Vorschau) oder den serverlosen VPC-Zugriff.
Einrichtung
Wenn Sie die 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:
gcloud init
Folgen 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 Konfiguration vorbereiten
Zum Herstellen einer Verbindung zu Ihrer Redis-Instanz benötigt Ihr Cloud Run-Dienst Zugriff auf das autorisierte VPC-Netzwerk der Redis-Instanz. Zum Aktivieren dieses Zugriffs benötigen Sie entweder direkten ausgehenden VPC-Traffic oder einen Connector für Serverloser VPC-Zugriff. Vergleich der beiden Methoden für ausgehenden Netzwerktraffic
Ermitteln Sie den Namen des autorisierten Netzwerks Ihrer Redis-Instanz, indem Sie den folgenden Befehl ausführen:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Notieren Sie sich den Netzwerknamen.
Wenn Sie den Serverloser VPC-Zugriff verwenden, erstellen Sie einen Connector. Achten Sie darauf, dieselbe Region und dasselbe VPC-Netzwerk zu verwenden wie die Redis-Instanz. Notieren Sie sich den Namen des Connectors.
Beispielanwendung
Diese HTTP-Server-Beispielanwendung stellt eine Verbindung zu einer Redis-Instanz über einen Cloud Run-Dienst her.
Klonen Sie das Repository für die ausgewählte Programmiersprache und rufen Sie den Ordner mit dem Beispielcode auf:
Einfach loslegen (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
Diese Beispielanwendung erhöht einen Redis-Zähler jedes Mal, wenn auf den Endpunkt /
zugegriffen wird.
Einfach loslegen (Go)
Diese Anwendung verwendet den github.com/gomodule/redigo/redis
-Client. Installieren Sie diesen mit dem folgenden Befehl:
go get github.com/gomodule/redigo/redis
Node.js
Diese Anwendung verwendet das Modul redis
.
Python
Diese Anwendung verwendet Flask für das Web-Serving und das redis-py
-Paket für die Kommunikation mit der Redis-Instanz.
Anwendung in Cloud Run bereitstellen
So stellen Sie die Anwendung bereit:
Kopieren Sie die Datei
Dockerfile
in das Quellverzeichnis:cp cloud_run_deployment/Dockerfile .
Verwenden Sie den folgenden Befehl, um mithilfe von Cloud Build ein Container-Image zu erstellen:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Stellen Sie den Container in Cloud Run bereit.
Wenn Sie direkten ausgehenden VPC-Traffic verwenden, führen Sie den folgenden Befehl aus:
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
Dabei gilt:
PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.REGION
ist die Region, in der sich die Redis-Instanz befindet.NETWORK
ist der Name des autorisierten VPC-Netzwerk, mit dem Ihre Redis-Instanz verbunden ist.SUBNET
ist der Name Ihres Subnetzes. Das Subnetz muss/26
oder größer sein. Direkter ausgehender VPC-Traffic unterstützt IPv4-Bereiche nach RFC 1918, RFC 6598 und Klasse E.REDIS_IP
undREDIS_PORT
sind die IP-Adresse und die Portnummer Ihrer Redis-Instanz.
Wenn Sie einen Connector für Serverloser VPC-Zugriff verwenden, führen Sie den folgenden Befehl aus:
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
Dabei gilt:
PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.REGION
ist die Region, in der sich der Connector für serverlosen VPC-Zugriff und die Redis-Instanz befinden.CONNECTOR_NAME
ist der Name Ihres Connectors.REDIS_IP
undREDIS_PORT
sind die IP-Adresse und die Portnummer Ihrer Redis-Instanz.
Nach erfolgreichem Abschluss der Bereitstellung wird in der Befehlszeile die URL Ihres Cloud Run-Dienstes angezeigt. Rufen Sie diese URL in einem Webbrowser auf oder verwenden Sie ein Tool wie curl
. Die Anzahl der Redis-Instanzen steigt mit den Dienstaufrufen.