Trigger für Cloud Run for Anthos erstellen

Ein Eventarc-Trigger deklariert Ihr Interesse an einem bestimmten Ereignis oder einer Reihe von Ereignissen. Sie können das Ereignisrouting konfigurieren. Legen Sie dazu Filter für den Trigger fest, einschließlich der Ereignisquelle und des Cloud Run for Anthos-Zieldienstes.

Anfragen an Ihren Dienst werden durch Nachrichten ausgelöst, die in einem Pub/Sub-Thema veröffentlicht werden. Außerdem werden sie ausgelöst, wenn ein Audit-Log erstellt wird, das den Filterkriterien des Triggers entspricht.

Hinweis

Für das Aufrufen von Google Cloud-Diensten aus Anwendungen, die in Google Kubernetes Engine (GKE) ausgeführt werden, wird Workload Identity empfohlen, da es bessere Sicherheitsmerkmale bietet und einfacher zu verwalten ist. Außerdem ist es erforderlich, Cloud Run for Anthos-Ereignisse mit Eventarc weiterzuleiten. Workload Identity muss in Ihrem GKE-Cluster aktiviert sein.

Weitere Informationen finden Sie unter Workload Identity verwenden.

Erstellung eines Triggers vorbereiten

Für jeden Trigger, der auf einen Cloud Run for Anthos-Dienst abzielt, erstellt Eventarc eine Komponente zur Weiterleitung von Ereignissen. Eventarc benötigt Berechtigungen zum Installieren der Komponente und zum Verwalten von Ressourcen im GKE-Cluster. Bevor Sie einen Eventarc-Trigger für Cloud Run for Anthos-Ziele erstellen, müssen Sie die folgenden Aufgaben ausführen:

Eventarc API aktivieren

Zum Anzeigen und Zuweisen von IAM-Rollen (Identity and Access Management) müssen Sie die Eventarc API für Ihr Projekt aktivieren. Sie können die Eventarc-Rollen in der Cloud Console erst sehen, wenn Sie die API aktiviert haben.

gcloud services enable eventarc.googleapis.com

Dienstkonto erstellen

Erstellen Sie ein nutzerverwaltetes Dienstkonto, falls Sie noch keines haben, und weisen Sie ihm dann die erforderlichen Rollen und Berechtigungen zu, damit Eventarc Ereignisse für Cloud Run for Anthos-Ziele verwalten kann.

  1. Legen Sie die Projektkonfigurationsvariable fest:

    gcloud config set project PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID. Sie finden Ihre Projekt-ID auf der Seite Dashboard der Google Cloud Console.

  2. Erstellen Sie ein Dienstkonto, das beim Erstellen von Triggern verwendet wird:

    TRIGGER_SA=SA_NAME
    gcloud iam service-accounts create $TRIGGER_SA

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

  3. Weisen Sie dem Dienstkonto die entsprechenden Rollen zu:

    Cloud-Audit-Logs

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/eventarc.eventReceiver"
    

    Cloud Storage

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/eventarc.eventReceiver"
    

    Pub/Sub-Thema

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    

    Ersetzen Sie PROJECT_NUMBER durch Ihre Google Cloud-Projektnummer. Sie finden Ihre Projektnummer in der Google Cloud Console auf der Seite Dashboard.

  4. Wenn Sie einen Cloud Storage-Trigger erstellen, weisen Sie dem Cloud Storage-Dienstkonto die Rolle pubsub.publisher zu:

    SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role='roles/pubsub.publisher'
    

GKE-Ziele aktivieren

Damit Eventarc Ressourcen im GKE-Cluster verwalten kann, aktivieren Sie GKE-Ziele und binden Sie das Eventarc-Dienstkonto an die erforderlichen Rollen.

  1. Aktivieren Sie GKE-Ziele für Eventarc:

    gcloud eventarc gke-destinations init
    
  2. Geben Sie bei der Aufforderung, die erforderlichen Rollen zu binden, y ein.

    Die folgenden Rollen sind gebunden:

    • roles/compute.viewer
    • roles/container.developer
    • roles/iam.serviceAccountAdmin

Trigger mit der Google Cloud-Befehlszeile erstellen

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

Cloud-Audit-Logs

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Dabei gilt:

  • TRIGGER ist die ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: ist der Standort des Eventarc-Triggers. Um Leistungs- und Datenstandortsprobleme zu vermeiden, die durch einen globalen Auslöser verursacht werden, sollte dieser mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse erzeugt. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1. Weitere Informationen finden Sie unter Eventarc-Standorte.
  • DESTINATION_GKE_CLUSTER: Der Name des GKE-Clusters, in dem der Ziel-Cloud Run for Anthos-Dienst, der Ereignisse empfängt, ausgeführt wird.
  • DESTINATION_GKE_LOCATION: der Standort, an dem sich der Cloud Run for Anthos-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet. Weitere Informationen finden Sie unter Standorte von Cloud Run for Anthos in Google Cloud.
  • DESTINATION_GKE_NAMESPACE: der Namespace, in dem der Cloud Run for Anthos-Zieldienst ausgeführt wird. Wenn keine Angabe erfolgt, wird der Namespace default verwendet.
  • DESTINATION_GKE_SERVICE: Der Name des Cloud Run for Anthos-Dienstes, der die Ereignisse für den Trigger empfängt. Der Dienst muss sich in derselben Region wie der Trigger befinden, es sei denn, der Speicherort des Triggers ist global. Der Dienst muss sich im selben Projekt wie der Trigger befinden und empfängt Ereignisse als HTTP-POST-Anfragen, die an seinen Root-URL-Pfad (/) gesendet werden, wenn das Ereignis erzeugt wird.
  • (Optional) DESTINATION_GKE_PATH: der relative Pfad, den Sie im Cloud Run for Anthos-Zieldienst angeben, zu dem die Ereignisse für die Trigger gesendet werden soll. Beispiel: /, /route, route, route/subroute.
  • SERVICE_NAME: die Kennzeichnung des Google Cloud-Dienstes.
  • METHOD_NAME: Die Kennzeichnung des Vorgangs.
  • TRIGGER_SERVICE_ACCOUNT: Die E-Mail-Adresse des IAM-Dienstkontos, die dem Trigger zugeordnet ist und dem Sie zuvor bestimmte Rollen zugewiesen haben, die für Eventarc erforderlich sind. Beispiel: $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID ist 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"
  • Eine Liste der von Eventarc unterstützten Audit-Logereignisse, einschließlich der Werte serviceName und methodName, finden Sie unter Von Eventarc unterstützte Ereignisse.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Kommata 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. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logs bestimmen.
  • 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.

Beispiel:

  gcloud eventarc triggers create cal-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.audit.log.v1.written" \
      --event-filters="serviceName=storage.googleapis.com" \
      --event-filters="methodName=storage.buckets.update" \
      --event-filters="resourceName=projects/_/buckets/eventarc-bucket/objects/random.txt" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Dadurch wird ein Trigger namens cal-gke-trigger für Audit-Logs erstellt, die von storage.googleapis.com geschrieben werden, und für den Vorgang, der als storage.buckets.update identifiziert wird.

Cloud Storage

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="bucket=BUCKET" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Dabei gilt:

  • TRIGGER ist die ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: ist der Standort des Eventarc-Triggers. Der Cloud Storage-Bucket muss sich im selben Google Cloud-Projekt und in derselben Region oder Multiregion wie der Eventarc-Trigger befinden. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1. Weitere Informationen finden Sie unter Eventarc-Standorte.
  • DESTINATION_GKE_CLUSTER: Der Name des GKE-Clusters, in dem der Ziel-Cloud Run for Anthos-Dienst, der Ereignisse empfängt, ausgeführt wird.
  • DESTINATION_GKE_LOCATION: der Standort, an dem sich der Cloud Run for Anthos-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet. Weitere Informationen finden Sie unter Standorte von Cloud Run for Anthos in Google Cloud.
  • DESTINATION_GKE_NAMESPACE: der Namespace, in dem der Cloud Run for Anthos-Zieldienst ausgeführt wird. Wenn keine Angabe erfolgt, wird der Namespace default verwendet.
  • DESTINATION_GKE_SERVICE: Der Name des Cloud Run for Anthos-Dienstes, der die Ereignisse für den Trigger empfängt. Der Dienst muss sich in derselben Region wie der Trigger befinden, es sei denn, der Speicherort des Triggers ist global. Der Dienst muss sich im selben Projekt wie der Trigger befinden und empfängt Ereignisse als HTTP-POST-Anfragen, die an seinen Root-URL-Pfad (/) gesendet werden, wenn das Ereignis erzeugt wird.
  • (Optional) DESTINATION_GKE_PATH: der relative Pfad, den Sie im Cloud Run for Anthos-Zieldienst angeben, zu dem die Ereignisse für die Trigger gesendet werden soll. Beispiel: /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE: die ID des Cloud Storage-Ereignisses und kann eine der folgenden sein:
    • google.cloud.storage.object.v1.finalized: Dieses Ereignis wird gesendet, wenn ein neues Objekt im Bucket erstellt wird (oder ein vorhandenes Objekt überschrieben und eine neue Objektgeneration erstellt wird).
    • google.cloud.storage.object.v1.archived: Dieses Ereignis wird gesendet, wenn eine Live-Version eines Objekts archiviert oder gelöscht wird. Dieses Ereignis wird nur für Buckets mit Versionsverwaltung gesendet.
    • google.cloud.storage.object.v1.deleted: Dieses Ereignis wird gesendet, wenn ein Objekt dauerhaft gelöscht wird. Abhängig von der für den Bucket ausgewählten Objektversionierung bedeutet dies:
      • Bei Buckets mit Versionsverwaltung wird das Ereignis nur gesendet, wenn eine Version dauerhaft gelöscht wird (aber nicht, wenn ein Objekt archiviert wird).
      • Bei Buckets ohne Versionsverwaltung wird das Ereignis gesendet, wenn ein Objekt gelöscht oder überschrieben wird.
    • google.cloud.storage.object.v1.metadataUpdated: Dieses Ereignis wird gesendet, wenn die Metadaten eines vorhandenen Objekts geändert werden.
  • BUCKET ist die global eindeutige ID des Cloud Storage-Buckets.
  • TRIGGER_SERVICE_ACCOUNT: Die E-Mail-Adresse des IAM-Dienstkontos, die dem Trigger zugeordnet ist und dem Sie zuvor bestimmte Rollen zugewiesen haben, die für Eventarc erforderlich sind. Beispiel: $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.

Hinweise:

  • Diese Flags sind erforderlich:
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="bucket=BUCKET"
  • Nachdem ein Trigger erstellt wurde, kann EVENT_FILTER_TYPE nicht mehr geändert werden. Erstellen Sie stattdessen einen neuen Trigger und löschen Sie den alten.
  • Ereignisse werden mit Pub/Sub-Benachrichtigungen aus Cloud Storage zugestellt. Wenn zu viele Benachrichtigungen für denselben Bucket eingerichtet werden, kann das Benachrichtigungslimit für den Bucket aufgebraucht werden. Dies wird durch den Fehler Cloud Storage bucket ...: Pub/Sub notification limit reached angegeben. Der Bucket kann bis zu 10 Benachrichtigungskonfigurationen haben, die zum Auslösen von Benachrichtigungen für ein bestimmtes Ereignis festgelegt sind. Weitere Kontingente und Limits finden Sie auf der Seite Cloud Storage-Kontingente und -Limits.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Kommata 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 (Identity and Access Management) angegeben, das mit dem Trigger verknüpft ist.
  • (Optional) DESTINATION_GKE_PATH: der relative Pfad, den Sie im Cloud Run for Anthos-Zieldienst angeben, zu dem die Ereignisse für die Trigger gesendet werden soll. Beispiel: /, /route, route, route/subroute.

Beispiel:

  gcloud eventarc triggers create gcs-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters=type=google.cloud.storage.object.v1.finalized \
      --event-filters="bucket=my-project-bucket" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Dieser Befehl erstellt einen Trigger mit dem Namen gcs-gke-trigger für den Cloud Storage-Bucket my-project-bucket und das als google.cloud.storage.object.v1.finalized identifizierte Ereignis.

Vorhandenes Pub/Sub-Thema

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Dabei gilt:

  • TRIGGER ist die ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: ist der Standort des Eventarc-Triggers. Um Leistungs- und Datenstandortsprobleme zu vermeiden, die durch einen globalen Auslöser verursacht werden, sollte dieser mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse erzeugt. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1. Weitere Informationen finden Sie unter Eventarc-Standorte.
  • DESTINATION_GKE_CLUSTER: Der Name des GKE-Clusters, in dem der Ziel-Cloud Run for Anthos-Dienst, der Ereignisse empfängt, ausgeführt wird.
  • DESTINATION_GKE_LOCATION: der Standort, an dem sich der Cloud Run for Anthos-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet. Weitere Informationen finden Sie unter Standorte von Cloud Run for Anthos in Google Cloud.
  • DESTINATION_GKE_NAMESPACE: der Namespace, in dem der Cloud Run for Anthos-Zieldienst ausgeführt wird. Wenn keine Angabe erfolgt, wird der Namespace default verwendet.
  • DESTINATION_GKE_SERVICE: Der Name des Cloud Run for Anthos-Dienstes, der die Ereignisse für den Trigger empfängt. Der Dienst muss sich in derselben Region wie der Trigger befinden, es sei denn, der Speicherort des Triggers ist global. Der Dienst muss sich im selben Projekt wie der Trigger befinden und empfängt Ereignisse als HTTP-POST-Anfragen, die an seinen Root-URL-Pfad (/) gesendet werden, wenn das Ereignis erzeugt wird.
  • (Optional) DESTINATION_GKE_PATH: der relative Pfad, den Sie im Cloud Run for Anthos-Zieldienst angeben, zu dem die Ereignisse für die Trigger gesendet werden soll. Beispiel: /, /route, route, route/subroute.
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • TOPIC_ID ist die ID des vorhandenen Pub/Sub-Themas. Das Thema muss sich im selben Projekt wie der Trigger befinden.
  • TRIGGER_SERVICE_ACCOUNT: Die E-Mail-Adresse des IAM-Dienstkontos, die dem Trigger zugeordnet ist und dem Sie zuvor bestimmte Rollen zugewiesen haben, die für Eventarc erforderlich sind. Beispiel: $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com

Hinweise:

  • Das Flag --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" ist erforderlich.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Kommata 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.
  • Das Flag --transport-topic wird verwendet, um die ID des vorhandenen Pub/Sub-Themas oder dessen vollständig qualifizierte Kennzeichnung anzugeben.
  • Standardmäßig bleiben für Eventarc erstellte Pub/Sub-Abos unabhängig von ihrem Alter bestehen und laufen nicht ab. Informationen zum Ändern des Inaktivitätszeitraums finden Sie unter Abos verwalten.

Beispiel:

  gcloud eventarc triggers create pubsub-gke-trigger-existing \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_ID} \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Dadurch wird der Trigger pubsub-gke-trigger-existing für das Pub/Sub-Thema mit der Kennzeichnung projects/${PROJECT_ID}/topics/${TOPIC_ID} erstellt.

Neues Pub/Sub-Thema

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Dabei gilt:

  • TRIGGER ist die ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: ist der Standort des Eventarc-Triggers. Um Leistungs- und Datenstandortsprobleme zu vermeiden, die durch einen globalen Auslöser verursacht werden, sollte dieser mit dem Standort des Google Cloud-Dienstes übereinstimmen, der die Ereignisse erzeugt. Alternativ können Sie das Attribut eventarc/location festlegen. Beispiel: gcloud config set eventarc/location us-central1. Weitere Informationen finden Sie unter Eventarc-Standorte.
  • DESTINATION_GKE_CLUSTER: Der Name des GKE-Clusters, in dem der Ziel-Cloud Run for Anthos-Dienst, der Ereignisse empfängt, ausgeführt wird.
  • DESTINATION_GKE_LOCATION: der Standort, an dem sich der Cloud Run for Anthos-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet. Weitere Informationen finden Sie unter Standorte von Cloud Run for Anthos in Google Cloud.
  • DESTINATION_GKE_NAMESPACE: der Namespace, in dem der Cloud Run for Anthos-Zieldienst ausgeführt wird. Wenn keine Angabe erfolgt, wird der Namespace default verwendet.
  • DESTINATION_GKE_SERVICE: Der Name des Cloud Run for Anthos-Dienstes, der die Ereignisse für den Trigger empfängt. Der Dienst muss sich in derselben Region wie der Trigger befinden, es sei denn, der Speicherort des Triggers ist global. Der Dienst muss sich im selben Projekt wie der Trigger befinden und empfängt Ereignisse als HTTP-POST-Anfragen, die an seinen Root-URL-Pfad (/) gesendet werden, wenn das Ereignis erzeugt wird.
  • (Optional) DESTINATION_GKE_PATH: der relative Pfad, den Sie im Cloud Run for Anthos-Zieldienst angeben, zu dem die Ereignisse für die Trigger gesendet werden soll. Beispiel: /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: Die E-Mail-Adresse des IAM-Dienstkontos, die dem Trigger zugeordnet ist und dem Sie zuvor bestimmte Rollen zugewiesen haben, die für Eventarc erforderlich sind. Beispiel: $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.

Hinweise:

  • Das Flag --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" ist erforderlich.
  • Jeder Trigger kann mehrere Ereignisfilter haben, die durch Kommata 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.
  • Standardmäßig bleiben für Eventarc erstellte Pub/Sub-Abos unabhängig von ihrem Alter bestehen und laufen nicht ab. Informationen zum Ändern des Inaktivitätszeitraums finden Sie unter Abos verwalten.

Beispiel:

  gcloud eventarc triggers create pubsub-gke-trigger-new \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Dadurch werden ein neues Pub/Sub-Thema und ein Trigger mit dem Namen pubsub-gke-trigger-new für das Thema erstellt.

Trigger mit der Google Cloud Console erstellen

Sie können einen Trigger über die Cloud Console erstellen. Weitere Informationen finden Sie unter Eventarc-Trigger über die Cloud Console erstellen.

Trigger mit der Google Cloud-Befehlszeile auflisten

Sie können die Erstellung eines Triggers bestätigen, indem Sie Eventarc-Trigger auflisten:

gcloud eventarc triggers list --location=LOCATION

Ersetzen Sie LOCATION durch die ID oder die vollständig qualifizierte Kennzeichnung des Eventarc-Triggerstandorts. Beispiel: us-central1.

Weitere Informationen zum Verwalten von Eventarc-Triggern finden Sie unter Trigger verwalten.

Nächste Schritte

  • Eine Einführung in Eventarc für Cloud Run for Anthos finden Sie in den Kurzanleitungen.