Gestione dei trigger

Puoi gestire i trigger utilizzando la console Google Cloud o Google Cloud CLI nel terminale o in Cloud Shell. Puoi anche gestire i trigger tramite l'API Eventarc.

Elenca trigger

Puoi elencare, filtrare e ordinare i trigger in tutte le posizioni.

Console

  1. Nella console Google Cloud , vai alla pagina Trigger di Eventarc.

    Vai ai trigger

    Elenca tutti i trigger nel tuo progetto per tutte le località e include dettagli come il nome del trigger, la regione, il fornitore di eventi, la destinazione e il tipo di evento.

  2. Per filtrare i trigger in base a una proprietà specifica:

    1. Fai clic sulla casella Filtro.
    2. Nell'elenco Proprietà, seleziona un'opzione per filtrare i trigger, ad esempio Nome o Canale evento.

    Puoi selezionare una singola proprietà o utilizzare l'operatore logico OR per aggiungere altre proprietà in base alle quali filtrare.

  3. Per ordinare i trigger, fai clic su Ordina accanto all'intestazione di colonna appropriata.

    Solo alcune colonne sono ordinabili, ad esempio Nome, Regione o Canale evento.

gcloud

gcloud eventarc triggers list --location=-

Questo comando elenca il nome, il tipo, la destinazione e lo stato del trigger in tutte le posizioni.

REST

Per elencare i trigger in un progetto e una località specifici, utilizza il metodo projects.locations.triggers.list.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • LOCATION: la regione in cui vengono creati i trigger, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene istanze di Trigger e la risposta dovrebbe essere simile alla seguente:

{
  "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
  ]
}

Descrivere un trigger

Puoi descrivere un trigger in una posizione specifica.

Console

  1. Nella console Google Cloud , vai alla pagina Trigger di Eventarc.

    Vai ai trigger

  2. Nell'elenco dei trigger, fai clic su quello di cui vuoi conoscere i dettagli.

La pagina Dettagli trigger mostra i dettagli del trigger, ad esempio nome, regione, fornitore di eventi, tipo di evento, tipo di contenuti dei dati sugli eventi e destinazione.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc.

Questo comando restituisce informazioni sul trigger simili alle seguenti:

  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

Per descrivere un trigger in un progetto e una località specifici, utilizza il metodo projects.locations.triggers.get.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • TRIGGER_NAME: il nome del trigger che vuoi descrivere.
  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • LOCATION: la regione in cui viene creato il trigger, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Trigger simile alla seguente:

{
  "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"
    }
  }
}

Se la condizione del trigger indica un problema con l'argomento Pub/Sub, consulta Il trigger non genera eventi.

Aggiorna un trigger

Puoi aggiornare un trigger per le destinazioni Cloud Run, Google Kubernetes Engine (GKE) e Workflows. A seconda della destinazione, è possibile aggiornare campi specifici.

Console

  1. Nella console Google Cloud , vai alla pagina Trigger di Eventarc.

    Vai ai trigger

  2. Nell'elenco dei trigger, fai clic su quello di cui vuoi conoscere i dettagli.

  3. Nella pagina Dettagli trigger, fai clic su Modifica.

  4. Modifica i campi in base alle necessità e fai clic su Salva.

    Tieni presente che non puoi aggiornare i campi non disponibili, come Fornitore di eventi e Destinazione evento. Per saperne di più sui campi, consulta le istruzioni di Console per un fornitore, un tipo di evento e una destinazione specifici.

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"

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc.

Puoi aggiornare uno dei seguenti elementi:

  • NEW_EVENT_FILTERS: il filtro utilizzato per configurare il routing degli eventi dell'attivatore; ad esempio, methodName=storage.objects.create può essere aggiornato a methodName=storage.objects.delete. Tieni presente che, dopo la creazione di un trigger, il filtro eventi type non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo trigger.
  • NEW_SERVICE_ACCOUNT: l'email del account di servizio Identity and Access Management (IAM) associato al trigger.
  • NEW_REGION: la regione in cui si trova il servizio Cloud Run di destinazione.
  • NEW_SERVICE: il nome del servizio Cloud Run che riceve gli eventi per il trigger.
  • NEW_PATH: il percorso relativo nel servizio Cloud Run di destinazione a cui devono essere inviati gli eventi per il trigger.
  • NEW_EVENT_DATA_TYPE: la codifica del payload dell'evento; a seconda del fornitore dell'evento, può essere application/json o application/protobuf.

Ad esempio, per aggiornare il account di servizio per un trigger:

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

Questo comando aggiorna il account di servizio di un trigger denominato my-cloud-run-trigger a new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Tieni presente che questa sezione si applica anche agli endpoint pubblici di servizi privati e pubblici in esecuzione in un cluster GKE.

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"

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc.

Puoi aggiornare uno dei seguenti elementi:

  • NEW_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione.
  • NEW_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger.
  • NEW_PATH: il percorso relativo nel servizio GKE di destinazione a cui devono essere inviati gli eventi per l'attivatore.
  • NEW_EVENT_DATA_TYPE: la codifica del payload dell'evento; a seconda del fornitore dell'evento, può essere application/json o application/protobuf.

Ad esempio, per aggiornare il servizio di ricezione di eventi per un trigger:

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

Questo comando aggiorna il servizio di ricezione eventi per un trigger denominato my-gke-trigger a un servizio GKE denominato helloworld-events.

Workflow

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"

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc.

Puoi aggiornare uno dei seguenti elementi:

  • NEW_EVENT_FILTERS: il filtro utilizzato per configurare il routing degli eventi del trigger; ad esempio, methodName=storage.objects.create può essere aggiornato a methodName=storage.objects.delete. Tieni presente che, dopo la creazione di un trigger, il filtro eventi type non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo trigger.
  • NEW_SERVICE_ACCOUNT: l'email del account di servizio Identity and Access Management (IAM) associato al trigger.
  • NEW_DESTINATION_WORKFLOW: l'ID del workflow di cui è stato eseguito il deployment che riceve gli eventi dal trigger.
  • NEW_DESTINATION_WORKFLOW_LOCATION: la posizione in cui viene eseguito il deployment del workflow di destinazione.
  • NEW_EVENT_DATA_TYPE: la codifica del payload dell'evento; a seconda del fornitore dell'evento, può essere application/json o application/protobuf.

Ad esempio, per aggiornare il account di servizio per un trigger:

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

Questo comando aggiorna il account di servizio di un trigger denominato my-workflows-trigger a new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Per aggiornare un trigger esistente, utilizza il metodo projects.locations.triggers.patch e, facoltativamente, utilizza il parametro di query updateMask per specificare un elenco di campi da aggiornare.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • TRIGGER_NAME: il nome del trigger che vuoi aggiornare.
  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • LOCATION: la regione in cui viene creato il trigger, ad esempio us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'email del account di servizio del servizio Identity and Access Management (IAM) associato al trigger.
  • DESTINATION: facoltativo. Specifica il target a cui deve essere inviato l'evento e contiene un'istanza di Destination. Ad esempio:

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

    o

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

  • EVENT_FILTER: facoltativo. Gli attributi dell'evento in base ai quali filtrare. È supportato solo l'aggiornamento del tipo di metodo per i trigger di Cloud Audit Logs. Ad esempio:

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

    Tieni presente che non puoi aggiornare i tipi di metodo per le destinazioni GKE.

  • CONTENT_TYPE: facoltativo. La codifica del payload dell'evento; a seconda del provider di eventi, può essere application/json o application/protobuf.
  • UPDATE_FIELDS: facoltativo. Un elenco separato da virgole dei campi da aggiornare. Se non viene fornito, vengono aggiornati tutti i campi forniti nella richiesta. Ad esempio: serviceAccount,destination

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation appena creata:

{
  "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
}

Se il valore di "done" è false, l'operazione è ancora in corso.

Elimina un trigger

Puoi eliminare un trigger.

Console

  1. Nella console Google Cloud , vai alla pagina Trigger di Eventarc.

    Vai ai trigger

  2. Seleziona l'attivatore e fai clic su Elimina.

gcloud

gcloud eventarc triggers delete TRIGGER

Sostituisci TRIGGER con l'ID del trigger o un identificatore completo.

REST

Per eliminare un trigger con un nome specificato, utilizza il metodo projects.locations.triggers.delete.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • LOCATION: la regione in cui viene creato il trigger, ad esempio us-central1.
  • TRIGGER_NAME: il nome del trigger da eliminare.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di 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
}

Se il valore di "done" è false, l'operazione è ancora in corso.

Passaggi successivi