Ereignisse veröffentlichen und empfangen, indem Sie einen Bus und eine Registrierung erstellen (Konsole)

In dieser Kurzanleitung wird gezeigt, wie Sie Ereignisnachrichten veröffentlichen und empfangen. Dazu erstellen Sie einen Eventarc Advanced-Bus und registrieren sich in Ihrem Google Cloud-Projekt.

  • Mit einem Bus können Sie den Nachrichtenfluss in Ihrem System zentralisieren. Er fungiert als Router. Es empfängt Ereignisnachrichten von einer Nachrichtenquelle oder die von einem Anbieter veröffentlicht wurden, und wertet sie gemäß einer Registrierung aus.

  • Eine Anmeldung weist ein Abo einem bestimmten Bus zu und definiert die Abgleichkriterien für Nachrichten, sodass sie entsprechend an ein oder mehrere Ziele weitergeleitet werden.

In dieser Kurzanleitung werden folgende Schritte erläutert:

  1. Erstellen Sie ein Subnetz und aktivieren Sie den privater Google-Zugriff.

  2. Netzwerkanhang erstellen

  3. Erstellen Sie ein Artifact Registry-Standard-Repository.

  4. einen Ereignisempfängerdienst für Cloud Run bereitstellen

  5. Eventarc Advanced-Bus erstellen

  6. Eventarc Advanced-Registrierung erstellen

  7. Veröffentlichen Sie eine Ereignisnachricht im Bus.

  8. Rufen Sie die Ereignisdaten in den Cloud Run-Logs auf.

Die meisten Schritte in dieser Kurzanleitung können Sie mit der Google Cloud -Konsole ausführen. Wenn Sie alle Schritte mit der Google Cloud CLI ausführen möchten, lesen Sie Ereignisse veröffentlichen und empfangen, indem Sie einen Bus und eine Registrierung erstellen (gcloud CLI).

Hinweise

Von Ihrer Organisation definierte Sicherheitsbeschränkungen verhindern möglicherweise, dass die folgenden Schritte ausgeführt werden. Informationen zur Fehlerbehebung finden Sie unter Anwendungen in einer eingeschränkten Google Cloud -Umgebung entwickeln.

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Cloud Build, Cloud Run, Compute Engine, and Eventarc APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry, Cloud Build, Cloud Run, Compute Engine, and Eventarc APIs.

    Enable the APIs

  8. Für einige Schritte in dieser Kurzanleitung müssen Sie die gcloud CLI verwenden:
    1. Richten Sie die gcloud CLI in einer der folgenden Entwicklungsumgebungen ein:

      Cloud Shell

      Wenn Sie ein Onlineterminal mit bereits eingerichteter gcloud CLI einrichten möchten, aktivieren Sie Cloud Shell.

      Unten auf dieser Seite wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

      Lokale Shell

      So verwenden Sie eine lokale Entwicklungsumgebung:

      1. Installieren Sie die gcloud CLI.
      2. Initialisieren Sie die gcloud CLI.
    2. Wählen Sie Ihr Google Cloud Projekt aus:
      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud Projekts.

    3. Aktualisieren Sie die gcloud-Komponenten:
      gcloud components update
    4. Melden Sie sich mit Ihrem -Konto an:
      gcloud auth login
    5. Legen Sie die in dieser Kurzanleitung verwendete Konfigurationsvariable fest:
      REGION=us-central1
  9. Wenn Sie der Projektersteller sind, wird Ihnen die einfache Owner-Rolle (roles/owner) zugewiesen. Standardmäßig enthält diese IAM-Rolle (Identity and Access Management) die Berechtigungen, die für den vollständigen Zugriff auf die meisten Google Cloud-Ressourcen erforderlich sind. Sie können diesen Schritt überspringen.

    Wenn Sie nicht der Project Creator sind, müssen dem entsprechenden Hauptkonto die erforderlichen Berechtigungen für das Projekt erteilt werden. Ein Hauptkonto kann beispielsweise ein Google-Konto (für Endnutzer) oder ein Dienstkonto (für Anwendungen und Computing-Arbeitslasten) sein.

    Beachten Sie, dass Cloud Build-Berechtigungen standardmäßig Berechtigungen zum Hochladen und Herunterladen von Artifact Registry-Artefakten enthalten.

    Erforderliche Berechtigungen

    Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Kurzanleitung benötigen:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  10. Weisen Sie dem Compute Engine-Standarddienstkonto Rollen für das Projekt zu. Diese Rollen sind erforderlich, um Ihr Container-Image zu erstellen und bereitzustellen.
    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      IAM aufrufen

    2. Wenn Sie Rollen für das Dienstkonto ändern möchten, dem bereits Rollen für die Ressource zugewiesen sind, suchen Sie die Zeile mit dem Hauptkonto.

      oder

      Wenn Sie dem Dienstkonto Rollen zuweisen möchten, wenn es keine Rollen für die Ressource hat, klicken Sie auf  Zugriff gewähren und geben Sie dann die Kennung für das Compute Engine-Standarddienstkonto in folgender Form ein:

      PROJECT_NUMBER-compute@developer.gserviceaccount.com

      Ersetzen Sie PROJECT_NUMBER durch die Projektnummer Ihres Google Cloud-Projekts. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud -Konsole.

    3. Klicken Sie in der entsprechenden Zeile auf  Hauptkonto bearbeiten.
    4. Klicken Sie entweder auf Rolle hinzufügen oder auf Weitere Rolle hinzufügen.
    5. Filtern Sie in der Liste Rolle auswählen nach den folgenden Rollen und wählen Sie sie aus:
    6. Klicken Sie auf Speichern.
  11. Standardmäßig können nur Projektinhaber, Projektbearbeiter sowie Cloud Run-Administratoren und -Aufrufer Cloud Run-Dienste aufrufen. Um die Authentifizierung einzurichten, weisen Sie einem Dienstkonto die Rolle „Cloud Run-Aufrufer“ für Ihr Google Cloud -Projekt zu. Zu Testzwecken hängen Sie dieses Dienstkonto an eine Eventarc Advanced-Pipeline an, um die Identität der Pipeline darzustellen.
    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

      Zur Seite „Dienstkonten“

    2. Klicken Sie auf Dienstkonto erstellen.
    3. Geben Sie im Feld Name des Dienstkontos einen Namen ein.
    4. Klicken Sie auf Erstellen und fortfahren.
    5. Filtern Sie in der Liste Rolle auswählen nach der Rolle Cloud Run Invoker und wählen Sie sie aus.
    6. Klicken Sie auf Fertig.

    Sie können konfigurieren, wer auf Ihren Cloud Run-Dienst zugreifen kann, indem Sie eine der folgenden Methoden verwenden:

    • Erteilen Sie die Berechtigung zum Auswählen von Dienstkonten oder Gruppen, um den Zugriff auf den Dienst zu ermöglichen. Alle Anfragen müssen einen HTTP-Autorisierungs-Header enthalten, der ein von Google für ein autorisiertes Dienstkonto signiertes OpenID Connect-Token enthält. So wird der Zugriff in dieser Kurzanleitung konfiguriert.
    • Erteilen Sie allUsers die Berechtigung, den nicht authentifizierten Zugriff zuzulassen.

    Weitere Informationen finden Sie unter Zugriffssteuerung für Cloud Run.

Subnetz erstellen und privater Google-Zugriff aktivieren

Sofern Sie keine Organisationsrichtlinie erstellen, die dies verbietet, beginnen neue Google CloudProjekte mit einem Standard-VPC-Netzwerk (einem VPC-Netzwerk im automatischen Modus), das in jeder Region ein Subnetzwerk (Subnetz) hat. Subnetzen sind IP-Adressbereiche zugeordnet.

Da Sie Nachrichten über eine DNS-Adresse an ein Cloud Run-Ziel weiterleiten, müssen Sie den privaten Google-Zugriff für das im Netzwerkanhang verwendete Subnetz aktivieren. Andernfalls kann die DNS-Adresse nicht aufgelöst werden. Weitere Informationen zu privaten Netzwerken und Cloud Run finden Sie unter Anfragen aus VPC-Netzwerken empfangen.

Erstellen Sie ein Subnetz im Standardnetzwerk Ihres Projekts und aktivieren Sie den privater Google-Zugriff:

  1. Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie in der Liste der VPC-Netzwerke auf den Namen Standard.

  3. Klicken Sie auf der Seite VPC-Netzwerkdetails auf den Tab Subnetze.

  4. Klicken Sie auf Subnetz hinzufügen.

  5. Führen Sie im Bereich Subnetz hinzufügen die folgenden Schritte aus:

    1. Geben Sie einen Namen ein, z. B. my-subnet.
    2. Wählen Sie in der Liste Region die Option us-central1 aus.
    3. Geben Sie einen primären IPv4-Bereich für das Subnetz ein, z. B. 10.8.0.0/24.
    4. Wählen Sie für Privater Google-Zugriff die Option Ein aus.
    5. Übernehmen Sie alle anderen Standardeinstellungen.
    6. Klicken Sie auf Hinzufügen.

IP-Bereiche von Subnetzen müssen eindeutig sein und dürfen sich innerhalb eines VPC-Netzwerks und eines Peering-VPC-Netzwerk nicht überschneiden. Weitere Informationen zu Subnetztypen und gültigen Subnetzbereichen finden Sie unter Subnetze.

Netzwerkanhang erstellen

Ein Netzwerkanhang ist eine Ressource, mit der ein Produzenten-VPC-Netzwerk Verbindungen zu einem Nutzer-VPC-Netzwerk initiieren kann. Eventarc Advanced verwendet zum Veröffentlichen von Ereignissen den Netzwerkanhang, um eine Verbindung zum Endpunkt herzustellen, der in einem VPC-Netzwerk gehostet wird.

Erstellen Sie einen Netzwerkanhang im selben Netzwerk und in derselben Region, die den Endpunkt des Ereignisziels enthält, und der automatisch Verbindungen von jeder Private Service Connect-Schnittstelle akzeptiert, die auf den Netzwerkanhang verweist:

  1. Rufen Sie in der Google Cloud Console Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Netzwerkverbindungen.

  3. Klicken Sie auf Netzwerkanhang erstellen.

  4. Geben Sie einen Namen ein, z. B. my-network-attachment.

  5. Wählen Sie in der Liste Netzwerk die Option Standard aus.

  6. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.

  7. Wählen Sie in der Liste Subnetzwerk das zuvor erstellte Subnetz aus.

  8. Klicken Sie auf Verbindungen für alle Projekte automatisch akzeptieren.

  9. Klicken Sie auf Netzwerkanhang erstellen.

Artifact Registry-Standard-Repository erstellen

Erstellen Sie ein Artifact Registry-Standard-Repository zum Speichern des Container-Images.

  1. Rufen Sie in der Google Cloud Console die Seite Repositories auf.

    Zu Repositories

  2. Klicken Sie auf  Repository erstellen.

  3. Geben Sie einen Namen ein, z. B. my-repo.

    Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.

  4. Wählen Sie für das Format des Repositorys Docker aus.

  5. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.

  6. Übernehmen Sie alle anderen Standardeinstellungen.

  7. Klicken Sie auf Erstellen.

Ereignisempfängerdienst für Cloud Run bereitstellen

Stellen Sie einen Cloud Run-Dienst bereit, der den Inhalt eines Ereignisses protokolliert. Auf diesen Dienst kann nur von VPC-Netzwerken innerhalb desselben Projekts zugegriffen werden. Die Dienst-URL ist nicht direkt zugänglich, da der Dienst nur authentifizierte Aufrufe zulässt.

  1. Klonen Sie das GitHub-Repository in Ihrem Terminal:

    git clone https://github.com/GoogleCloudPlatform/eventarc-samples.git
  2. Wechseln Sie in das Verzeichnis, das den Cloud Run-Beispielcode enthält:

    cd eventarc-samples/eventarc-advanced-quickstart/
  3. Erstellen Sie ein Docker-Container-Image und übertragen Sie es per Push in Ihr Repository:

    gcloud builds submit \
        --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/log-events:v1

    Ersetzen Sie dabei REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.

  4. Stellen Sie das Container-Image in Cloud Run bereit:

    1. Rufen Sie in der Google Cloud -Console die Seite Cloud Run auf.

      Zu Cloud Run

    2. Klicken Sie auf  Container bereitstellen > Dienst.

    3. Wählen Sie Überarbeitung aus dem vorhandenen Container-Image bereitstellen.

    4. Klicken Sie für die Container-Image-URL auf Auswählen, um das zuvor erstellte Artifact Registry-Container-Image anzugeben.

    5. Optional können Sie den Dienstnamen ändern, z. B. in my-service.

    6. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.

    7. Wählen Sie unter Authentifizierung die Option Authentifizierung erforderlich aus.

    8. Wählen Sie für Eingehend die Option Intern aus.

    9. Übernehmen Sie alle anderen Standardeinstellungen.

    10. Klicken Sie auf Create (Erstellen) und warten Sie, bis die Bereitstellung abgeschlossen ist.

Eventarc Advanced-Bus erstellen

Ein Bus empfängt Ereignisnachrichten von einer Nachrichtenquelle oder von einem Anbieter und fungiert als Nachrichtenrouter.

Weitere Informationen finden Sie unter Bus zum Weiterleiten von Nachrichten erstellen.

  1. Rufen Sie in der Google Cloud Console die Seite Eventarc > Bus auf.

    Bus aufrufen

  2. Klicken Sie auf Bus erstellen.

  3. Führen Sie auf der Seite Bus erstellen die folgenden Schritte aus:

    1. Geben Sie einen Busname ein, z. B. my-bus.
    2. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.
  4. Übernehmen Sie alle anderen Standardeinstellungen.

  5. Klicken Sie auf Erstellen.

Eventarc Advanced-Registrierung erstellen

Eine Anmeldung bestimmt, welche Nachrichten an ein Ziel weitergeleitet werden, und gibt auch die Pipeline an, die zum Konfigurieren eines Ziels für die Ereignisnachrichten verwendet wird.

Weitere Informationen finden Sie unter Registrierung erstellen, um Ereignisse zu empfangen.

Wenn Sie die Google Cloud -Konsole verwenden, können Sie gleichzeitig eine Registrierung und eine Pipeline erstellen.

  1. Rufen Sie zum Erstellen einer Registrierung in der Google Cloud Console die Seite Eventarc > Pipelines auf.

    Zu Pipelines

  2. Klicken Sie auf  Pipeline erstellen.

  3. Führen Sie im Bereich Piplinedetails folgende Schritte aus:

    1. Geben Sie einen Pipelinenamen ein, z. B. my-pipeline.
    2. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus. Die Pipeline muss in derselben Region wie der Bus erstellt werden.
    3. Übernehmen Sie alle anderen Standardeinstellungen.
    4. Klicken Sie auf Weiter.
  4. Führen Sie im Bereich Registrierungen folgende Schritte aus:

    1. Klicken Sie auf Registrierung hinzufügen.
    2. Geben Sie einen Registrierungsnamen ein, z. B. my-enrollment.
    3. Wählen Sie in der Liste Eventarc Advanced-Bus den zuvor erstellten Bus aus.
    4. Geben Sie im Feld CEL-Ausdruck einen Auswertungsausdruck in CEL ein. Beispiel:

      message.type == "hello-world-type"

    5. Klicken Sie auf Fertig.

    6. Klicken Sie auf Weiter.

    7. Klicken Sie im Bereich Vermittlung von Ereignissen noch einmal auf Weiter.

  5. Führen Sie im Bereich Ziel folgende Schritte aus:

    1. Wählen Sie in der Liste Zieltyp die Option Cloud Run-Dienst (über HTTP) und dann den Cloud Run-Dienst aus, den Sie zuvor erstellt haben.

    2. Wählen Sie in der Liste Netzwerkanhang den zuvor erstellten Netzwerkanhang aus.

    3. Klicken Sie das Kästchen Authentifizierung aktivieren an.

      1. Wählen Sie in der Liste Auth-Header die Option OIDC-Token aus.

      2. Wählen Sie in der Liste Dienstkonto das Dienstkonto aus, das Sie zuvor erstellt haben und mit dem der Zieldienst aufgerufen wird. Mit dieser Dienstkonto-E-Mail-Adresse wird das OIDC-Token generiert.

  6. Klicken Sie auf Erstellen.

Ereignisnachricht im Bus veröffentlichen

Wenn Sie eine Nachricht direkt in Ihrem Bus veröffentlichen möchten, können Sie den Befehl gcloud beta eventarc message-buses publish verwenden oder eine Anfrage an die Eventarc Publishing REST API senden. Weitere Informationen finden Sie unter Ereignisse direkt veröffentlichen.

Die Nachricht muss im CloudEvents-Format vorliegen, einer Spezifikation zum allgemeinen Beschreiben von Ereignisdaten. Das data-Element ist die Nutzlast Ihres Ereignisses. In dieses Feld kann beliebiger wohlgeformter JSON-Code eingefügt werden. Weitere Informationen zu CloudEvents-Kontextattributen finden Sie unter Ereignisformat.

Veröffentlichen Sie ein Ereignis in Ihrem Eventarc Advanced-Bus mit der gcloud CLI und einem --event-data-Flag sowie anderen Attribut-Flags für Ereignisse:

gcloud beta eventarc message-buses publish BUS_NAME \
    --event-data='{"key": "hello-world-data"}' \
    --event-id=hello-world-id-1234 \
    --event-source=hello-world-source \
    --event-type=hello-world-type \
    --event-attributes="datacontenttype=application/json" \
    --location=$REGION

Alternativ können Sie ein Ereignis als JSON-Nachricht mit der gcloud CLI und dem Flag --json-message in Ihrem Eventarc Advanced-Bus veröffentlichen:

gcloud beta eventarc message-buses publish BUS_NAME \
    --location=$REGION \
    --json-message='{"id": "hello-world-id-1234", "type":
 "hello-world-type", "source":
 "hello-world-source", "specversion": "1.0", "data":
 {"key": "hello-world-data"}}'

Nachdem Sie ein Ereignis veröffentlicht haben, sollten Sie die Meldung „Event published successfully“ (Ereignis erfolgreich veröffentlicht) erhalten.

Ereignisdaten in den Cloud Run-Logs ansehen

Nachdem Sie ein Ereignis in Ihrem Eventarc Advanced-Bus veröffentlicht haben, können Sie in den Logs Ihres Cloud Run-Dienstes prüfen, ob das Ereignis wie erwartet empfangen wurde.

  1. Rufen Sie in der Google Cloud -Console die Seite Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf der Seite Dienste auf den Namen Ihres Dienstes.

  3. Klicken Sie auf den Tab Logs.

  4. Sie können die Logeinträge filtern und die Ausgabe zurückgeben. Sie können beispielsweise nach hello-world-data suchen.

  5. Suchen Sie nach einem Logeintrag wie dem Folgenden:

    2025-02-27 08:36:44.350 EST [2025-02-27 13:36:44,352] INFO in server: Body: b'{"key": "hello-world-data"}'
    

Sie haben einen Eventarc Advanced-Bus und eine Anmeldung erstellt, eine Ereignisnachricht im Bus veröffentlicht und das erwartete Ergebnis in den Logs des Ereignisempfängerdienstes überprüft.

Bereinigen

Nach Abschluss der in dieser Kurzanleitung beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen:

  1. VPC-Subnetz löschen

  2. VPC-VPC-Netzwerk löschen

  3. Artifact Registry-Repository löschen

  4. Cloud Run-Dienst löschen

  5. Eventarc Advanced-Ressourcen löschen:

    1. Registrierung löschen

    2. Pipeline löschen

    3. Bus löschen

Alternativ können Sie Ihr Google Cloud -Projekt löschen, um wiederkehrende Gebühren zu vermeiden. Durch das Löschen des Google Cloud -Projekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte