In dieser einfachen Anleitung wird veranschaulicht, wie eine ereignisgesteuerte Cloud Run Functions-Funktion mit einem Pub/Sub-Trigger erstellt, bereitgestellt und ausgelöst wird.
Wenn Sie Pub/Sub noch nicht kennen und weitere Informationen erhalten möchten, lesen Sie die Dokumentation zu Pub/Sub, insbesondere zur Verwaltung von Themen und Abonnements. Unter Pub/Sub-Trigger erhalten Sie einen Überblick über das Arbeiten mit Pub/Sub-Themen und -Abonnements in Cloud Run Functions.
Wenn Sie nach Codebeispielen zur Verwendung von Pub/Sub suchen, rufen Sie den Google Cloud-Beispielbrowser auf.
Ziele
- Eine ereignisgesteuerte Cloud Run Functions-Funktion schreiben und bereitstellen.
- Funktionen durch Veröffentlichen einer Nachricht in einem Pub/Sub-Thema auslösen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- Cloud Run functions
- Pub/Sub
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Vorbereitung
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Pub/Sub APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Pub/Sub APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Bereiten Sie die Entwicklungsumgebung vor.
Node.js
Python
Go
Java
C#
Ruby
PHP
Wenn Sie die gcloud CLI bereits installiert haben, aktualisieren Sie sie mit dem folgenden Befehl:
gcloud components update
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.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Wechseln Sie in das Verzeichnis mit dem Cloud Run Functions-Beispielcode für den Zugriff auf Pub/Sub:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/hello-pubsub/
C#
cd dotnet-docs-samples/functions/helloworld/HelloPubSub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
PHP
cd php-docs-samples/functions/helloworld_pubsub/
Sehen Sie sich den Beispielcode an:
Node.js
Python
Go
Java
C#
Ruby
PHP
Funktion bereitstellen
Führen Sie diesen Befehl in dem Verzeichnis mit dem Beispielcode (oder im Fall von Java die Datei pom.xml
) aus, um die Funktion mit einem Pub/Sub-Trigger bereitzustellen:
Node.js
gcloud functions deploy helloPubSub \ --runtime nodejs20 \
--trigger-topic YOUR_TOPIC_NAME
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 hello_pubsub \ --runtime python312 \
--trigger-topic YOUR_TOPIC_NAME
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Python-Version anzugeben und die Funktion auszuführen.
Go
gcloud functions deploy HelloPubSub \ --runtime go121 \
--trigger-topic YOUR_TOPIC_NAME
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-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_TOPIC_NAME
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Java-Version anzugeben und die Funktion auszuführen.
C#
gcloud functions deploy csharp-pubsub-function \ --entry-point HelloPubSub.Function \ --runtime dotnet6 \
--trigger-topic YOUR_TOPIC_NAME
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten .NET-Version anzugeben, um Ihre Funktion auszuführen.
Ruby
gcloud functions deploy hello_pubsub --runtime ruby32 \
--trigger-topic YOUR_TOPIC_NAME
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Ruby-Version anzugeben, um die Funktion auszuführen.
PHP
gcloud functions deploy helloworldPubsub --runtime php82 \
--trigger-topic YOUR_TOPIC_NAME
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten PHP-Version anzugeben und die Funktion auszuführen.
Dabei ist YOUR_TOPIC_NAME
der Name des Pub/Sub-Themas, das die Funktion abonnieren wird.
Wenn YOUR_TOPIC_NAME
nicht bereits vorhanden ist, wird das Thema von diesem Befehl für Sie erstellt. Sie können auch ein Thema erstellen, bevor Sie den Befehl deploy
mit der Google Cloud Console oder dem folgenden gcloud
-Befehl ausführen:
gcloud pubsub topics create YOUR_TOPIC_NAME
Funktion auslösen
Veröffentlichen Sie eine Nachricht in Ihrem Pub/Sub-Thema. In diesem Beispiel ist die Nachricht ein Name, den die Funktion in eine Begrüßung aufnehmen soll:
gcloud pubsub topics publish
YOUR_TOPIC_NAME
--messageYOUR_NAME
Ersetzen Sie
YOUR_TOPIC_NAME
durch den Namen Ihres Pub/Sub-Themas undYOUR_NAME
durch einen beliebigen String.Prüfen Sie die Logs, um zu bestätigen, dass die Ausführung abgeschlossen wurde:
gcloud functions logs read --limit 50
Sie können auch von innerhalb einer Funktion eine Nachricht in einem Pub/Sub-Thema veröffentlichen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.
So löschen Sie das Projekt:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Funktion löschen
Durch das Löschen von Cloud Run-Funktionen werden keine in Cloud Storage gespeicherten Ressourcen entfernt.
Führen Sie den folgenden Befehl aus, um die in dieser Anleitung erstellte Funktion zu löschen:
Node.js
gcloud functions delete helloPubSub
Python
gcloud functions delete hello_pubsub
Go
gcloud functions delete HelloPubSub
Java
gcloud functions delete java-pubsub-function
C#
gcloud functions delete csharp-pubsub-function
Ruby
gcloud functions delete hello_pubsub
PHP
gcloud functions delete helloworldPubsub
Sie können Cloud Run-Funktionen auch über die Google Cloud Console löschen.