Registrierung zum Empfangen von Ereignissen erstellen

Eine Anmeldung weist ein Abo einem bestimmten Bus zu. Die Registrierung definiert die Abgleichkriterien, die bestimmen, welche Nachrichten an ein Ziel weitergeleitet werden. Außerdem wird die Pipeline angegeben, über die übereinstimmende Nachrichten weitergeleitet werden sollen. In einer Pipeline können Sie ein Ziel konfigurieren und haben außerdem die Möglichkeit, alle übereinstimmenden Ereignisse vor ihrer Übermittlung an das Ziel umzuwandeln.

Wichtige Hinweise:

  • Eine Pipeline und eine Registrierung müssen sich im selben Google Cloud-Projekt befinden. Der Bus kann sich im selben oder in einem anderen Projekt befinden.
  • Eine Pipeline kann für mehrere Registrierungen verwendet werden.
  • Nachrichten, die über eine Pipeline weitergeleitet werden, können nur an ein einziges Ziel gesendet werden.
  • Bevor Sie eine Pipeline oder eine Registrierung konfigurieren, sollten Sie bereits einen erweiterten Eventarc-Bus erstellt haben.

Erforderliche Rollen

Eine IAM-Rolle (Identity and Access Management) enthält eine Reihe von Berechtigungen, mit denen Sie bestimmte Aktionen für Google Cloud-Ressourcen ausführen können. Die folgenden Rollen und Berechtigungen sind erforderlich, um eine Pipeline und eine Registrierung zum Weiterleiten von Nachrichten zu erstellen:

  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Eventarc-Entwickler (roles/eventarc.developer) für Ihr Pipelineprojekt zuzuweisen, um die Berechtigung zum Erstellen einer Pipeline zu erhalten. Diese vordefinierte Rolle enthält die Berechtigung eventarc.pipelines.create, die zum Erstellen einer Pipeline erforderlich ist.
  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Eventarc-Entwickler (roles/eventarc.developer) für Ihr Registrierungsprojekt zuzuweisen, um die Berechtigung zum Erstellen einer Registrierung zu erhalten. Diese vordefinierte Rolle enthält die Berechtigung eventarc.enrollments.create, die zum Erstellen einer Registrierung erforderlich ist.
  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Eventarc Message Bus User (roles/eventarc.messageBusUser) für Ihr Busprojekt zuzuweisen, um die Berechtigung zum Verwenden eines Busses zu erhalten. Diese vordefinierte Rolle enthält die Berechtigung eventarc.buses.use, die zum Verwenden eines Busses erforderlich ist.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten. Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Registrieren, um Ereignisse zu erhalten

Sie können eine Pipeline und eine Registrierung in der Google Cloud Console oder mit der Google Cloud CLI erstellen.

Console

In der Google Cloud Console können Sie auf der Seite Pipelines gleichzeitig die Pipeline und die Registrierung erstellen.

  1. Rufen Sie in der Google Cloud Console die Seite Eventarc > Pipelines auf, um eine Registrierung zu erstellen.

    Zu Pipelines

  2. Klicken Sie auf Pipeline erstellen.

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

    1. Geben Sie einen Pipelinenamen ein. Das ist die ID Ihrer Pipeline.
    2. Wählen Sie in der Liste Region eine Region aus, in der die Pipeline bereitgestellt werden soll. Die Pipeline muss in derselben Region wie der Bus erstellt werden. Weitere Informationen finden Sie unter Erweiterte Eventarc-Standorte.
    3. Optional: Sie können die Standardkonfiguration so ändern, dass Ereignisse wiederholt werden.
    4. Akzeptieren Sie unter Verschlüsselung die Standardeinstellung Von Google verwalteter Verschlüsselungsschlüssel oder wählen Sie Cloud KMS-Schlüssel aus. Weitere Informationen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) verwenden.
    5. Wenn Sie Cloud KMS-Schlüssel auswählen, gehen Sie so vor:

      1. Wählen Sie in der Liste Schlüsseltyp eine Methode zum Verwalten Ihrer Schlüssel aus.

        Sie können Ihre Schlüssel manuell verwalten oder Autokey verwenden, mit dem Sie Schlüsselringe und Schlüssel bei Bedarf generieren können. Wenn die Option „Autokey“ deaktiviert ist, wurde sie noch nicht in den aktuellen Ressourcentyp eingebunden.

      2. Wählen Sie unter Vom Kunden verwalteten Schlüssel auswählen einen Schlüssel aus.

        Sie müssen eine Region auswählen, bevor Sie Ihre vom Kunden verwalteten Schlüssel aufrufen können.

      3. Optional: Sie können den Ressourcennamen des Schlüssels, den Sie verwenden möchten, manuell in die Liste Wählen Sie einen vom Kunden verwalteten Schlüssel aus eingeben. Klicken Sie dazu auf Schlüssel manuell eingeben und geben Sie den Schlüsselnamen im angegebenen Format ein.

      4. Wenn Sie dazu aufgefordert werden, weisen Sie dem Eventarc-Dienst-Agent die Rolle cloudkms.cryptoKeyEncrypterDecrypter zu.

    6. Optional: Klicken Sie auf Label hinzufügen, um Labels hinzuzufügen. Labels sind Schlüssel/Wert-Paare, mit denen Sie Ihre Google Cloud-Ressourcen organisieren können. Weitere Informationen finden Sie unter Was sind Labels?

    7. Klicken Sie auf Weiter.

  4. Führen Sie im Bereich Registrierungen die folgenden Schritte aus:

    1. Klicken Sie auf Registrierung hinzufügen.
    2. Geben Sie einen Registrierungsnamen ein.
    3. Wählen Sie in der Liste Bus einen Bus aus, für den Sie Benachrichtigungen abonnieren möchten.
    4. Geben Sie im Feld CEL-Ausdruck einen Bewertungsausdruck in CEL ein. Beispiel:

      message.type == "google.cloud.dataflow.job.v1beta3.statusChanged"

      Der Standardausdruck true gibt an, dass alle Nachrichten ungefiltert weitergeleitet werden.

    5. Klicken Sie auf Fertig.

    6. Sie können eine weitere Registrierung hinzufügen oder auf Weiter klicken.

  5. Optional: Gehen Sie im Bereich Ereignisvermittlung so vor oder klicken Sie auf Weiter:

    1. Klicken Sie das Kästchen Transformation anwenden an.
    2. Wählen Sie in der Liste Eingehendes Format das entsprechende Format aus.

      Wenn Sie eine Transformation anwenden, müssen Sie ein eingehendes Datenformat für eine Pipeline angeben und alle Ereignisse müssen diesem Format entsprechen.

    3. Für Avro- oder Protobuf-Formate müssen Sie ein Eingangsschema angeben. Optional können Sie ein Eingangsschema hochladen. Weitere Informationen finden Sie unter Empfangene Ereignisse formatieren.

    4. Geben Sie im Feld CEL-Ausdruck einen Transformationsausdruck in CEL ein.

    5. Klicken Sie auf Weiter.

  6. Führen Sie im Bereich Ziel die folgenden Schritte aus:

    1. Wählen Sie in der Liste Zieltyp einen Zieltyp aus, an den Nachrichten weitergeleitet werden sollen. Gehen Sie je nach Zieltyp so vor:

      • HTTP-Endpunkt: Geben Sie den Ziel-URI an. Der Host kann entweder eine statische IP-Adresse sein, die von einem VPC-Netzwerk (Virtual Private Cloud) aus adressiert werden kann, oder der interne Domain Name System (DNS)-Hostname eines Dienstes, der mit Cloud DNS aufgelöst werden kann.

        Sie können diesen Zieltyp auch für eine Cloud Run-Funktion verwenden.

      • Eventarc Advanced-Bus: Wählen Sie einen Eventarc Advanced-Bus aus.

      • Workflows-Workflow: Wählen Sie einen Workflows-Workflow aus.

      • Pub/Sub-Thema: Wählen Sie ein Pub/Sub-Thema aus oder erstellen Sie ein neues.

      • Cloud Run-Dienst (über HTTP): Wählen Sie einen Cloud Run-Dienst aus, der Ereignisse als HTTP-POST-Anfragen empfängt, die an seinen Stamm-URL-Pfad (/) gesendet werden. Optional können Sie einen relativen URL-Pfad für den Zieldienst angeben, an den Ereignisse gesendet werden sollen.

      • Cloud Run-Job (über HTTP): Wählen Sie einen Cloud Run-Job aus, der Ereignisse als HTTP-POST-Anfragen empfängt.

    2. Geben Sie einen Netzwerkanhang an.

      Ein Netzwerkanhang ist eine Ressource, mit der ein VPC-Netzwerk (Virtual Private Cloud) eines Erstellers 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.

      Sie können einen Netzwerkanhang erstellen, der automatisch Verbindungen von jeder Private Service Connect-Schnittstelle akzeptiert, die auf den Netzwerkanhang verweist. Erstellen Sie den Netzwerkanhang im selben Netzwerk und in derselben Region wie der Zielendpunkt.

      Wenn Sie Nachrichten mithilfe einer DNS-Adresse an ein Google-Ziel weiterleiten, z. B. an Cloud Run, Pub/Sub, Workflows oder einen anderen Eventarc Advanced-Bus, muss der private Google-Zugriff in dem im Netzwerkanhang verwendeten Subnetz aktiviert sein. Andernfalls kann die DNS-Adresse nicht aufgelöst werden.

    3. Wählen Sie gegebenenfalls in der Liste Ausgabeformat ein Format aus.

      Wenn für eine Pipeline kein Format für eingehende Daten angegeben ist, kann kein Format für ausgehende Daten festgelegt werden.

    4. Wenden Sie gegebenenfalls eine Nachrichtenbindung an. Weitere Informationen finden Sie unter Nachrichtenbindung definieren.

    5. Klicken Sie das Kästchen Authentifizierung aktivieren an, um die Authentifizierung zu aktivieren.

      1. Wählen Sie in der Liste Auth-Header den Tokentyp aus, der generiert werden soll, und hängen Sie ihn als Authorization-Header in die HTTP-Anfrage an:

        • Ein OAuth-Token sollte im Allgemeinen nur beim Aufrufen von Google APIs verwendet werden, die auf *.googleapis.com gehostet werden. Optional können Sie den Umfang dieses Tokens angeben. Andernfalls wird standardmäßig https://www.googleapis.com/auth/cloud-platform verwendet. Für Google Cloud-Dienste empfiehlt es sich, den Bereich https://www.googleapis.com/auth/cloud-platform zu verwenden. Dieser enthält alle Google Cloud APIs zusammen mit Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), die eine detaillierte Zugriffssteuerung bietet.

          Alle Anfragen an einen anderen Eventarc Advanced-Bus, Pub/Sub oder Workflows müssen einen HTTP-Autorisierungs-Header enthalten, der ein von Google für eines der autorisierten Dienstkonten signiertes OAuth-Token enthält.

        • Ein OIDC-Token kann für viele Szenarien verwendet werden, einschließlich Endpunkten, bei denen Sie das Token selbst validieren möchten. Geben Sie außerdem die Zielgruppe an, für die dieses Token bestimmt ist. Sie sollte in der Regel mit der URL der Zielpipeline übereinstimmen. Wenn nichts angegeben wird, wird die gesamte URL einschließlich aller Anfrageparameter verwendet.

          Cloud Run führt für jede Anfrage eine IAM-Prüfung durch. Mit der Berechtigung run.routes.invoke können Sie so konfigurieren, wer auf Ihren Cloud Run-Dienst zugreifen kann:

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

          • Erteilen Sie allUsers die Berechtigung, den nicht authentifizierten Zugriff zuzulassen.

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

        Weitere Informationen zu Tokentypen

      2. Wählen Sie in der Liste Dienstkonto das Dienstkonto aus, das Ihren Zieldienst aufruft. Alternativ können Sie ein neues Dienstkonto erstellen.

        Dies gibt die E-Mail-Adresse des IAM-Dienstkontos an, die der Pipeline zugeordnet ist und für die Sie zuvor bestimmte Rollen zugewiesen haben, die für Eventarc Advanced erforderlich sind.

  7. Klicken Sie auf Erstellen.

gcloud

Wenn Sie die gcloud CLI verwenden, erstellen Sie zuerst die Pipeline und dann die Registrierung mit den entsprechenden Befehlen.

Pipeline

  1. Öffnen Sie ein Terminalfenster.

  2. Erstellen Sie mit dem Befehl gcloud beta eventarc pipelines create eine Pipeline:

    gcloud beta eventarc pipelines create PIPELINE_NAME \
        --destinations=DESTINATION_KEY \
        --location=REGION

    Ersetzen Sie Folgendes:

    • PIPELINE_NAME: ID der Pipeline oder ein voll qualifizierter Name
    • DESTINATION_KEY: Ein oder mehrere Schlüssel/Wert-Paare, um ein Ziel für die Pipeline zu konfigurieren

      Sie müssen nur einen der folgenden Schlüssel festlegen:

      Sie müssen den folgenden Schlüssel festlegen:

      • network_attachment: Eine Ressource, mit der ein VPC-Netzwerk eines Erstellers Verbindungen zu einem VPC-Netzwerk eines Nutzers 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.

        Sie können einen Netzwerkanhang erstellen, der automatisch Verbindungen von jeder Private Service Connect-Schnittstelle akzeptiert, die auf den Netzwerkanhang verweist. Erstellen Sie den Netzwerkanhang im selben Netzwerk und in derselben Region wie die Zielressource.

        Wenn Sie Nachrichten mithilfe einer DNS-Adresse an ein Google-Ziel weiterleiten, z. B. an Cloud Run, Pub/Sub, Workflows oder einen anderen Eventarc Advanced-Bus, muss der private Google-Zugriff in dem im Netzwerkanhang verwendeten Subnetz aktiviert sein. Andernfalls kann die DNS-Adresse nicht aufgelöst werden.

      Sie können einen der folgenden Schlüssel festlegen, um die Authentifizierung zu aktivieren:

      • google_oidc_authentication_service_account: Die E-Mail-Adresse des Dienstkontos, die zum Generieren eines OIDC-Tokens verwendet wird. Dieses Token kann für viele Szenarien verwendet werden, einschließlich Endpunkten, bei denen Sie das Token selbst validieren möchten. Optional können Sie google_oidc_authentication_audience festlegen, um die Zielgruppe anzugeben, für die dieses Token bestimmt ist. Sie sollte in der Regel mit der URL der Zielpipeline übereinstimmen. Falls nichts angegeben wurde, wird die gesamte URL einschließlich aller Anfrageparameter verwendet.

        Cloud Run führt für jede Anfrage eine IAM-Prüfung durch. Mit der Berechtigung run.routes.invoke können Sie so konfigurieren, wer auf Ihren Cloud Run-Dienst zugreifen kann:

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

        • Erteilen Sie allUsers die Berechtigung, den nicht authentifizierten Zugriff zuzulassen.

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

      • oauth_token_authentication_service_account: Die E-Mail-Adresse des Dienstkontos, mit der ein OAuth-Token generiert wird. Sie sollte im Allgemeinen nur beim Aufrufen von Google APIs verwendet werden, die auf *.googleapis.com gehostet werden. Optional können Sie oauth_token_authentication_scope festlegen, um den Gültigkeitsbereich dieses Tokens anzugeben. Andernfalls wird standardmäßig https://www.googleapis.com/auth/cloud-platform verwendet. Für Google Cloud-Dienste empfiehlt es sich, den Bereich https://www.googleapis.com/auth/cloud-platform zu verwenden. Dieser enthält alle Google Cloud APIs zusammen mit Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), die eine detaillierte Zugriffssteuerung bietet.

        Alle Anfragen an einen anderen Eventarc Advanced-Bus, Pub/Sub oder Workflows müssen einen HTTP-Autorisierungs-Header enthalten, der ein von Google für eines der autorisierten Dienstkonten signiertes OAuth-Token enthält.

        Weitere Informationen zu Tokentypen

      Optional: Sie können einen der folgenden Tasten festlegen:

      • output_payload_format_avro_schema_definition
      • output_payload_format_json
      • output_payload_format_protobuf_schema_definition

        Wenn Sie ein Ausgabeformat festlegen, müssen Sie auch ein Eingabeformat angeben (siehe folgende input-payload-format-*-Flags).

      Optional: Wenn http_endpoint_uri nicht als Zielschlüssel verwendet wird, können Sie die folgenden Schlüssel festlegen:

      • project: die Google Cloud-Projekt-ID der Zielressource. Standardmäßig wird die Projekt-ID der Pipeline verwendet.
      • location: Der Speicherort der Zielressource. Standardmäßig wird der Speicherort der Pipeline verwendet.
    • REGION: ein unterstützter Standort für Eventarc Advanced

      Alternativ können Sie das Attribut „Speicherort“ der gcloud CLI festlegen:

      gcloud config set eventarc/location REGION
      

    Optional: Sie können die folgenden Flags verwenden:

    • --async, um sofort vom Befehl zurückzukehren, ohne auf den Abschluss des laufenden Vorgangs zu warten.
    • --crypto-key, um den voll qualifizierten Namen eines vom Kunden verwalteten Verschlüsselungsschlüssels anzugeben. Andernfalls werden von Google verwaltete Schlüssel verwendet.
    • --logging-config, um die Protokollierungsebene zu konfigurieren. Sie muss einen der folgenden Werte haben: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
    • --mediations, um eine Transformation anzuwenden. transformation_template ist die einzige unterstützte Vorlage und es wird nur eine Vermittlung pro Pipeline unterstützt. Beispiel:

      --mediations=transformation_template='message.removeFields(["id\ ","credit_card_number","age"])'

      Wenn Sie eine Transformation anwenden, müssen Sie eines der folgenden Flags verwenden, um ein Eingabeformat anzugeben.

    • Geben Sie eines der folgenden Eingabeformate an:

      • --input-payload-format-avro-schema-definition
      • --input-payload-format-json
      • --input-payload-format-protobuf-schema-definition
    • --max-retry-attempts, --max-retry-delay und --min-retry-delay Ereignisse noch einmal versuchen

    Beispiel:

    gcloud beta eventarc pipelines create my-pipeline \
        --destinations=http_endpoint_uri='https://example-endpoint.com',network_attachment=my-network-attachment,oauth_token_authentication_service_account=example-service-account@example-project.gserviceaccount.iam.com,oauth_token_authentication_scope='https://www.googleapis.com/auth/cloud-platform',output_payload_format_avro_schema_definition='{"type": "record","name": "my_record", "fields": [{"name": "my_field", "type":"string"}]}' \
        --input-payload-format-avro-schema-definition='{"type":"record", "name": "my_record", "fields": [{"name": "my_field","type": "string"}]}' \
        --location=us-central1 \
        --async
    

    Weitere Informationen und Beispiele finden Sie in der Dokumentation zur gcloud CLI.

Registrierung

  1. Öffnen Sie ein Terminalfenster.

  2. Erstellen Sie eine Registrierung mit dem Befehl gcloud beta eventarc enrollments create:

    gcloud beta eventarc enrollments create ENROLLMENT_NAME \
        --cel-match=MATCH_EXPRESSION \
        --destination-pipeline=PIPELINE_NAME \
        --message-bus=BUS_NAME \
        --message-bus-project=PROJECT_ID \
        --location=REGION

    Ersetzen Sie Folgendes:

    • ENROLLMENT_NAME: die ID der Registrierung oder ein voll qualifizierter Name
    • MATCH_EXPRESSION: Der Abgleichsexpression für diese Registrierung mit CEL, z. B. "message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'"
    • PIPELINE_NAME: die ID der Zielpipeline oder ihr vollständig qualifizierter Name für diese Registrierung
    • BUS_NAME: die ID des Eventarc Advanced-Busses oder sein voll qualifizierter Name
    • PROJECT_ID: die Google Cloud-Projekt-ID für den Bus
    • REGION: ein unterstützter Standort für Eventarc Advanced

      Alternativ können Sie das Attribut „Speicherort“ der gcloud CLI festlegen:

      gcloud config set eventarc/location REGION
      

    Optional: Sie können das folgende Flag verwenden:

    • --async, um sofort vom Befehl zurückzukehren, ohne auf den Abschluss des Vorgangs zu warten

    Beispiel:

    gcloud beta eventarc enrollments create my-enrollment \
        --cel-match="message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'" \
        --destination-pipeline=my-pipeline \
        --message-bus=my-message-bus \
        --message-bus-project=another-google-cloud-project \
        --location=us-central1 \
        --async
    

Registrierung löschen

Sie können eine Registrierung in der Google Cloud Console oder mit der Google Cloud CLI löschen.

Console

  1. Wenn Sie eine Registrierung löschen möchten, rufen Sie in der Google Cloud Console die Seite Eventarc > Pipelines auf.

    Zu Pipelines

  2. Klicken Sie auf den Namen der Pipeline, aus der Sie die Registrierung löschen möchten.

    Der Bereich Pipeline-Details wird geöffnet.

  3. Klicken Sie auf Weiter.

    Der Bereich Registrierungen wird geöffnet.

  4. Klicken Sie bei der Registrierung, die Sie löschen möchten, auf das Papierkorbsymbol .

  5. Klicken Sie auf Speichern.

gcloud

  1. Öffnen Sie ein Terminalfenster.

  2. Verwenden Sie den Befehl gcloud beta eventarc enrollments delete, um eine Registrierung zu löschen:

    gcloud beta eventarc enrollments delete ENROLLMENT_NAME \
          --location=REGION

    Ersetzen Sie Folgendes:

Pipeline löschen

Sie können eine Pipeline in der Google Cloud Console oder mit der Google Cloud CLI löschen.

Das Löschen einer Pipeline kann länger als 10 Minuten dauern.

Console

  1. Wenn Sie eine Pipeline löschen möchten, rufen Sie in der Google Cloud Console die Seite Eventarc > Pipelines auf.

    Zu Pipelines

  2. Klicken Sie in der Liste der Pipelines auf das Kästchen neben dem Namen der Pipeline, die Sie löschen möchten.

  3. Klicken Sie auf Löschen.

  4. Bestätigen Sie den Löschvorgang durch Eingabe von Delete.

  5. Klicken Sie auf Löschen.

gcloud

  1. Öffnen Sie ein Terminalfenster.

  2. Löschen Sie eine Pipeline mit dem Befehl gcloud beta eventarc pipelines delete:

    gcloud beta eventarc pipelines delete PIPELINE_NAME \
          --location=REGION

    Ersetzen Sie Folgendes:

Nächste Schritte