Trigger verwalten

Sie können Trigger entweder über die Google Cloud Console oder die Google Cloud CLI in Ihrem Terminal oder in Cloud Shell verwalten. Sie können Trigger auch über die Eventarc API verwalten.

Trigger auflisten

Sie können Ihre Trigger an allen Standorten auflisten, filtern und sortieren.

Console

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

    Zur Seite "Trigger"

    Hier werden alle Trigger in Ihrem Projekt für alle Standorte aufgelistet. Außerdem enthalten sie Details wie den Triggernamen, die Region, den Ereignisanbieter, das Ziel und den Ereignistyp.

  2. So filtern Sie die Trigger nach einem bestimmten Attribut:

    1. Klicken Sie auf das Feld Filter.
    2. Wählen Sie in der Liste der Attribute eine Option zum Filtern der Trigger aus, z. B. Name oder Ereigniskanal.

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

  3. Zum Sortieren der Trigger klicken Sie neben der entsprechenden Spaltenüberschrift auf Sortieren.

    Nur einige Spalten können sortiert werden, z. B. Name, Region oder Ereigniskanal.

gcloud

gcloud eventarc triggers list --location=-

Dadurch werden der Name, der Typ, das Ziel und der Status des Triggers an allen Standorten aufgelistet.

REST

Verwenden Sie die Methode projects.locations.triggers.list, um Trigger in einem bestimmten Projekt und an einem bestimmten Standort aufzulisten.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: die Region, in der die Trigger erstellt werden, z. B. us-central1.

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Bei Erfolg enthält der Antworttext Instanzen von Trigger und die Antwort sollte in etwa so aussehen:

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Trigger beschreiben

Sie können einen Trigger an einem bestimmten Standort beschreiben.

Console

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

    Zur Seite "Trigger"

  2. Klicken Sie in der Liste der Trigger auf den Trigger, dessen Details Sie sehen möchten.

Auf der Seite Triggerdetails werden die Details des Triggers angezeigt, z. B. Name, Region, Ereignisanbieter, Ereignistyp, Inhaltstyp des Ereignisses und Ziel.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers.

Dieser Befehl gibt Informationen zum Trigger zurück, die den folgenden ähneln:

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

Verwenden Sie die Methode projects.locations.triggers.get, um einen Trigger in einem bestimmten Projekt und an einem bestimmten Standort zu beschreiben.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • TRIGGER_NAME: der Name des Triggers, den Sie beschreiben möchten.
  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: die Region, in der der Trigger erstellt wird, z. B. us-central1

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Bei Erfolg enthält der Antworttext eine Instanz von Trigger, die in etwa so aussieht:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

Wenn die Bedingung des Triggers auf ein Problem mit dem Pub/Sub-Thema hinweist, finden Sie weitere Informationen unter Trigger liefert keine Ereignisse.

Trigger aktualisieren

Sie können einen Trigger für Cloud Run, Google Kubernetes Engine (GKE) und Workflows aktualisieren. Je nach Ziel können bestimmte Felder aktualisiert werden.

Console

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

    Zur Seite "Trigger"

  2. Klicken Sie in der Liste der Trigger auf den Trigger, dessen Details Sie sehen möchten.

  3. Klicken Sie auf der Seite mit den Triggerdetails auf Bearbeiten.

  4. Bearbeiten Sie die Felder nach Bedarf und klicken Sie auf Speichern.

    Beachten Sie, dass Sie keine nicht verfügbaren Felder wie Ereignisanbieter und Ereignisziel aktualisieren können. Weitere Informationen zu den Feldern finden Sie in der Anleitung in der Console für einen bestimmten Anbieter, einen Ereignistyp und ein Ziel.

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers.

Sie können folgende Angaben aktualisieren:

  • NEW_EVENT_FILTERS: der Filter, der zum Konfigurieren des Ereignisroutings des Triggers verwendet wird; methodName=storage.objects.create kann beispielsweise in methodName=storage.objects.delete aktualisiert werden. Nachdem der Trigger erstellt wurde, kann der Ereignisfilter type nicht mehr geändert werden. Für einen anderen Ereignistyp müssen Sie einen neuen Trigger erstellen.
  • NEW_SERVICE_ACCOUNT: die E-Mail-Adresse des IAM-Dienstkontos (Identity and Access Management), das mit dem Trigger verknüpft ist.
  • NEW_REGION : die Region, in der sich der Cloud Run-Zieldienst befindet.
  • NEW_SERVICE: der Name des Cloud Run-Dienstes, der die Ereignisse für den Trigger empfängt.
  • NEW_PATH: der relative Pfad zum Cloud Run-Zieldienst, an den die Ereignisse für den Trigger gesendet werden sollen.
  • NEW_EVENT_DATA_TYPE: die Codierung der Ereignisnutzlast; Je nach Ereignisanbieter kann dies application/json oder application/protobuf sein.

So aktualisieren Sie beispielsweise das Dienstkonto für einen Trigger:

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Mit diesem Befehl wird das Dienstkonto eines Triggers mit dem Namen my-cloud-run-trigger auf new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com aktualisiert.

GKE

Dieser Abschnitt gilt auch für die öffentlichen Endpunkte privater und öffentlicher Dienste, die in einem GKE-Cluster ausgeführt werden.

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers.

Sie können folgende Angaben aktualisieren:

  • NEW_NAMESPACE : der Namespace, in dem der GKE-Zieldienst ausgeführt wird.
  • NEW_SERVICE: der Name des GKE-Dienstes, der die Ereignisse für den Trigger empfängt.
  • NEW_PATH: der relative Pfad zum GKE-Zieldienst, an den die Ereignisse für den Trigger gesendet werden sollen.
  • NEW_EVENT_DATA_TYPE: die Codierung der Ereignisnutzlast; Je nach Ereignisanbieter kann dies application/json oder application/protobuf sein.

So aktualisieren Sie beispielsweise den Ereignisempfängerdienst für einen Trigger:

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

Mit diesem Befehl wird der Ereignisempfängerdienst für einen Trigger mit dem Namen my-gke-trigger auf einen GKE-Dienst mit dem Namen helloworld-events aktualisiert.

Workflows

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Ersetzen Sie Folgendes:

  • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
  • LOCATION: der Standort des Eventarc-Triggers.

Sie können folgende Angaben aktualisieren:

  • NEW_EVENT_FILTERS: der Filter, der zum Konfigurieren des Ereignisroutings des Triggers verwendet wird; methodName=storage.objects.create kann beispielsweise in methodName=storage.objects.delete aktualisiert werden. Nachdem der Trigger erstellt wurde, kann der Ereignisfilter type nicht mehr geändert werden. Für einen anderen Ereignistyp müssen Sie einen neuen Trigger erstellen.
  • NEW_SERVICE_ACCOUNT: die E-Mail-Adresse des IAM-Dienstkontos (Identity and Access Management), das mit dem Trigger verknüpft ist.
  • NEW_DESTINATION_WORKFLOW: die ID des bereitgestellten Workflows, der die Ereignisse vom Trigger empfängt.
  • NEW_DESTINATION_WORKFLOW_LOCATION: der Standort, an dem der Zielworkflow bereitgestellt wird.
  • NEW_EVENT_DATA_TYPE: die Codierung der Ereignisnutzlast; Je nach Ereignisanbieter kann dies application/json oder application/protobuf sein.

So aktualisieren Sie beispielsweise das Dienstkonto für einen Trigger:

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Mit diesem Befehl wird das Dienstkonto eines Triggers mit dem Namen my-workflows-trigger auf new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com aktualisiert.

REST

Verwenden Sie zum Aktualisieren eines vorhandenen Triggers die Methode projects.locations.triggers.patch und optional den Abfrageparameter updateMask, um eine Liste der zu aktualisierenden Felder anzugeben.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • TRIGGER_NAME: der Name des Triggers, den Sie aktualisieren möchten.
  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: die Region, in der der Trigger erstellt wird, z. B. us-central1
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: Optional. : die E-Mail-Adresse des IAM-Dienstkontos (Identity and Access Management), das mit dem Trigger verknüpft ist.
  • DESTINATION: Optional. Gibt das Ziel an, an das das Ereignis gesendet werden soll, und enthält eine Instanz von Destination. Beispiel:

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    oder

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER: Optional. Die Ereignisattribute, nach denen gefiltert werden soll. Nur das Aktualisieren des Methodentyps für Cloud-Audit-Log-Trigger wird unterstützt. Beispiel:

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    Beachten Sie, dass Sie keine Methodentypen für GKE-Ziele aktualisieren können.

  • CONTENT_TYPE: Optional. Codierung der Ereignisnutzlast; Je nach Ereignisanbieter kann dies application/json oder application/protobuf sein.
  • UPDATE_FIELDS: Optional. Eine durch Kommas getrennte Liste von Feldern, die aktualisiert werden sollen. Wenn nicht angegeben, werden alle angegebenen Felder in der Anfrage aktualisiert. Beispiel: serviceAccount,destination

JSON-Text der Anfrage:

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters" EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von Operation.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Wenn "done" den Wert false hat, wird der Vorgang noch ausgeführt.

Trigger löschen

Sie können einen Trigger löschen.

Console

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

    Zur Seite "Trigger"

  2. Wählen Sie den Trigger aus und klicken Sie auf Löschen.

gcloud

gcloud eventarc triggers delete TRIGGER

Ersetzen Sie TRIGGER durch die ID des Triggers oder eine vollständig qualifizierte ID.

REST

Verwenden Sie die Methode projects.locations.triggers.delete, um einen Trigger mit einem bestimmten Namen zu löschen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: die Region, in der der Trigger erstellt wird, z. B. us-central1
  • TRIGGER_NAME: der Name des Triggers, den Sie löschen möchten.

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Wenn "done" den Wert false hat, wird der Vorgang noch ausgeführt.

Nächste Schritte