Sie können eine Verbindung zu Ihrer Redis-Instanz über Google Compute Engine-VM-Instanzen herstellen, die dasselbe autorisierte Netzwerk wie die Redis-Instanz verwenden.
Einrichtung
Wenn Sie die Google Cloud CLI bereits installiert sowie eine Redis-Instanz und einen Cloud Storage-Bucket 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.
Erstellen Sie einen Cloud Storage-Bucket, in den das Anwendungsartefakt für diese Beispielanwendung hochgeladen wird. Weitere Informationen finden Sie unter Buckets erstellen.
gcloud-Einstellungen für die Beispielanwendung konfigurieren
- Legen Sie das
gcloud
-Standardprojekt auf Ihr Beispielanwendungsprojekt fest.gcloud config set project [PROJECT_ID]
Beispielanwendung
Diese HTTP-Server-Beispielanwendung stellt eine Verbindung zu einer Redis-Instanz über eine Compute Engine-VM-Instanz 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 auf einer Compute Engine-VM bereitstellen
Rufen Sie das Verzeichnis gce_deployment
auf.
cd gce_deployment
Das Bereitstellungsskript lädt das Artefakt in den Cloud Storage-Pfad hoch. Anschließend wird eine Compute Engine-Instanz gestartet und eine Firewall erstellt, um den Port 8080 freizugeben. Dann bereitet das Startskript die Instanz vor.
Legen Sie die Umgebungsvariablen REDISHOST
und REDISPORT
fest:
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
Dabei gilt:
REDISHOST
ist die IP-Adresse der verwalteten Redis-Instanz.REDISPORT
ist der Port der verwalteten Redis-Instanz, standardmäßig 6379.
Legen Sie die Umgebungsvariable GCS_BUCKET_NAME
fest:
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
Dabei gilt:
BUCKET_NAME
ist der Name Ihres Cloud Storage-Buckets.PATH
ist ein optionaler Pfad für das Verzeichnis, in dem das Anwendungsartefakt gespeichert werden soll.
Im Folgenden finden Sie ein Beispielbereitstellungsskript, mit dem diese Anwendung auf einer neuen Compute Engine-VM-Instanz bereitgestellt wird.
Go
Java
Node.js
Python
Führen Sie dazu das Bereitstellungsskript aus:
chmod +x deploy.sh
./deploy.sh
Anwendungsstartskript
Dieses Startskript wird im Beispielbereitstellungsskript zum Vorbereiten der Instanz verwendet. Weitere Informationen zu Startskripts und zum Aufrufen von Logs für die Ausführung von Startskripts finden Sie unter Startskripts ausführen.
Go
Java
Node.js
Python
Es kann einige Minuten dauern, bis die Beispielanwendung auf der neu erstellten Compute Engine-Instanz bereitgestellt wird.
Sobald die Instanz bereit ist und das Startskript die Ausführung abgeschlossen hat, rufen Sie die Seite Compute Engine-Instanzen auf und kopieren die externe IP-Adresse.
Die bereitgestellte Beispielanwendung finden Sie unter http://[EXTERNAL-IP]:8080
Sie können das Skript teardown.sh
verwenden, um die vom Bereitstellungsskript erstellte Instanz und Firewall zu löschen: