In dieser Anleitung wird beschrieben, wie Sie einen nicht authentifizierten Cloud Run-Dienst bereitstellen, der Ereignisse mithilfe von Pub/Sub empfängt.
Ziele
In dieser Anleitung wird Folgendes beschrieben:
Ereignisempfängerdienst für Cloud Run bereitstellen
Ereignistrigger erstellen
Eine Nachricht in einem Pub/Sub-Thema veröffentlichen, um ein Ereignis zu generieren und in den Logs von Cloud Run aufzurufen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Hinweis
- 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 Google 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 Google 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 Anleitung 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.
So stellen Sie den Beispiel-Ereignisempfängerdienst bereit:
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-tutorial \ --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.
So erstellen Sie einen Pub/Sub-Trigger für Eventarc:
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-tutorial \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
Dadurch werden ein neues Pub/Sub-Thema und ein Trigger mit dem Namen
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-tutorial \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME
Dabei gilt:
PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.TOPIC_NAME
ist der Name 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
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-tutorial
. 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!“.
Bereinigen
Wenn Sie ein neues Projekt für diese Anleitung erstellt haben, löschen Sie das Projekt. Wenn Sie ein vorhandenes Projekt verwendet haben und es beibehalten möchten, ohne die Änderungen in dieser Anleitung hinzuzufügen, löschen Sie die für die Anleitung erstellten Ressourcen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
- 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.
Anleitungsressourcen löschen
Löschen Sie den Cloud Run-Dienst, den Sie in dieser Anleitung bereitgestellt haben:
gcloud run services delete SERVICE_NAME
Dabei ist
SERVICE_NAME
der von Ihnen ausgewählte Dienstname.Sie können Cloud Run-Dienste auch über die Google Cloud Console löschen.
Entfernen Sie gcloud CLI-Standardkonfigurationen, die Sie während der Einrichtung der Anleitung hinzugefügt haben.
Beispiel:
gcloud config unset run/region
oder
gcloud config unset project
Löschen Sie sonstige Google Cloud-Ressourcen, die in dieser Anleitung erstellt wurden:
- Löschen Sie den Eventarc-Trigger:
gcloud eventarc triggers delete TRIGGER_NAME
Ersetzen SieTRIGGER_NAME
durch den Namen des Triggers.
- Löschen Sie das Container-Image mit dem Namen
gcr.io/PROJECT_ID/events-pubsub
aus Container Registry.
- Löschen Sie den Eventarc-Trigger: