Ziele
Schreiben, Bereitstellen und Auslösen einer HTTP-Cloud-Funktion, die auf Cloud Spanner zugreift.
Kosten
In dieser Anleitung werden Spanner und Cloud Functions verwendet, zwei kostenpflichtige Komponenten von Google Cloud.
Informationen zu den Kosten für die Verwendung von Cloud Spanner finden Sie auf der Seite zu den Preisen für Cloud Spanner.
Informationen zu den Kosten für die Verwendung von Cloud Functions, einschließlich kostenloser Aufrufe, finden Sie unter Preise für Cloud Functions.
Vorbereitung
In diesem Thema wird davon ausgegangen, dass Ihnen eine Cloud Spanner-Instanz namens
test-instance
und eine Datenbank namensexample-db
mit dem Musikanwendungsschema zur Verfügung stehen. Weitere Informationen zum Erstellen von Instanzen und Datenbanken mit dem Musikanwendungsschema finden Sie unter Kurzanleitung zur Console oder in den „Erste Schritte“-Anleitungen für Go, Java, Node.js oder Python.Aktivieren Sie die Cloud Functions und Cloud Build APIs.
Installieren und initialisieren Sie das Cloud SDK.
Wenn Sie das Cloud SDK bereits installiert haben, aktualisieren Sie es mit dem folgenden Befehl:
gcloud components update
Bereiten Sie Ihre Entwicklungsumgebung vor:
Anwendung vorbereiten
Klonen Sie das Repository der Beispiel-App auf Ihren lokalen Computer:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Wechseln Sie zu dem Verzeichnis, das den Cloud Functions-Beispielcode für den Zugriff auf Cloud Spanner enthält:
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Sehen Sie sich den Beispielcode an:
Node.js
Python
Go
Java
Die Funktion sendet eine SQL-Abfrage, um alle
Albums
-Daten aus Ihrer Datenbank abzurufen. Sie wird ausgeführt, wenn Sie eine HTTP-Anfrage an den Endpunkt der Funktion stellen.
Funktion bereitstellen
Führen Sie zum Bereitstellen der Funktion mit einem HTTP-Trigger den folgenden Befehl im Verzeichnis spanner
aus:
Node.js
gcloud functions deploy get \ --runtime nodejs16 --trigger-http
--runtime
können Sie Ihre bevorzugte Version von Node.js festlegen:nodejs16
(empfohlen).nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy spanner_read_data \ --runtime python39 --trigger-http
--runtime
können Sie Ihre bevorzugte Version von Python festlegen:python39
(empfohlen).python38
python37
Go
gcloud functions deploy HelloSpanner \ --runtime go116 --trigger-http
--runtime
können Sie Ihre bevorzugte Version von Go festlegen:
go116
(empfohlen).go113
go111
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java11 \ --memory 512MB --trigger-http
Die Bereitstellung der Funktion kann bis zu zwei Minuten dauern.
Beachten Sie den url
-Wert, der zurückgegeben wird, wenn die Bereitstellung Ihrer Funktion abgeschlossen ist. Sie benötigen diesen Wert, wenn Sie die Funktion auslösen.
Sie können Ihre bereitgestellten Funktionen in der Google Cloud Console auf der Seite mit den Cloud Functions-Funktionen sehen. Sie können auf dieser Seite auch Funktionen erstellen und bearbeiten sowie Details und Diagnosen für Ihre Funktionen abrufen.
Funktion auslösen
Senden Sie einen HTTP-Anfrage an Ihre Funktion:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
REGION
und PROJECT_ID
stimmen dabei mit den Werten überein, die in Ihrem Terminal sichtbar sind, wenn die Bereitstellung der Funktion abgeschlossen ist. Sie sollten eine Ausgabe sehen, die die Ergebnisse der SQL-Abfrage enthält, vorausgesetzt, Sie haben eine "Erste Schritte"-Anleitung durchgearbeitet und die Datenbank entsprechend aufgefüllt:
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
Sie können auch die URL der Funktion im Browser aufrufen, um das Ergebnis der SQL-Abfrage zu sehen.
Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud-Konto für die in dieser Anleitung verwendeten Ressourcen für Cloud Spanner und Cloud Functions weitere Gebühren berechnet werden:
Löschen Sie die Instanz:
gcloud spanner instances delete test-instance
Löschen Sie die von Ihnen bereitgestellte Funktion:
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function