Pub/Sub-Ereignis empfangen


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:

  1. Ereignisempfängerdienst für Cloud Run bereitstellen

  2. Ereignistrigger erstellen

  3. 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. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist

  4. Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist

  7. Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc APIs aktivieren.

    Aktivieren Sie die APIs

  8. Installieren und initialisieren Sie das Google Cloud CLI.
  9. Aktualisieren Sie die gcloud-Komponenten:
    gcloud components update
  10. Melden Sie sich mit Ihrem Konto an:
    gcloud auth login
  11. 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:

  1. 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.

  2. 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/
  3. 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
    
  4. 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:

  1. 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.

  2. So prüfen Sie, ob der Trigger erfolgreich erstellt wurde:

    gcloud eventarc triggers list --location=us-central1
    
  3. 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)')
    
  4. 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.

  5. Öffnen Sie die Cloud Run-Dienstlogs, um die Ereignisnachricht anzusehen:

    1. Öffnen Sie die Google Cloud Console
    2. Klicken Sie auf den Dienst helloworld-events-pubsub-tutorial.
    3. 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.

  6. 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:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Anleitungsressourcen löschen

  1. 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.

  2. 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

  3. 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 Sie TRIGGER_NAME durch den Namen des Triggers.

Nächste Schritte