Un trigger Eventarc dichiara il tuo interesse per un determinato evento o insieme di eventi. Puoi configurare il routing degli eventi specificando i filtri per il trigger, inclusa l'origine evento, e il flusso di lavoro target.
Gli eventi vengono distribuiti in formato CloudEvents tramite una richiesta HTTP. Il servizio Workflows converte l'evento in un oggetto JSON (in base alla specifica CloudEvents) e lo passa all'esecuzione del flusso di lavoro come argomento di runtime del flusso di lavoro. Assicurati che le dimensioni dell'evento non superino i 512 KB. Gli eventi più grandi della dimensione massima degli argomenti di Workflows non attiveranno le esecuzioni del workflow.
Queste istruzioni mostrano come configurare il routing degli eventi in modo che l'esecuzione del workflow venga attivata in risposta a un evento Certificate Manager diretto. Per maggiori dettagli, consulta l'elenco degli eventi diretti supportati.Prepararsi a creare un trigger
Prima di creare un trigger Eventarc per un flusso di lavoro di destinazione, completa le seguenti attività.
Console
Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
Abilita le API Eventarc, Eventarc Publishing, Workflows e Workflow Executions.
Se applicabile, abilita l'API relativa agli eventi diretti. Ad esempio, per gli eventi Certificate Manager , abilita l'APICertificate Manager .
Se non ne hai già uno, crea un account di servizio gestito dall'utente, poi concedigli i ruoli e le autorizzazioni necessari affinché Eventarc possa gestire gli eventi per un flusso di lavoro di destinazione.
Nella console Google Cloud , vai alla pagina Service Accounts.
Seleziona il progetto.
Nel campo Nome service account, inserisci un nome. La console Google Cloud compila il campo ID service account in base a questo nome.
Nel campo Descrizione service account, inserisci una descrizione. Ad esempio,
Service account for event trigger
.Fai clic su Crea e continua.
Per fornire l'accesso appropriato, nell'elenco Seleziona un ruolo, seleziona i ruoli Identity and Access Management (IAM) richiesti da concedere al service account. Per saperne di più, vedi Ruoli e autorizzazioni per le Workflows lavoro.
Per altri ruoli, fai clic su
Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.Fai clic su Continua.
Per completare la creazione dell'account, fai clic su Fine.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Abilita le API Eventarc, Eventarc Publishing, Workflows e Workflow Executions:
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
Se applicabile, abilita l'API relativa agli eventi diretti. Ad esempio, per gli Certificate Manager eventi, attiva
certificatemanager.googleapis.com
.Se non ne hai già uno, crea un account di servizio gestito dall'utente, poi concedigli i ruoli e le autorizzazioni necessari affinché Eventarc possa gestire gli eventi per un flusso di lavoro di destinazione.
Crea l'account di servizio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAME
con il nome del service account. Deve contenere da 6 a 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.Concedi i ruoli o le autorizzazioni IAM (Identity and Access Management) richiesti. Per saperne di più, vedi Ruoli e autorizzazioni per Workflows lavoro.
Crea un trigger
Puoi creare un trigger Eventarc con un flusso di lavoro di cui è stato eseguito il deployment come
ricevitore di eventi utilizzando Google Cloud CLI (gcloud
o Terraform) o
tramite la console Google Cloud .
Console
- Nella Google Cloud console, vai alla pagina Trigger di Eventarc.
- Fai clic su Crea trigger.
- Digita un Nome trigger.
Questo è l'ID del trigger e deve iniziare con una lettera. Può contenere fino a 63 lettere minuscole, numeri o trattini.
- Per Tipo di trigger, seleziona Origini Google.
- Nell'elenco Provider di eventi, seleziona
Certificate Manager.
Tieni presente che il nome del fornitore di eventi utilizzato nella Google Cloud documentazione associata potrebbe non avere un prefisso di Cloud o Google Cloud. Ad esempio, nella console, Memorystore for Redis è indicato come Google Cloud Memorystore for Redis.
- Nell'elenco Tipo di evento, seleziona un tipo di evento tra quelli Diretti.
- Per specificare la codifica del payload dell'evento, nell'elenco Tipo di contenuti dei dati evento, seleziona application/json o application/protobuf.
Tieni presente che un payload evento formattato in JSON è più grande di uno formattato in Protobuf. Ciò potrebbe influire sull'affidabilità a seconda della destinazione dell'evento e dei suoi limiti di dimensione. Per saperne di più, vedi Problemi noti.
- Nell'elenco Regione, seleziona global (globale).
Per saperne di più, consulta Località Eventarc.
- Se applicabile al fornitore di eventi, fai clic su Aggiungi filtro
e specifica quanto segue:
- Nel campo Attributo 1, a seconda dell'evento diretto che hai scelto, seleziona un ID risorsa che può fungere da filtro per gli eventi.
- Seleziona un operatore:
- Uguale
- Pattern del percorso
Per saperne di più, vedi Informazioni sui pattern di percorso.
- Nel campo Valore attributo 1, a seconda dell'operatore che hai scelto, digita il valore esatto o applica un pattern del percorso.
- Se sono applicabili altri filtri degli attributi, fai clic su Aggiungi filtro e specifica i valori appropriati.
- Seleziona l'account di servizio che richiamerà il tuo servizio
o flusso di lavoro.
In alternativa, puoi creare un nuovo account di servizio.
Specifica l'indirizzo email del account di servizio Identity and Access Management (IAM) associato al trigger e a cui hai precedentemente concesso ruoli specifici richiesti da Eventarc.
- Nell'elenco Destinazione evento, seleziona Workflows.
- Seleziona un workflow.
Questo è il nome del flusso di lavoro a cui trasferire gli eventi. Gli eventi per l'esecuzione di un flusso di lavoro vengono trasformati e passati al flusso di lavoro come argomenti runtime.
Per saperne di più, consulta Creare un trigger per Workflows.
- (Facoltativo) Per aggiungere un'etichetta, puoi fare clic su Che cosa sono le etichette? Aggiungi etichetta. Le etichette sono coppie chiave/valore che ti aiutano a organizzare le tue risorseGoogle Cloud . Per saperne di più, vedi
- Fai clic su Crea.
Una volta creato un trigger, i filtri dell'origine eventi non possono essere modificati. Crea invece un nuovo trigger ed elimina quello precedente. Per saperne di più, consulta Gestire i trigger.
- Fai clic su Crea.
gcloud
Puoi creare un trigger eseguendo un comando gcloud eventarc triggers create
insieme ai flag obbligatori e facoltativi.
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"
Replace the following:
TRIGGER
: the ID of the trigger or a fully qualified identifier.-
DESTINATION_WORKFLOW
: the ID of the deployed workflow that receives the events from the trigger. The workflow can be in any of the Workflows supported locations and does not need to be in the same location as the trigger. However, the workflow must be in the same project as the trigger. -
DESTINATION_WORKFLOW_LOCATION
(optional): the location in which the destination workflow is deployed. If not specified, it is assumed that the workflow is in the same location as the trigger. EVENT_FILTER_TYPE
: the identifier of the event. An event is generated when an API call for the method succeeds. For long-running operations, the event is only generated at the end of the operation, and only if the action is performed successfully. For a list of supported event types, see Google event types supported by Eventarc.
COLLECTION_ID
(optional): the resource component that can act as an event filter, and is one of the following:certificate
certificateissuanceconfig
certificatemap
certificatemapentry
dnsauthorization
-
RESOURCE_ID
: the identifier of the resource used as the filtering value for the associated collection. For more information, see Resource ID. -
PATH_PATTERN
: the path pattern to apply when filtering for the resource -
EVENT_DATA_CONTENT_TYPE
: (optional) the encoding of the event payload. This can beapplication/json
orapplication/protobuf
. The default encoding isapplication/json
.Note that an event payload formatted in JSON is larger than one formatted in Protobuf. This might impact reliability depending on your event destination and its limits on event size. For more information, see Known issues.
-
SERVICE_ACCOUNT_NAME
: the name of the IAM service account you created to which you granted specific roles required by Workflows. -
PROJECT_ID
: your Google Cloud project ID
Notes:
- The
--location
flag must beglobal
. For more information, see Eventarc locations. - The
--event-filters="type=EVENT_FILTER_TYPE"
flag is required. If no other event filter is set, events for all resources are matched. EVENT_FILTER_TYPE
cannot be changed after creation. To changeEVENT_FILTER_TYPE
, create a new trigger and delete the old one.- Each trigger can have multiple event filters, comma delimited in one
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag, or you can repeat the flag to add more filters. Only events that match all the filters are sent to the destination. Wildcards and regular expressions are not supported; however, when using the--event-filters-path-pattern
flag, you can define a resource path pattern. - The
--service-account
flag is used to specify the Identity and Access Management (IAM) service account email associated with the trigger.
Example:
gcloud eventarc triggers create helloworld-trigger \ --location=global \ --destination-workflow=my-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.certificatemanager.certificate.v1.updated" \ --event-filters-path-pattern="certificate=my-certificate-*" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Questo comando crea un trigger denominato helloworld-trigger
per
l'evento identificato come google.cloud.certificatemanager.certificate.v1.updated
e
corrisponde agli eventi per gli ID certificate
che iniziano con my-certificate-
.
Terraform
Puoi creare un trigger per un flusso di lavoro utilizzando Terraform. Per i dettagli, vedi Attivare un flusso di lavoro utilizzando Eventarc e Terraform.