Attivazione di un flusso di lavoro con eventi o messaggi Pub/Sub

Puoi utilizzare un trigger Eventarc per eseguire un flusso di lavoro come risultato di un evento o di un insieme di eventi. Gli eventi vengono instradati da un provider di eventi ai ricevitori di eventi interessati.

Eventarc fornisce eventi al ricevitore di eventi nel formato CloudEvents tramite una richiesta HTTP. Il servizio Workflows converte l'evento in un oggetto JSON (in base alla specifica di CloudEvents) e lo passa all'esecuzione del flusso di lavoro come argomento di runtime del flusso di lavoro.

Viene attivata un'esecuzione del flusso di lavoro:

  • Quando viene creato un log di controllo che corrisponde ai criteri di filtro dell'attivatore. Ad esempio, consulta questa guida rapida in cui attivare Workflows con eventi da BigQuery utilizzando Cloud Audit Logs.
  • In risposta a eventi diretti come l'aggiornamento di un bucket Cloud Storage o di un modello Firebase Remote Config. Ad esempio, consulta questa guida rapida in cui attivare Workflows con eventi diretti da Cloud Storage.
  • Tramite i messaggi pubblicati in un argomento Pub/Sub. Ad esempio, consulta questa guida rapida in cui attivare Workflows con messaggi Pub/Sub.

Tieni presente quanto segue:

  • Gli eventi vengono considerati pubblicati non appena inizia l'esecuzione del flusso di lavoro, mentre l'esecuzione effettiva avviene in modo asincrono nei servizi Workflows.

  • Le esecuzioni attivate da eventi non vengono tentate nuovamente se l'esecuzione del flusso di lavoro inizia, ma in seguito non va a buon fine. Per maggiori informazioni, consulta il criterio relativo ai nuovi eventi.

  • La finestra di deduplicazione di Workflows, per garantire che l'elaborazione "exactly-once" degli eventi sia di 24 ore.

  • Quando utilizzi Workflows come destinazione per un trigger Eventarc, gli eventi superiori alla dimensione massima dell'argomento Workflows non attiveranno le esecuzioni del flusso di lavoro. Per saperne di più, consulta Quote e limiti.

  • Nei progetti protetti da un perimetro di servizio, quando si instradano eventi a destinazioni di Workflows per cui l'endpoint push di Pub/Sub è impostato su un'esecuzione Workflows, è possibile creare nuove sottoscrizioni push di Pub/Sub solo tramite Eventarc. Tieni presente che l'account di servizio utilizzato per l'autenticazione push per l'endpoint di Workflows deve essere incluso nel perimetro di servizio. Per maggiori informazioni, consulta Configurare un perimetro di servizio utilizzando i Controlli di servizio VPC.

Crea un trigger utilizzando Google Cloud CLI

Puoi creare un trigger eseguendo un comando gcloud eventarc triggers create insieme ai flag obbligatori e facoltativi.

Per maggiori informazioni, consulta le istruzioni gcloud nella sezione "Crea un trigger" durante la creazione di un trigger per un provider, un tipo di evento e una destinazione Workflows specifici.

Crea un trigger utilizzando la console

I passaggi seguenti mostrano come creare un trigger nella pagina Flussi di lavoro della console Google Cloud.

Prima di iniziare

  1. Abilita le API Eventarc and Pub/Sub.

    Abilita le API

  2. Crea un account di servizio in modo che Eventarc possa effettuare richieste all'API Workflows:

    1. Nella console Google Cloud, vai alla pagina Account di servizio.

      Vai ad Account di servizio

    2. Seleziona un progetto e fai clic su Crea account di servizio.

    3. Nel campo Nome account di servizio, inserisci un nome compreso tra 6 e 30 caratteri.

      Può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.

    4. Fai clic su Crea e continua.

    5. Concedi al nuovo account di servizio il ruolo workflows.invoker in modo che l'account disponga dell'autorizzazione per attivare il flusso di lavoro. Nell'elenco Seleziona un ruolo, seleziona Flussi di lavoro > Invoker di flussi di lavoro.

      Se stai sviluppando un'app di produzione, concedi sempre i ruoli meno permissivi possibili. Per maggiori informazioni, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

    6. Fai clic su Fine.

  3. Per consentire all'entità che eseguirà i comandi Eventarc di agire come account di servizio Identity and Access Management (IAM), concedi un ruolo che consenta all'entità di impersonare l'account di servizio.

Configura il trigger

  1. Se non hai ancora un flusso di lavoro da attivare, creane uno ed eseguine il deployment.

  2. Nella console Google Cloud, vai alla pagina Flussi di lavoro:

    Vai a Workflows

  3. Nella pagina Workflows, seleziona un flusso di lavoro per andare alla relativa pagina dei dettagli.

  4. Nella pagina Dettagli flusso di lavoro, fai clic su Modifica.

  5. Nella pagina Modifica flusso di lavoro, seleziona Aggiungi nuovo trigger > Eventarc.

    Si apre il riquadro Trigger Eventarc.

  6. Segui le istruzioni per creare un trigger per un provider, un tipo di evento e unaWorkflows destinazione specifici e consulta le istruzioni della console nella sezione "Creare un trigger".

  7. Seleziona l'Account di servizio che richiama il flusso di lavoro.

    Consente di specificare l'account di servizio IAM a cui hai concesso in precedenza il ruolo workflows.invoker, in modo che l'account disponga dell'autorizzazione per attivare il flusso di lavoro.

  8. Fai clic su Salva trigger.

    Il trigger Eventarc è elencato nella scheda Trigger della pagina Dettagli dei flussi di lavoro.

  9. Se vuoi aggiornare o eliminare il trigger, devi modificare il flusso di lavoro:

    1. Nella pagina Dettagli flusso di lavoro, fai clic su Modifica.
    2. Nella sezione Trigger, trova il trigger che vuoi aggiornare o eliminare.
    3. Fai clic su Modifica risorsa o Elimina risorsa.

L'esecuzione del flusso di lavoro ora viene attivata dagli eventi che corrispondono ai criteri di filtro del trigger.

Crea un trigger utilizzando 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.

Passaggi successivi