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

Sie können Trigger mit dem gcloud-Befehlszeilentool oder über die Google Cloud Console erstellen.

Trigger mit gcloud erstellen

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

Neues Pub/Sub-Thema

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"

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_RUN_SERVICE ist der Name des Cloud Run-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.
  • DESTINATION_RUN_REGION ist die Region, in der sich der Cloud Run-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet.

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=VALUEZ,...]-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.
  • Optional können Sie einen relativen Pfad im Cloud Run-Zieldienst angeben, an den die Ereignisse für den Trigger gesendet werden sollen. Verwenden Sie dazu das Flag --destination-run-path.
  • 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-trigger-new \
      --location=us-central1 \
      --destination-run-service=helloworld-events-pubsub \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"

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

Vorhandenes Pub/Sub-Thema

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME

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_RUN_SERVICE ist der Name des Cloud Run-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.
  • DESTINATION_RUN_REGION ist die Region, in der sich der Cloud Run-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet.
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • TOPIC_NAME ist der Name des vorhandenen Pub/Sub-Themas. Das Thema muss sich im selben Projekt wie der Trigger befinden.

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=VALUEZ,...]-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.
  • Optional können Sie einen relativen Pfad im Cloud Run-Zieldienst angeben, an den die Ereignisse für den Trigger gesendet werden sollen. Verwenden Sie dazu das Flag --destination-run-path.
  • 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-trigger-existing \
      --location=us-central1 \
      --destination-run-service=helloworld-events-pubsub \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_NAME}

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

Cloud-Audit-Logs

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-run-service=DESTINATION_RUN_SERVICE \
    --destination-run-region=DESTINATION_RUN_REGION \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=PROJECT_NUMBER-compute@developer.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_RUN_SERVICE ist der Name des Cloud Run-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.
  • DESTINATION_RUN_REGION ist die Region, in der sich der Cloud Run-Zieldienst befindet. Wenn keine Angabe erfolgt, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet.
  • SERVICE_NAME ist die Kennzeichnung des Google Cloud-Dienstes.
  • METHOD_NAME ist die Kennungzeichnung des Vorgangs.
  • PROJECT_NUMBER ist die Nummer Ihres Google Cloud-Projekts.

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=VALUEZ,...]-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.
  • 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 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.
  • Optional können Sie einen relativen Pfad im Cloud Run-Zieldienst angeben, an den die Ereignisse für den Trigger gesendet werden sollen. Verwenden Sie dazu das Flag --destination-run-path.

Beispiel:

  gcloud eventarc triggers create helloworld-trigger \
      --location=us-central1 \
      --destination-run-service=helloworld-events \
      --destination-run-region=us-central1 \
      --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=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

Dadurch wird ein Trigger namens helloworld-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.

Trigger über die Konsole erstellen

In der Cloud Console können Sie Trigger mit Filtern erstellen.

  1. Rufen Sie Cloud Run in der Cloud Console auf.

    Öffnen Sie Cloud Run.

  2. Klicken Sie in der Liste der Dienste auf einen Dienst.

  3. Klicken Sie auf den Tab Trigger und dann auf Trigger hinzufügen.

  4. In der Drop-down-Liste Ereignis auswählen finden Sie alle unterstützten Dienste und Ereignisse:

    Trigger über die Konsole hinzufügen

  5. Nachdem Sie einen Dienst ausgewählt haben, können Sie ein Ereignis auswählen.

    Wählen Sie beispielsweise Cloud Storage > storage.objects.create aus.

    Sie müssen angeben, welches Ereignis gefiltert werden soll. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logs bestimmen.

  6. Wenn Sie das Ereignis Cloud Pub/Sub-Thema auswählen, können Sie ein vorhandenes Thema auswählen oder ein neues Thema für den Trigger erstellen.

    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.
  7. Bei allen anderen Ereignissen können Sie im Feld Vollständiger Ressourcenname optional den vollständigen Pfad zur Ressource angeben.

    Geben Sie beispielsweise projects/_/buckets/eventarc-bucket/objects/random.txt ein.

    Lassen Sie das Feld für dynamisch erstellte Ressourcen leer, deren IDs bei der Erstellung generiert wurden.

  8. Wählen Sie einen Standort aus, von dem Sie Ereignisse erhalten möchten.

  9. Konfigurieren Sie, welches Dienstkonto Ihren Cloud Run-Dienst aufruft, und geben Sie den Service-URL-Pfad an, an den die eingehende Anfrage gesendet werden soll.

    Bei Cloud Run-Zielen wird dieses Dienstkonto verwendet, um beim Aufrufen des Dienstes Identitätstokens zu generieren.

  10. Nachdem Sie den Trigger erstellt haben, können Sie seinen Status prüfen. Dazu muss im Tab Trigger ein Häkchen angezeigt werden.

Nächste Schritte