Sie können über Cloud Functions mithilfe von serverlosem VPC-Zugriff eine Verbindung zu einer Redis-Instanz herstellen.
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.
Serverlosen VPC-Zugriff konfigurieren
Damit Sie eine Verbindung von Ihrer Cloud Functions-Funktion zum autorisierten VPC-Netzwerk Ihrer Redis-Instanz herstellen können, müssen Sie den serverlosen VPC-Zugriff einrichten.
Suchen Sie mit dem folgenden Befehl nach dem autorisierten Netzwerk Ihrer Redis-Instanz:
gcloud redis instances describe INSTANCE_ID --region REGION
Folgen Sie der Anleitung unter Connector erstellen, um einen Connector für serverlosen VPC-Zugriff zu erstellen. Erstellen Sie den Connector in derselben Region, in der Sie die Funktion bereitstellen möchten, und achten Sie darauf, dass er mit dem autorisierten VPC-Netzwerk der Redis-Instanz verbunden ist. Merken Sie sich den Namen des Connectors.
Beispielfunktion
Diese Beispielfunktion stellt eine Verbindung zu einer Redis-Instanz über Cloud Functions her.
Klonen Sie das Repository für die gewünschte Programmiersprache und rufen Sie den Ordner auf, der den Beispielcode enthält:
Einfach loslegen (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 einen Redis-Zähler jedes Mal, wenn die Funktion ausgelöst wird:
Einfach loslegen (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 Functions bereitstellen
Stellen Sie die Funktion über die Google Cloud CLI bereit:
Einfach loslegen (Go)
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=go116 \ --source=. \ --entry-point=VisitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=nodejs16 \ --source=. \ --entry-point=visitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=python310 \ --source=. \ --entry-point=visit_count \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/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 Sie die Funktion bereitstellen möchten.CONNECTOR_NAME
ist der Name Ihres Connectors.REDIS_IP
undREDIS_PORT
sind die IP-Adresse und Portnummer Ihrer Redis-Instanz.
Rufen Sie nach Abschluss der Funktionsbereitstellung die URL der Funktion ab:
gcloud functions describe visit-count \ --gen2 \ --region=REGION \ --format="value(serviceConfig.uri)"
Sie können sehen, wie sich der Zähler jedes Mal erhöht, wenn Sie die Funktion durch Senden einer GET
-Anfrage an ihre URL auslösen.