Lernziele
Schreiben, Bereitstellen und Auslösen einer HTTP-Cloud-Funktion, die auf Cloud Spanner zugreift.
Kosten
In diesem Dokument werden Spanner und Cloud Run 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, einschließlich kostenloser Aufrufe, finden Sie unter Cloud Run-Preise.
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 Schnellstart: Console verwenden oder in den Anleitungen für erste Schritte mit Node.js oder Python.Aktivieren Sie die Cloud Run Functions, Cloud Run 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:
Node.js
Weitere Informationen finden Sie im Einrichtungsleitfaden für Node.js.
Python
Weitere Informationen finden Sie im Einrichtungsleitfaden für Python.
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.
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
Sehen Sie sich den Beispielcode an:
Node.js
Python
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 beta run deploy nodejs-spanner-function \
--source . \
--region REGION \
--function spannerQuickstart \
--base-image RUNTIME_ID \
--log-http
Python
gcloud beta run deploy python-spanner-function \
--source . \
--region REGION \
--function spanner_read_data \
--base-image RUNTIME_ID \
--log-http
Ersetzen Sie:
REGION durch den Namen der Google Cloud Region, in der Sie die Funktion bereitstellen möchten (z. B.
us-west1
).RUNTIME_ID mit der entsprechenden Laufzeit-ID (z. B.
nodejs22
). Weitere Informationen finden Sie unter Unterstützte Sprach-Laufzeitumgebungen und Basis-Images.
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 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 Startanleitung durchgearbeitet 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 Run-Funktionen weitere Gebühren berechnet werden:
Löschen Sie die Instanz:
gcloud CLI instances delete test-instance
Löschen Sie den Cloud Run-Dienst, den Sie in dieser Anleitung bereitgestellt haben:
Node.js
gcloud run services delete nodejs-spanner-function
Python
gcloud run services delete python-spanner-function
Nächste Schritte
- Weitere Informationen zum Schreiben von Cloud Run Functions-Funktionen.
- Weitere Informationen zum Bereitstellen von Cloud Run Functions-Funktionen.
- Weitere Informationen zum Auslösen von Cloud Run-Funktionen