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 Google Cloud console, vai alla pagina Trigger 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 provider 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 delle 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 della 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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • 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 Google Cloud console, vai alla pagina Trigger 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 evento e destinazione.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Sostituisci quanto segue:

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

Questo comando restituisce informazioni sul trigger simili a quelle 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 determinato progetto e una determinata posizione, utilizza il metodo projects.locations.triggers.get.

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

  • TRIGGER_NAME: il nome dell'attivatore che vuoi descrivere.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • 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 Google Cloud console, vai alla pagina Trigger 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, ad esempio Fornitore dell'evento e Destinazione dell'evento. Per ulteriori informazioni 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 completamente qualificato.
  • 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 l'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 dei 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 completamente qualificato.
  • 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 completamente qualificato.
  • 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_DESTINATION_WORKFLOW: l'ID del workflow di cui è stato eseguito il deployment e che riceve gli eventi dall'attivatore.
  • NEW_DESTINATION_WORKFLOW_LOCATION: la posizione in cui viene implementato il flusso di lavoro 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 l'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, il parametro di query updateMask per specificare un elenco di campi da aggiornare.

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

  • TRIGGER_NAME: il nome del trigger che vuoi aggiornare.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene creato il trigger, ad esempio us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'email dell'account di 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 appena creata di 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
}

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

Elimina un trigger

Puoi eliminare un trigger.

Console

  1. Nella Google Cloud console, vai alla pagina Trigger 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 attivatore con un nome specificato, utilizza il metodo projects.locations.triggers.delete.

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

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene creato il trigger, ad esempio us-central1.
  • TRIGGER_NAME: il nome dell'attivatore che vuoi 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