Lernziele
Schreiben, Bereitstellen und Auslösen einer HTTP-Cloud-Funktion, die auf Cloud Spanner zugreift.
Kosten
In dieser Anleitung werden Cloud 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.
Hinweise
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 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.
Einfach loslegen (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/
Einfach loslegen (Go)
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Sehen Sie sich den Beispielcode an:
Node.js
Python
Einfach loslegen (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 nodejs-spanner-function \ --gen2 \ --runtime=nodejs20 \ --region=REGION
\ --source=. \ --entry-point=spannerQuickstart
--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 python-spanner-function \ --gen2 \ --runtime=python312 \ --region=REGION
\ --source=. \ --entry-point=spanner_read_data
--trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Python-Version anzugeben und die Funktion auszuführen.
Einfach loslegen (Go)
gcloud functions deploy go-spanner-function \ --gen2 \ --runtime=go121 \ --region=REGION
\ --source=. \ --entry-point=HelloSpanner
--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 \ --gen2 \ --runtime=java17 \ --region=REGION
\ --source=. \ --entry-point=functions.HelloSpanner \ --memory=512MB
--trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Java-Version anzugeben und die Funktion auszuführen.
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitstellen möchten (z. B. us-west1
).
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:
curl URL
Ersetzen Sie URL durch den URL-Wert, der zurückgegeben wird, 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 absolviert und die Datenbank 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 diesem Dokument 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 nodejs-spanner-function
Python
gcloud functions delete python-spanner-function
Einfach loslegen (Go)
gcloud functions delete go-spanner-function
Java
gcloud functions delete java-spanner-function