Sie können von der App Engine-Standardumgebung aus eine Verbindung zu einer Redis-Instanz herstellen, indem Sie den serverlosen VPC-Zugriff verwenden.
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 Folgendes:
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
Um eine Verbindung von Ihrer App Engine-Anwendung zum autorisierten VPC-Netzwerk Ihrer Redis-Instanz herzustellen, müssen Sie den serverlosen VPC-Zugriff einrichten.
Suchen Sie mit dem folgenden Befehl nach dem autorisierten Netzwerk Ihrer Redis-Instanz:
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
Folgen Sie der Anleitung unter Connector erstellen, um einen Connector für serverlosen VPC-Zugriff zu erstellen. Achten Sie darauf, dass Sie den Connector in derselben Region wie Ihre Anwendung erstellen und dass der Connector mit dem autorisierten VPC-Netzwerk der Redis-Instanz verbunden ist. Merken Sie sich den Namen des Connectors.
Beispielanwendung
Diese HTTP-Server-Beispielanwendung stellt eine Verbindung zu einer Redis-Instanz von einer App Engine-Standardumgebung 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/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-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.
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
Java
Diese Anwendung basiert auf dem Jetty-Servlet 3.1.
Sie verwendet die Jedis-Bibliothek:
Die Klasse AppServletContextListener
wird zum Erstellen eines langlebigen Redis-Verbindungspools verwendet:
Die Klasse VisitCounterServlet
ist ein Web-Servlet, das einen Redis-Zähler schrittweise erhöht.
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 für die Bereitstellung vorbereiten
Für den Zugriff auf die Redis-Instanz muss die App Engine-Anwendung für die Verwendung des Connectors für serverlosen VPC-Zugriff konfiguriert sein und Sie müssen die Verbindungsdetails der Redis-Instanz angeben.
Wenn Sie noch keine haben, erstellen Sie eine App Engine-Anwendung.
Aktualisieren Sie die Konfiguration der Anwendung, um den Connector für den serverlosen VPC-Zugriff sowie die IP-Adresse und den Port Ihrer Redis-Instanz anzugeben:
Go
Aktualisieren Sie die Datei
gae_standard_deployment/app.yaml
:Weitere Informationen finden Sie unter app.yaml-Konfigurationsdatei.
Java
Aktualisieren Sie die Datei
gae_standard_deployment/appengine-web.xml
, um den Connector für serverlosen VPC-Zugriff anzugeben:Und aktualisieren Sie die Datei
src/main/resources/application.properties
mit der IP-Adresse und dem Port Ihrer Redis-Instanz:Weitere Informationen zum Konfigurieren der Anwendung finden Sie in der Referenz zu appengine-web.xml.
Node.js
Aktualisieren Sie die Datei
gae_standard_deployment/app.yaml
:Weitere Informationen finden Sie unter app.yaml-Konfigurationsdatei.
Python
Aktualisieren Sie die Datei
gae_standard_deployment/app.yaml
:Weitere Informationen finden Sie unter app.yaml-Konfigurationsdatei.
Anwendung in der App Engine-Standardumgebung bereitstellen
So stellen Sie die Anwendung bereit:
Kopieren Sie die erforderlichen Konfigurationsdateien in das Quellverzeichnis:
Go
Kopieren Sie die Dateien
app.yaml
undgo.mod
in das Quellverzeichnis:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
Kopieren Sie die Datei
appengine-web.xml
in das Quellverzeichnis:mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
Kopieren Sie die Datei
app.yaml
in das Quellverzeichnis:cp gae_standard_deployment/app.yaml .
Python
Kopieren Sie die Datei
app.yaml
in das Quellverzeichnis:cp gae_standard_deployment/app.yaml .
Führen Sie den Bereitstellungsbefehl aus:
Go
gcloud app deploy
Java
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
Node.js
gcloud app deploy
Python
gcloud app deploy
Nach Abschluss der Bereitstellung wird mit dem Befehl die URL ausgegeben, über die Sie die Anwendung aufrufen können. Wenn Sie diese URL besuchen, erhöht sich die Anzahl der Redis-Instanz bei jedem Laden der Seite.