I trigger Eventarc ti consentono di instradare gli eventi dai provider di eventi alle destinazioni di destinazione. La visualizzazione, l'aggiornamento e l'eliminazione dei trigger ti aiutano a controllare la distribuzione degli eventi e a mantenere le tue architetture basate su eventi. Puoi eseguire queste attività utilizzando la console Google Cloud , Google Cloud CLI nel terminale o in Cloud Shell oppure l'API Eventarc.
Elenca trigger
Puoi elencare, filtrare e ordinare i trigger in tutte le località.
Console
Nella console Google Cloud , vai alla pagina Trigger di Eventarc.
Vengono elencati tutti i trigger nel progetto per tutte le località e sono inclusi dettagli come il nome del trigger, la regione, il provider di eventi, la destinazione e il tipo di evento.
Per filtrare gli attivatori in base a una proprietà specifica:
- Fai clic sulla casella Filtro.
- Dall'elenco Proprietà, seleziona un'opzione in base alla quale filtrare i trigger, ad esempio Nome o Canale di eventi.
Puoi selezionare una singola proprietà o utilizzare l'operatore logico
ORper aggiungere altre proprietà in base alle quali filtrare.Per ordinare gli attivatori, fai clic su Ordina accanto all'intestazione della colonna appropriata.
Solo alcune colonne sono ordinabili, ad esempio Nome, Regione o Canale di eventi.
gcloud
gcloud eventarc triggers list --location=-
Questo comando elenca il nome, il tipo, la destinazione e lo stato del trigger in tutte le località.
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 ID progetto Google Cloud.LOCATION: la regione in cui vengono creati i trigger, ad esempious-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
]
}
Descrivi un trigger
Puoi descrivere un trigger in una località specifica.
Console
Nella console Google Cloud , vai alla pagina Trigger di Eventarc.
Nell'elenco dei trigger, fai clic su quello di cui vuoi conoscere i dettagli.
La pagina Dettagli trigger mostra i dettagli del trigger, come nome, regione, provider di eventi, tipo di evento, tipo di contenuto dei dati sugli eventi e destinazione.
Se la destinazione dell'evento è Cloud Run, viene indicato se una policy di ripetizione è abilitata o disabilitata.
gcloud
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Sostituisci quanto segue:
TRIGGER: l'ID del trigger o un identificatore completo.LOCATION: la località 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 ID progetto Google Cloud.LOCATION: la regione in cui viene creato il trigger, ad esempious-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 invia 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
Nella console Google Cloud , vai alla pagina Trigger di Eventarc.
Nell'elenco dei trigger, fai clic su quello di cui vuoi conoscere i dettagli.
Nella pagina Dettagli trigger, fai clic su Modifica.
Modifica i campi in base alle necessità e fai clic su Salva.
Tieni presente che non puoi aggiornare i campi non disponibili, come Provider di eventi e Destinazione evento. Per saperne di più sui campi, consulta le istruzioni della console per un provider, 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" \ --max-retry-attempts=1
Sostituisci quanto segue:
TRIGGER: l'ID del trigger o un identificatore completo.LOCATION: la località 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.createpuò essere aggiornato amethodName=storage.objects.delete. Tieni presente che, dopo la creazione di un trigger, il filtro degli eventitypenon può essere modificato. Per un tipo di evento diverso, devi creare un nuovo trigger.NEW_SERVICE_ACCOUNT: l'indirizzo 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 provider di eventi, può essereapplication/jsonoapplication/protobuf.- Facoltativamente, puoi utilizzare il flag
--max-retry-attemptsper specificare un singolo tentativo di invio di un messaggio di evento senza nuovi tentativi. L'unico valore valido è1. Questo flag si applica solo alle destinazioni Cloud Run (incluse Cloud Run Functions). Per cancellare l'impostazione, utilizza il flag--clear-max-retry-attempts. Per saperne di più, consulta Riprova eventi.
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 in 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 completo.LOCATION: la località 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 il trigger.NEW_EVENT_DATA_TYPE: la codifica del payload dell'evento; a seconda del provider di eventi, può essereapplication/jsonoapplication/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 del ricevitore di eventi per un trigger denominato my-gke-trigger in 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 località 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.createpuò essere aggiornato inmethodName=storage.objects.delete. Tieni presente che, dopo la creazione di un trigger, il filtro degli eventitypenon può essere modificato. Per un tipo di evento diverso, devi creare un nuovo trigger.NEW_SERVICE_ACCOUNT: l'indirizzo 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 località in cui viene eseguito il deployment del workflow di destinazione.NEW_EVENT_DATA_TYPE: la codifica del payload dell'evento; a seconda del provider di eventi, può essereapplication/jsonoapplication/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 in 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 sostituzioni seguenti:
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 esempious-central1.SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'indirizzo email del account di servizio Identity and Access Management (IAM) associato al trigger.DESTINATION: facoltativo. Specifica la destinazione a cui deve essere inviato l'evento e contiene un'istanza diDestination. 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 applicare il filtro. È 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ò essereapplication/jsonoapplication/protobuf.RETRY_POLICY: facoltativo. Il numero massimo di tentativi di invio di eventi. Il valore valido è1, che indica un singolo tentativo di invio senza nuovi tentativi e si applica solo alle destinazioni Cloud Run (incluse Cloud Run Functions). Ad esempio:
Per saperne di più, consulta Eventi di ripetizione.{"retryPolicy": {"maxAttempts": 1}}UPDATE_FIELDS: facoltativo. Un elenco di campi separati da virgole 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",
"retryPolicy": RETRY_POLICY
}
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
Nella console Google Cloud , vai alla pagina Trigger di Eventarc.
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 ID progetto Google Cloud.LOCATION: la regione in cui viene creato il trigger, ad esempious-central1.TRIGGER_NAME: il nome del trigger 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.