Ereignisse mit Pub/Sub-Nachrichten empfangen (gcloud-CLI)
In dieser Kurzanleitung erfahren Sie, wie Sie einen nicht authentifizierten Cloud Run-Dienst bereitstellen, der Ereignisse über Pub/Sub empfängt.
In dieser Kurzanleitung werden folgende Schritte erläutert:
Ereignisempfängerdienst für Cloud Run bereitstellen
Eventarc-Trigger erstellen
Eine Nachricht in einem Pub/Sub-Thema veröffentlichen, um ein Ereignis zu generieren und in den Logs von Cloud Run aufzurufen
Hinweis
Einige der Schritte in diesem Dokument funktionieren möglicherweise nicht richtig, wenn Ihre Organisation Einschränkungen auf Ihre Google Cloud-Umgebung anwendet. In diesem Fall können Sie möglicherweise keine Aufgaben wie das Erstellen öffentlicher IP-Adressen oder Dienstkontoschlüssel ausführen. Wenn Sie eine Anfrage stellen, die einen Fehler zu Einschränkungen zurückgibt, lesen Sie, wie Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln werden.
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
-
Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc APIs aktivieren.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
-
Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc APIs aktivieren.
- Installieren und initialisieren Sie das Google Cloud CLI.
- Aktualisieren Sie die gcloud-Komponenten:
gcloud components update
- Melden Sie sich mit Ihrem Konto an:
gcloud auth login
- Legen Sie die in dieser Kurzanleitung verwendeten Konfigurationsvariablen fest:
gcloud config set project PROJECT_ID gcloud config set run/region us-central1 gcloud config set run/platform managed gcloud config set eventarc/location us-central1
Dabei ist PROJECT_ID Ihre Google Cloud-Projekt-ID.
Ereignisempfänger für Cloud Run bereitstellen
Stellen Sie einen Cloud Run-Dienst bereit, der Ereignisse empfängt und loggt.
Klonen Sie das Repository:
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.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-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.
Wechseln Sie in das Verzeichnis, das den Cloud Run-Beispielcode enthält:
Node.js
cd nodejs-docs-samples/eventarc/pubsub/
Python
cd python-docs-samples/eventarc/pubsub/
Go
cd golang-samples/eventarc/pubsub/
Java
cd java-docs-samples/eventarc/pubsub/
Ruby
cd ruby-docs-samples/eventarc/pubsub/
C#
cd dotnet-docs-samples/eventarc/pubsub/
Erstellen Sie den Container und laden Sie ihn in Cloud Build hoch:
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
Stellen Sie das Container-Image in Cloud Run bereit:
gcloud run deploy helloworld-events-pubsub-quickstart \ --image gcr.io/$(gcloud config get-value project)/events-pubsub \ --allow-unauthenticated
Wenn die Dienst-URL angezeigt wird, wurde sie erfolgreich bereitgestellt.
Eventarc-Trigger erstellen
Der Ereignistrigger sendet Nachrichten an den in Cloud Run bereitgestellten Ereignisempfänger, wenn eine Nachricht im Pub/Sub-Thema veröffentlicht wird.
Erstellen Sie einen Trigger, um Pub/Sub-Nachrichten zu überwachen:
Neues Pub/Sub-Thema
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-quickstart \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
Dadurch werden ein neues Pub/Sub-Thema und ein Trigger
events-pubsub-trigger
für das Thema erstellt.Vorhandenes Pub/Sub-Thema
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-quickstart \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID
Dabei gilt:
PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.TOPIC_ID
ist die ID des vorhandenen Pub/Sub-Themas.
Damit wird ein Trigger mit dem Namen
events-pubsub-trigger
für das vorhandene Pub/Sub-Thema erstellt.So prüfen Sie, ob der Trigger erfolgreich erstellt wurde:
gcloud eventarc triggers list --location=us-central1
Ereignisse in einem Pub/Sub-Thema senden und ansehen
Eventarc-Ereignisse sind Nachrichten, die in einem Pub/Sub-Thema veröffentlicht werden. So senden Sie Ereignisse über ein Pub/Sub-Thema:
Suchen Sie das Pub/Sub-Thema und legen Sie es als Umgebungsvariable fest:
export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \ --format='value(transport.pubsub.topic)')
Senden Sie eine Nachricht an das Pub/Sub-Thema, um ein Ereignis zu generieren:
gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
Das Ereignis wird an den Cloud Run-Dienst gesendet, der die Ereignisnachricht loggt.
Öffnen Sie die Cloud Run-Dienstlogs, um die Ereignisnachricht anzusehen:
- Öffnen Sie die Google Cloud Console.
- Klicken Sie auf den Dienst
helloworld-events-pubsub-quickstart
. Wählen Sie den Tab Logs aus.
Es kann einige Momente dauern, bis Logs angezeigt werden. Falls sie nicht sofort angezeigt werden, warten Sie kurz ab und sehen Sie dann noch einmal nach.
Suchen Sie nach der Nachricht „Hello Runner!“.
Das war's auch schon! Sie haben einen Ereignisempfängerdienst in Cloud Run erfolgreich bereitgestellt, einen Eventarc-Trigger erstellt sowie ein Ereignis über Pub/Sub generiert und in den Cloud Run-Logs angesehen.
Bereinigen
Für Cloud Run fallen keine Kosten an, wenn der Dienst nicht verwendet wird. Allerdings können für das Speichern des Container-Images in Container Registry, die Eventarc-Ressourcen und die Pub/Sub-Nachrichten Gebühren berechnet werden.
Sie können das Image löschen, das Pub/Sub-Thema löschen und das Pub/Sub-Abo löschen. So löschen Sie den Eventarc-Trigger:
gcloud eventarc triggers delete events-pubsub-trigger
Alternativ können Sie Ihr Google Cloud-Projekt löschen, um wiederkehrende Gebühren zu vermeiden. Durch das Löschen des Cloudprojekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.