Ereignisse an einen internen HTTP-Endpunkt in einem VPC-Netzwerk weiterleiten

Ein Eventarc-Trigger deklariert Ihr Interesse an einem bestimmten Ereignis oder einer Reihe von Ereignissen. Sie können die Weiterleitung von Ereignissen konfigurieren. Legen Sie dazu Filter für den Trigger fest, einschließlich der Ereignisquelle und des Zielortes.

Eventarc liefert Ereignisse über eine HTTP-Anfrage an den Ereignisempfänger im CloudEvents-Format.

In dieser Anleitung erfahren Sie, wie Sie das Ereignisrouting für alle Ereignistypen zu einem internen HTTP-Endpunkt in einem VPC-Netzwerk (Virtual Private Cloud) konfigurieren. Zum Konfigurieren des Triggers müssen Sie auch eine ID für den Netzwerkanhang angeben.

  • Unterstützte Ereignistypen sind:

    • Direkte Ereignisse: Wird durch ein nicht sofortiges Ereignis ausgelöst, z. B. eine Aktualisierung eines Objekts in einem Cloud Storage-Bucket oder eine in einem Pub/Sub-Thema veröffentlichte Nachricht.

    • Cloud-Audit-Logereignisse: Wird ausgelöst, wenn ein Log über Cloud-Audit-Logs erstellt wird

    • Drittanbieterereignisse: Wird durch die Ereignisse eines Nicht-Google-Anbieters ausgelöst, der eine Eventarc-Quelle bietet

  • Der interne HTTP-Endpunkt kann eine interne IP-Adresse oder ein voll qualifizierter DNS-Name (FQDN) für jeden HTTP-Endpunkt im Virtual Private Cloud-Netzwerk sein. Im Folgenden finden Sie zwei Beispiele für mögliche Ereignisziele:

    • Eine Compute Engine-VM-Instanz: Compute Engine-Instanzen können die von Google bereitgestellten öffentlichen Images für Linux und Windows Server ausführen. Dasselbe gilt für private benutzerdefinierte Images, die Sie erstellen oder aus Ihren vorhandenen Systemen erstellen können. Weitere Informationen finden Sie unter VM-Instanzen.
    • Ein interner Load-Balancer. Ein interner Google Cloud-Load-Balancer ist ein proxy-basierter, regionaler Layer-7-Load-Balancer, mit dem Sie Ihre Dienste hinter einer internen IP-Adresse ausführen und skalieren können. Interne Application Load Balancer verteilen HTTP- und HTTPS-Traffic auf Back-Ends, die in Compute Engine, Google Kubernetes Engine (GKE) und Cloud Run gehostet werden. Weitere Informationen finden Sie unter Übersicht über internen Application Load Balancer.
  • Ein VPC-Netzwerk ist eine virtuelle Version eines physischen Netzwerks, die innerhalb des Produktionsnetzwerks von Google implementiert wurde. Ein freigegebenes VPC-Netzwerk ist ein VPC-Netzwerk, das in einem Hostprojekt definiert und als zentral freigegebenes Netzwerk für zulässige Ressourcen in Dienstprojekten zur Verfügung gestellt wird.

  • Ein Netzwerkanhang ist eine regionale Ressource, mit der Sie einen Ersteller explizit autorisieren, eine Verbindung zu einem Nutzer-VPC-Netzwerk herzustellen. Eventarc verwendet zum Veröffentlichen von Ereignissen den Netzwerkanhang, um eine Verbindung zum internen HTTP-Endpunkt herzustellen, der in einem VPC-Netzwerk gehostet wird.

Hinweise

Bevor Sie einen Eventarc-Trigger erstellen, um Ereignisse an einen internen HTTP-Endpunkt in einem VPC-Netzwerk weiterzuleiten, müssen Sie einen Netzwerkanhang erstellen, der Verbindungen im selben Netzwerk und in derselben Region wie der HTTP-Zieldienst akzeptiert.

In dieser Anleitung wird davon ausgegangen, dass Sie bereits ein VPC-Netzwerk und ein Subnetzwerk erstellt haben und Ihren HTTP-Zieldienst bereitgestellt haben.

Weitere Informationen finden Sie unter Pub/Sub-Ereignisse an einem internen HTTP-Endpunkt in einem VPC-Netzwerk empfangen. Darin wird die Bereitstellung eines internen HTTP-Endpunkts im VPC-Netzwerk und die Weiterleitung von Pub/Sub-Ereignissen an den Endpunkt veranschaulicht.

Bekannte Einschränkungen

Beim Weiterleiten von Ereignissen an einen internen HTTP-Endpunkt in einem VPC-Netzwerk sind die folgenden Einschränkungen bekannt:

  • Sie können nicht mehr als einen Eventarc-Trigger für denselben DNS-Namen erstellen.

  • Pro Projekt sind maximal 100 Eventarc-Trigger für interne HTTP-Endpunkte zulässig.

  • Nur die folgenden Eventarc-Triggerstandorte werden unterstützt:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

Erstellung eines Triggers vorbereiten

Bevor Sie einen Trigger erstellen, müssen Sie folgende Voraussetzungen erfüllen:

Console

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

    Zur Projektauswahl

  2. Aktivieren Sie die Cloud Logging und Eventarc APIs.

    APIs aktivieren

  3. Aktivieren Sie gegebenenfalls die API, die mit den direkten Ereignissen verbunden ist. Aktivieren Sie beispielsweise für Cloud Functions-Ereignisse cloudfunctions.googleapis.com.

  4. Falls noch nicht geschehen, erstellen Sie ein nutzerverwaltetes Dienstkonto und weisen Sie ihm die erforderlichen Rollen und Berechtigungen zu, damit Eventarc Ereignisse für Ihren Zieldienst verwalten kann.

    1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“

    2. Wählen Sie Ihr Projekt aus.

    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for event trigger

    4. Klicken Sie auf Erstellen und fortfahren.

    5. Wählen Sie in der Liste Rolle auswählen die erforderlichen IAM-Rollen (Identitäts- und Zugriffsverwaltung) aus, die Ihrem Dienstkonto zugewiesen werden sollen. Weitere Informationen finden Sie unter Rollen und Berechtigungen für einen internen HTTP-Endpunkt in einem VPC-Netzwerk.

      Klicken Sie auf Weitere Rolle hinzufügen, um weitere Rollen hinzuzufügen.

    6. Klicken Sie auf Weiter.

    7. Klicken Sie zum Abschließen der Erstellung des Kontos auf Fertig.

  5. Wenn Sie einen Trigger für direkte Ereignisse aus Cloud Storage erstellen, weisen Sie dem Cloud Storage-Dienst-Agent die Pub/Sub-Publisher-Rolle (roles/pubsub.publisher) zu:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen

    2. Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.

    3. Suchen Sie im´Hauptkonto nach dem Cloud Storage-Dienst-Agent im Formular service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com und klicken in der entsprechenden Zeile dann auf Hauptkonto bearbeiten.

    4. Klicken Sie entweder auf Rolle hinzufügen oder Weitere Rolle hinzufügen.

    5. Filtern Sie in der Liste Rolle auswählen nach Pub/Sub-Publisher und wählen Sie dann die Rolle aus.

    6. Klicken Sie auf Speichern.

  6. Wenn der URI des internen HTTP-Endpunkts im VPC-Netzwerk den internen DNS-Namen eines Dienstes verwendet, der von Cloud DNS aufgelöst werden kann, erteilen Sie die dem Eventarc-Dienst-Agenten die DNS Peer-Rolle (roles/dns.peer) im VPC-Hostprojekt.

    Beachten Sie, dass das VPC-Hostprojekt je nach Konfiguration des VPC-Netzwerks auch Ihr Eventarc-Trigger-Projekt sein kann.

    1. Wählen Sie in der Google Cloud Console auf der Projektauswahlseite das VPC-Hostprojekt aus.

      Zur Projektauswahl

    2. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen

    3. Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.

    4. Ändern oder fügen Sie den Eventarc-Dienst-Agent als Hauptkonto hinzu:

      • Wenn der Eventarc-Dienst-Agent bereits andere Rollen für das Projekt hat, suchen Sie die Zeile mit dem Hauptkonto im Format service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com und klicken Sie auf Hauptkonto bearbeiten in dieser Zeile und klicken Sie auf Weitere Rolle hinzufügen.

      • Wenn der Eventarc-Dienst-Agent keine Rollen für das Projekt hat, klicken Sie auf Zugriff gewähren, geben Sie dann die E-Mail-Adresse in das Formularservice-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com ein.

      Ersetzen Sie PROJECT_NUMBER durch die Google Cloud-Projektnummer für Ihr Eventarc-Trigger-Projekt. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud Console oder durch Ausführen des folgenden Befehls:

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. Filtern Sie in der Liste Rolle auswählen nach DNS-Peer und wählen Sie dann die Rolle aus.

    6. Klicken Sie auf Speichern.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Aktivieren Sie die Cloud Logging, Eventarc und Eventarc Publishing APIs.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
    
  3. Aktivieren Sie gegebenenfalls die API, die mit den Ereignissen verbunden ist. Aktivieren Sie beispielsweise für Cloud Functions-Ereignisse cloudfunctions.googleapis.com.

  4. Falls noch nicht geschehen, erstellen Sie ein nutzerverwaltetes Dienstkonto und weisen Sie ihm die erforderlichen Rollen und Berechtigungen zu, damit Eventarc Ereignisse für Ihren Zieldienst verwalten kann.

    1. Erstellen Sie das Dienstkonto:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Ersetzen Sie SERVICE_ACCOUNT_NAME durch den Namen des Dienstkontos. Der Name des Dienstkontos muss zwischen 6 und 30 Zeichen lang sein und darf alphanumerische Zeichen in Kleinschreibung sowie Bindestriche enthalten. Nachdem Sie ein Dienstkonto erstellt haben, können Sie den Namen nicht mehr ändern.

    2. Erteilen Sie die erforderlichen IAM-Rollen oder -Berechtigungen (Identity and Access Management). Weitere Informationen finden Sie unter Rollen und Berechtigungen für einen internen HTTP-Endpunkt in einem VPC-Netzwerk.

  5. Wenn der URI des internen HTTP-Endpunkts im VPC-Netzwerk den internen DNS-Namen eines Dienstes verwendet, der von Cloud DNS aufgelöst werden kann, erteilen Sie die dem Eventarc-Dienst-Agenten die RolleDNS Peer (roles/dns.peer) im VPC-Hostprojekt.

    Beachten Sie, dass das VPC-Hostprojekt je nach Konfiguration des VPC-Netzwerks auch Ihr Eventarc-Trigger-Projekt sein kann.

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \
        --role=roles/dns.peer

    Ersetzen Sie Folgendes:

    • VPC_HOST_PROJECT_ID: die Google Cloud-Projekt-ID für das VPC-Hostprojekt.
    • PROJECT_NUMBER: die Google Cloud-Projektnummer für Ihr Eventarc-Trigger-Projekt. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud Console oder durch Ausführen des folgenden Befehls:
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. Wenn Sie einen Trigger für direkte Ereignisse aus Cloud Storage erstellen, erteilen Sie dem Cloud Storage-Dienst-Agenten die Rolle Pub/Sub-Publisher (roles/pubsub.publisher) für das Projekt:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

Trigger erstellen

Sie können einen Eventarc-Trigger mit der Google Cloud CLI oder über die Google Cloud Console erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite mit den Eventarc-Triggern auf.

    Zur Seite "Trigger"

  2. Klicken Sie auf Trigger erstellen.
  3. Geben Sie einen Triggernamen ein.

    Dies ist die ID des Triggers. Sie muss mit einem Buchstaben beginnen. Sie kann bis zu 63 Kleinbuchstaben, Ziffern oder Bindestriche enthalten.

  4. Wählen Sie als Triggertyp Google-Quellen oder Drittanbieter aus.
  5. Wählen Sie einen Ereignisanbieter aus.

    Dies ist der Dienst, der die Ereignisquelle ist. Bei einer Google-Quelle erfolgt dies entweder direkt oder über seine Audit-Logs.

  6. Führen Sie je nach Ereignistyp, den Sie weiterleiten, einen der folgenden Schritte aus:
    1. Direkte Ereignisse: Wählen Sie in der Liste Ereignistyp unter Direkte Ereignisse einen Ereignistyp aus.
      1. Bei direkten Cloud Pub/Sub-Ereignissen wählen Sie in der Liste Cloud Pub/Sub-Thema auswählen ein Thema aus oder übernehmen den Standardwert Kein Thema. Ein neues Thema wird für Sie erstellt.
      2. Geben Sie für direkte Cloud Storage-Ereignisse die global eindeutige Kennung des Cloud Storage-Buckets an oder suchen Sie danach.
    2. Wählen Sie in der Liste Ereignistyp aus den Ereignissen von via Cloud-Audit-Log einen Ereignistyp aus und wählen Sie dann eine der folgenden Optionen:
      • Beliebige Ressource: Dies ist die Standardeinstellung und enthält dynamisch erstellte Ressourcen, deren Kennungen bei der Erstellung generiert wurden.
      • Bestimmte Ressource: Sie müssen den vollständigen Ressourcennamen angeben.
      • Pfadmuster: Sie können mithilfe eines Pfadmusters nach Ressourcen filtern. Geben Sie beispielsweise projects/_/buckets/eventarc-bucket/objects/random.txt oder projects/_/buckets/**/r*.txt ein.
    3. Drittanbieterereignisse: Wählen Sie in der Liste Kanal einen Kanal und dann in der Liste Ereignistyp ein Ereignis aus.

      Weitere Informationen finden Sie unter Kanal erstellen und Details abrufen.

  7. Wählen Sie gegebenenfalls für den Ereignistyp in der Liste Inhaltstyp der Ereignisdaten die Option application/json oder application/protobuf aus, um die Codierung der Ereignisnutzlast anzugeben.

    Beachten Sie, dass eine im JSON-Format formatierte Ereignisnutzlast größer als eine in Protobuf formatierte ist. Dies kann sich auf die Zuverlässigkeit auswirken, je nach Ereignisziel und Limits der Ereignisgröße. Weitere Informationen finden Sie unter Bekannte Probleme.

  8. Klicken Sie, sofern für den Ereignisanbieter zutreffend, auf Filter hinzufügen und geben Sie Folgendes an:
    1. Wählen Sie im Feld Attribut 1 je nach ausgewähltem direktem Ereignis eine Ressourcen-ID aus, die als Ereignisfilter dienen kann.
    2. Wählen Sie einen Operator aus:
    3. Geben Sie im Feld Attributwert 1 je nach ausgewähltem Operator den genauen Wert ein oder wenden Sie ein Pfadmuster an.
    4. Wenn ein Feld Attribut 2 vorhanden ist, geben Sie die entsprechenden Werte an.
  9. Wählen Sie in der Liste Region eine Region aus.

    Zur Vermeidung von Leistungs- und Datenstandortproblemen muss der Standort mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse generiert.

    Für dieses Ereignisziel werden nur die folgenden Standorte unterstützt:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    Weitere Informationen finden Sie unter Eventarc-Standorte.

  10. Wählen Sie das Dienstkonto aus, das Ihren Dienst aufruft.

    Alternativ können Sie ein neues Dienstkonto erstellen.

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

  11. Wählen Sie in der Liste Ereignisziel die Option HTTP-Endpunkt (intern) aus.
    1. Geben Sie den Ziel-URI an. Dies ist der URI des internen HTTP-Endpunkts im VPC-Netzwerk, der die Ereignisse für den Trigger empfängt. Der URI kann entweder eine statische interne IP-Adresse im VPC-Netzwerk sein, die über den Netzwerkanhang adressiert ist, oder der interne DNS-Name eines Dienstes, der von Cloud DNS aufgelöst werden kann.

      Wenn der HTTP-Endpunkt einen internen DNS-Namen verwendet, erstellt Eventarc automatisch DNS-Peering-Zonen und leitet DNS-Anfragen an die DNS-Zonen im Ziel-VPC-Netzwerk weiter. Mit DNS-Peering können Sie Anfragen für Einträge aus dem Namespace einer bestimmten Zone an ein anderes VPC-Netzwerk senden. Weitere Informationen finden Sie unter Peering-Zonen und Peering-Zone erstellen.

      Beachten Sie, dass Sie für denselben DNS-Namen nicht mehr als einen Trigger erstellen können.

    2. Wählen Sie in der Liste Netzwerkanhang eine Kennzeichnung für die Ressource des Netzwerkanhangs aus. Diese Kennzeichnung wird nach dem Erstellen eines Netzwerkanhangs generiert. Weitere Informationen finden Sie unter Netzwerkanhänge erstellen.

      Mit Netzwerkanhängen können Dienstersteller-VPC-Netzwerke Verbindungen zu Nutzer-VPC-Netzwerken initiieren. Eventarc verwendet den Netzwerkanhang, um eine Verbindung zum internen HTTP-Endpunkt herzustellen, der im VPC-Netzwerk des Nutzers gehostet wird, und um Ereignisse zu veröffentlichen.

      Wenn Sie einen Netzwerkanhang erstellen, können Sie eine Verbindung explizit über Producer-Annahme- und -Sperrlisten autorisieren. Eventarc kann die Zulassungsliste eines Netzwerkanhangs mit der entsprechenden Projekt-ID aktualisieren, ohne dass Sie etwas tun müssen.

  12. Klicken Sie auf Erstellen.
  13. Nachdem ein Trigger erstellt wurde, können die Ereignisquellenfilter nicht mehr geändert werden. Erstellen Sie stattdessen einen neuen Trigger und löschen Sie den alten. Weitere Informationen finden Sie unter Trigger verwalten.

gcloud

Wenn Sie einen gcloud eventarc triggers create-Befehl zusammen mit den erforderlichen und optionalen Flags ausführen, können Sie einen Trigger erstellen.

Direkte Ereignisse

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="COLLECTION_ID=RESOURCE_ID" \
    --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1.

    Zur Vermeidung von Leistungs- und Datenstandortproblemen muss der Standort mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse generiert.

    Für dieses Ereignisziel werden nur die folgenden Standorte unterstützt:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Weitere Informationen finden Sie unter Eventarc-Standorte.

  • ENDPOINT_URI: der URI des internen HTTP-Endpunkts im VPC-Netzwerk, der die Ereignisse für den Trigger empfängt. Der URI kann entweder eine statische interne IP-Adresse im VPC-Netzwerk sein, die vom Netzwerkanhang behandelt wird, oder der interne DNS-Name eines Dienstes, der von Cloud DNS aufgelöst werden kann.

    Wenn der HTTP-Endpunkt einen internen DNS-Namen verwendet, erstellt Eventarc automatisch DNS-Peering-Zonen und leitet DNS-Anfragen an die DNS-Zonen im Ziel-VPC-Netzwerk weiter. Mit DNS-Peering können Sie Anfragen für Einträge aus dem Namespace einer bestimmten Zone an ein anderes VPC-Netzwerk senden. Weitere Informationen finden Sie unter Peering-Zonen und Peering-Zone erstellen.

    Beachten Sie, dass Sie für denselben DNS-Namen nicht mehr als einen Trigger erstellen können.

  • NETWORK_ATTACHMENT_ID: Eindeutige Kennung für die Ressource des Netzwerkanhangs. Die Kennzeichnung wird nach dem Erstellen eines Netzwerkanhangs generiert. Weitere Informationen finden Sie unter Netzwerkanhänge erstellen.

    Mit Netzwerkanhängen können Dienstersteller-VPC-Netzwerke Verbindungen zu Nutzer-VPC-Netzwerken initiieren. Eventarc verwendet den Netzwerkanhang, um eine Verbindung zum internen HTTP-Endpunkt herzustellen, der im VPC-Netzwerk des Nutzers gehostet wird, und um Ereignisse zu veröffentlichen.

    Wenn Sie einen Netzwerkanhang erstellen, können Sie eine Verbindung explizit über Producer-Annahme- und -Sperrlisten autorisieren. Eventarc kann die Zulassungsliste eines Netzwerkanhangs mit der entsprechenden Projekt-ID und ohne Eingriff aktualisieren.

  • EVENT_FILTER_TYPE: die Kennzeichnung des Ereignisses. Ein Ereignis wird generiert, wenn ein API-Aufruf für die Methode erfolgreich ist. Bei lang andauernden Vorgängen wird das Ereignis nur am Ende des Vorgangs generiert und nur dann, wenn die Aktion erfolgreich ausgeführt wird. Liste der unterstützten direkten Ereignistypen.

  • COLLECTION_ID (optional): die Ressourcenkomponente, die als Ereignisfilter fungieren kann; Für Cloud Functions ist dies beispielsweise function.

  • RESOURCE_ID: die Kennzeichnung der Ressource, die als Filterwert für die zugehörige Sammlung verwendet wird. Weitere Informationen finden Sie unter Ressourcen-ID.

  • PATH_PATTERN: das Pfadmuster, das beim Filtern nach der Ressource angewendet werden soll.

  • SERVICE_ACCOUNT_NAME: der Name Ihres nutzerverwalteten Dienstkontos.

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID

Hinweise:

  • Das Flag --event-filters="type=EVENT_FILTER_TYPE" ist erforderlich. Wenn kein anderer Ereignisfilter festgelegt ist, werden Ereignisse für alle Ressourcen abgeglichen.
  • EVENT_FILTER_TYPE kann nach dem Erstellen nicht mehr geändert werden. Wenn Sie EVENT_FILTER_TYPE ändern möchten, erstellen Sie einen neuen Trigger und löschen Sie den alten.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Komms in einem --event-filters=[ATTRIBUTE=VALUE,...]-Flag getrennt sind. Sie können das Flag aber auch wiederholen, um weitere Filter hinzuzufügen. Nur Ereignisse, die mit allen Filtern übereinstimmen, werden an das Ziel gesendet. Platzhalter und reguläre Ausdrücke werden nicht unterstützt. Mit dem Flag --event-filters-path-pattern können Sie jedoch ein Pfadmuster für Ressourcen definieren.
  • Mit dem Flag --service-account wird die E-Mail-Adresse des IAM-Dienstkontos angegeben, das dem Trigger zugeordnet ist.

Beispiel:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Audit-Log-Ereignisse

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1.

    Zur Vermeidung von Leistungs- und Datenstandortproblemen muss der Standort mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse generiert. Die folgenden Standorte werden unterstützt.

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Weitere Informationen finden Sie unter Eventarc-Standorte.

  • ENDPOINT_URI: der URI des internen HTTP-Endpunkts im VPC-Netzwerk, der die Ereignisse für den Trigger empfängt. Der URI kann entweder eine statische interne IP-Adresse im VPC-Netzwerk sein, die vom Netzwerkanhang behandelt wird, oder der interne DNS-Name eines Dienstes, der von Cloud DNS aufgelöst werden kann.

    Wenn der HTTP-Endpunkt einen internen DNS-Namen verwendet, erstellt Eventarc automatisch DNS-Peering-Zonen und leitet DNS-Anfragen an die DNS-Zonen im Ziel-VPC-Netzwerk weiter. Mit DNS-Peering können Sie Anfragen für Einträge aus dem Namespace einer bestimmten Zone an ein anderes VPC-Netzwerk senden. Weitere Informationen finden Sie unter Peering-Zonen und Peering-Zone erstellen.

    Beachten Sie, dass Sie für denselben DNS-Namen nicht mehr als einen Trigger erstellen können.

  • NETWORK_ATTACHMENT_ID: Eindeutige Kennung für die Ressource des Netzwerkanhangs. Die Kennzeichnung wird nach dem Erstellen eines Netzwerkanhangs generiert. Weitere Informationen finden Sie unter Netzwerkanhänge erstellen.

    Mit Netzwerkanhängen können Dienstersteller-VPC-Netzwerke Verbindungen zu Nutzer-VPC-Netzwerken initiieren. Eventarc verwendet den Netzwerkanhang, um eine Verbindung zum internen HTTP-Endpunkt herzustellen, der im VPC-Netzwerk des Nutzers gehostet wird, und um Ereignisse zu veröffentlichen.

    Wenn Sie einen Netzwerkanhang erstellen, können Sie eine Verbindung explizit über Producer-Annahme- und -Sperrlisten autorisieren. Eventarc kann die Zulassungsliste eines Netzwerkanhangs mit der entsprechenden Projekt-ID und ohne Eingriff aktualisieren.

  • SERVICE_NAME: ist die Kennzeichnung des Google Cloud-Dienstes. Liste der unterstützten Audit-Logereignistypen

  • METHOD_NAME: Die Kennzeichnung des Vorgangs. Liste der unterstützten Audit-Logereignistypen

  • SERVICE_ACCOUNT_NAME: der Name Ihres nutzerverwalteten Dienstkontos.

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID

Hinweise:

  • Diese Flags sind erforderlich:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • Optional können Sie Ereignisse für eine bestimmte Ressource filtern. Verwenden Sie dazu das Flag --event-filters="resourceName=VALUE" und geben Sie den vollständigen Pfad zur Ressource an. Lassen Sie das Flag für dynamisch erstellte Ressourcen weg, deren Kennzeichnungen zur Erstellungszeit generiert werden. Alternativ können Sie Ereignisse für eine Reihe von Ressourcen filtern, wenn Sie das Flag --event-filters-path-pattern="resourceName=VALUE" verwenden und das Muster für den Ressourcenpfad angeben.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Komms in einem --event-filters=[ATTRIBUTE=VALUE,...]-Flag getrennt sind. Sie können das Flag aber auch wiederholen, um weitere Filter hinzuzufügen. Nur Ereignisse, die mit allen Filtern übereinstimmen, werden an das Ziel gesendet. Platzhalter und reguläre Ausdrücke werden nicht unterstützt. Mit dem Flag --event-filters-path-pattern können Sie jedoch ein Pfadmuster für Ressourcen definieren.
  • Nachdem ein Trigger erstellt wurde, kann der Ereignisfiltertyp nicht mehr geändert werden. Für einen anderen Ereignistyp müssen Sie einen neuen Trigger erstellen.
  • Mit dem Flag --service-account wird die E-Mail-Adresse des IAM-Dienstkontos angegeben, das dem Trigger zugeordnet ist.

Beispiel:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://10.10.10.2 \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=eventarc.googleapis.com" \
    --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \
    --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Drittanbieterereignisse

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --channel=CHANNEL_NAME \
    --project=PROJECT_ID \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1.

    Zur Vermeidung von Leistungs- und Datenstandortproblemen muss der Standort mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse generiert.

    Für dieses Ereignisziel werden nur die folgenden Standorte unterstützt:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Weitere Informationen finden Sie unter Eventarc-Standorte.

  • ENDPOINT_URI: der URI des internen HTTP-Endpunkts im VPC-Netzwerk, der die Ereignisse für den Trigger empfängt. Der URI kann entweder eine statische interne IP-Adresse im VPC-Netzwerk sein, die vom Netzwerkanhang behandelt wird, oder der interne DNS-Name eines Dienstes, der von Cloud DNS aufgelöst werden kann.

    Wenn der HTTP-Endpunkt einen internen DNS-Namen verwendet, erstellt Eventarc automatisch DNS-Peering-Zonen und leitet DNS-Anfragen an die DNS-Zonen im Ziel-VPC-Netzwerk weiter. Mit DNS-Peering können Sie Anfragen für Einträge aus dem Namespace einer bestimmten Zone an ein anderes VPC-Netzwerk senden. Weitere Informationen finden Sie unter Peering-Zonen und Peering-Zone erstellen.

    Beachten Sie, dass Sie für denselben DNS-Namen nicht mehr als einen Trigger erstellen können.

  • NETWORK_ATTACHMENT_ID: Eindeutige Kennung für die Ressource des Netzwerkanhangs. Die Kennzeichnung wird nach dem Erstellen eines Netzwerkanhangs generiert. Weitere Informationen finden Sie unter Netzwerkanhänge erstellen.

    Mit Netzwerkanhängen können Dienstersteller-VPC-Netzwerke Verbindungen zu Nutzer-VPC-Netzwerken initiieren. Eventarc verwendet den Netzwerkanhang, um eine Verbindung zum internen HTTP-Endpunkt herzustellen, der im VPC-Netzwerk des Nutzers gehostet wird, und um Ereignisse zu veröffentlichen.

    Wenn Sie einen Netzwerkanhang erstellen, können Sie eine Verbindung explizit über Producer-Annahme- und -Sperrlisten autorisieren. Eventarc kann die Zulassungsliste eines Netzwerkanhangs mit der entsprechenden Projekt-ID und ohne Eingriff aktualisieren.

  • EVENT_FILTER_TYPE: der vom Anbieter unterstützte Ereignistyp. Weitere Informationen finden Sie in der Liste der unterstützten Ereignistypen von Drittanbietern.

  • CHANNEL_NAME: ein Name für den Kanal. Weitere Informationen finden Sie unter Kanal erstellen und zugehörige Details abrufen.

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID

  • SERVICE_ACCOUNT_NAME: der Name Ihres nutzerverwalteten Dienstkontos.

Hinweise:

  • Das Flag --event-filters="type=EVENT_FILTER_TYPE" ist erforderlich. Wenn kein anderer Ereignisfilter festgelegt ist, werden Ereignisse für alle Ressourcen abgeglichen.
  • EVENT_FILTER_TYPE kann nach dem Erstellen nicht mehr geändert werden. Wenn Sie EVENT_FILTER_TYPE ändern möchten, erstellen Sie einen neuen Trigger und löschen Sie den alten.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Komms in einem --event-filters=[ATTRIBUTE=VALUE,...]-Flag getrennt sind. Sie können das Flag aber auch wiederholen, um weitere Filter hinzuzufügen. Nur Ereignisse, die mit allen Filtern übereinstimmen, werden an das Ziel gesendet. Platzhalter und reguläre Ausdrücke werden nicht unterstützt.
  • Mit dem Flag --service-account wird die E-Mail-Adresse des IAM-Dienstkontos angegeben, das dem Trigger zugeordnet ist.

Beispiel:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=third-party-event-type" \
    --channel=my-channel \
    --project=my-project-ID \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Trigger auflisten

Sie können die Erstellung eines Triggers bestätigen, indem Sie Eventarc-Trigger mit der Google Cloud CLI oder über die Google Cloud Console auflisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite mit den Eventarc-Triggern auf.

    Zur Seite "Trigger"

    Auf dieser Seite werden Ihre Trigger an allen Standorten aufgelistet. Außerdem enthält sie Details wie Namen, Regionen, Ereignisanbieter, Ziele usw.

  2. So filtern Sie die Trigger:

    1. Klicken Sie auf Filter oder das Feld Trigger filtern.
    2. Wählen Sie in der Liste Attribute eine Option aus, nach der die Trigger gefiltert werden sollen.

    Sie können ein einzelnes Attribut auswählen oder den logischen Operator OR verwenden, um weitere Attribute hinzuzufügen.

  3. Klicken Sie zum Sortieren der Trigger neben jeder unterstützten Spaltenüberschrift auf Sortieren.

gcloud

Führen Sie den folgenden Befehl aus, um die Trigger aufzulisten:

gcloud eventarc triggers list --location=-

Dieser Befehl listet Ihre Trigger an allen Standorten auf und enthält Details wie Namen, Typen, Ziele und Status.

Nächste Schritte