Un trigger Eventarc dichiara il tuo interesse per un determinato evento o per una serie di eventi. Puoi configurare il routing degli eventi specificando i filtri per l'attivatore, inclusa l'origine evento e il flusso di lavoro di destinazione.
Gli eventi vengono pubblicati nel formato CloudEvents tramite una richiesta HTTP. Il servizio Workflows converte l'evento in un oggetto JSON (secondo la 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 dei flussi di lavoro.
Queste istruzioni mostrano come configurare il routing degli eventi in modo che un'esecuzione del tuo workflow venga attivata in risposta a un eventoCertificate Manager diretto. Per maggiori dettagli, consulta l'elenco degli eventi diretti supportati.Prepararsi a creare un trigger
Prima di creare un attivatore 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 Google Cloud progetto.
Abilita le API Eventarc, Eventarc Publishing, Workflows e Workflow Executions.
Se applicabile, abilita l'API relativa agli eventi diretti. Ad esempio, per Certificate Manager gli eventi, abilita l'Certificate Manager API.
Se non ne hai già uno, crea un account di servizio gestito dall'utente, quindi concedi 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 Account di servizio.
Seleziona il progetto.
Inserisci un nome nel campo Nome account di servizio. La console Google Cloud compila il campo ID account di servizio in base a questo nome.
Nel campo Descrizione account di servizio, 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 IAM (Identity and Access Management) richiesti da concedere all'account di servizio. Per ulteriori informazioni, consulta Ruoli e autorizzazioni per i target di flusso di 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 Certificate Manager eventi, attiva
certificatemanager.googleapis.com
.Se non ne hai già uno, crea un account di servizio gestito dall'utente, quindi concedi 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 dell'account di servizio. Deve essere compreso tra 6 e 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ù, consulta Ruoli e autorizzazioni per i target di flusso di lavoro.
Crea un trigger
Puoi creare un attivatore Eventarc con un flusso di lavoro di cui è stato eseguito il deployment come destinatario di eventi utilizzando Google Cloud CLI (gcloud
o Terraform) o tramite la console Google Cloud.
Console
- Nella console Google Cloud, vai alla pagina Eventarc Trigger.
- Fai clic su Crea trigger.
- Digita un Nome trigger.
Si tratta dell'ID dell'attivatore e deve iniziare con una lettera. Può contenere fino a 63 lettere minuscole, numeri o trattini.
- Per Tipo di attivatore, seleziona Origini Google.
- Nell'elenco Provider di eventi, seleziona
Certificate Manager.
Tieni presente che il nome del provider di eventi utilizzato nella documentazioneGoogle Cloud associata potrebbe non avere un prefisso 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 dagli eventi Diretti.
- Per specificare la codifica del payload dell'evento, nell'elenco Tipo di contenuto dei dati dell'evento, seleziona application/json o
application/protobuf.
Tieni presente che un payload evento formattato in JSON è più grande di uno formato in Protobuf. Ciò potrebbe influire sull'affidabilità a seconda della destinazione degli eventi e dei relativi limiti di dimensione. Per ulteriori informazioni, consulta la sezione Problemi noti.
- Nell'elenco Regione, seleziona global (globale).
Per ulteriori informazioni, consulta Località Eventarc.
- Se applicabile al provider di eventi, fai clic su Aggiungi filtro
e specifica quanto segue:
- Nel campo Attributo 1, a seconda dell'evento diretto scelto, seleziona un ID risorsa che possa fungere da filtro per gli eventi.
- Seleziona un operatore:
- Uguale
- Pattern percorso
Per ulteriori informazioni, consulta Informazioni sui pattern di percorso.
- Nel campo Valore attributo 1, a seconda dell'operatore scelto, digita il valore esatto o applica un pattern di percorso.
- Se sono applicabili altri filtri degli attributi, fai clic su Aggiungi filtro e specifica i valori appropriati.
- Seleziona l'account di servizio che chiamerà il servizio o il flusso di lavoro.
In alternativa, puoi creare un nuovo account di servizio.
Specifica l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato all'attivatore e a cui hai precedentemente assegnato ruoli specifici richiesti da Eventarc.
- Nell'elenco Destinazione evento, seleziona Workflows.
- Seleziona un flusso di lavoro.
Questo è il nome del flusso di lavoro a cui devono essere trasmessi gli eventi. Gli eventi per un'esecuzione del flusso di lavoro vengono trasformati e passati al flusso di lavoro come argomenti di runtime.
Per ulteriori informazioni, consulta Creare un attivatore per Workflows.
- Fai clic su Crea.
Una volta creato un attivatore, i filtri delle origini evento non possono essere modificati. Crea invece un nuovo attivatore ed elimina quello precedente. Per saperne di più, consulta Gestire gli attivatori.
- Fai clic su Crea.
gcloud
Puoi creare un trigger eseguendo un gcloud eventarc triggers create
comando insieme a 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 attivatore denominato helloworld-trigger
per
l'evento identificato come google.cloud.certificatemanager.certificate.v1.updated
e
associa gli eventi per gli ID certificate
a partire da my-certificate-
.
Terraform
Puoi creare un trigger per un flusso di lavoro utilizzando Terraform. Per maggiori dettagli, consulta Attivare un flusso di lavoro utilizzando Eventarc e Terraform.