Ziele
Schreiben, Bereitstellen und Auslösen einer HTTP-Cloud Run Functions-Funktion, die auf Cloud Spanner zugreift.
Kosten
In dieser Anleitung werden Cloud Spanner und Cloud Run 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 Run Functions, einschließlich kostenloser Aufrufe, finden Sie unter Preise für Cloud Run 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 Cloud Run Functions und Cloud Build APIs.
Installieren und initialisieren Sie die gcloud CLI.
Wenn Sie die gcloud CLI bereits installiert haben, aktualisieren Sie sie 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 Beispielcode für Cloud Run Functions 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 implementieren
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 nodejs20 --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Node.js-Version anzugeben und die Funktion auszuführen.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Python-Version anzugeben und die Funktion auszuführen.
Go
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Go-Version anzugeben und die Funktion auszuführen.
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java17 \ --memory 512MB --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Java-Version anzugeben und die Funktion auszuführen.
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 Cloud Run Functions 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.
Clean-up
So vermeiden Sie, dass Ihrem Google Cloud-Konto für die in diesem Dokument verwendeten Ressourcen für Cloud Spanner und Cloud Run 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