Attivare 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 fornitore di eventi ai ricevitori di eventi interessati.

Eventarc invia gli eventi al ricevitore di eventi 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.

Viene attivata un'esecuzione del tuo 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 attivi Workflows con eventi di BigQuery utilizzando Cloud Audit Logs.
  • In risposta a eventi diretti, come un aggiornamento a un bucket Cloud Storage o a un modello Firebase Remote Config. Ad esempio, consulta questa guida di avvio rapido in cui attivi Workflows con eventi diretti da Cloud Storage.
  • Per messaggi pubblicati in un argomento Pub/Sub. Ad esempio, consulta questo quickstart in cui attivi Workflows con messaggi Pub/Sub.

Tieni presente quanto segue:

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

  • Le esecuzioni attivate da eventi non vengono ripetute se l'esecuzione del workflow inizia, ma in seguito non va a buon fine. Per ulteriori informazioni, consulta le norme relative al nuovo tentativo di evento.

  • La finestra di deduplica dei flussi di lavoro per garantire l'elaborazione esattamente una volta degli eventi è di 24 ore.

  • Quando utilizzi Workflows come destinazione per un trigger Eventarc, gli eventi più grandi delle dimensioni massime dell'argomento Workflows non attiveranno le esecuzioni del flusso di lavoro. Per ulteriori informazioni, consulta Quote e limiti.

  • Nei progetti protetti da un perimetro di servizio, quando inoltri gli eventi alle destinazioni di Workflows per le quali l'endpoint push Pub/Sub è impostato su un'esecuzione di Workflows, puoi creare nuovi abbonamenti push 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 ulteriori informazioni, consulta Configurare un perimetro di servizio utilizzando i Controlli di servizio VPC.

Creare un trigger utilizzando Google Cloud CLI

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

Per ulteriori informazioni, consulta le istruzioni di gcloud nella sezione "Creare un attivatore" quando crei un attivatore per un provider, un tipo di evento e una destinazione di Workflows specifici.

Creare un trigger utilizzando la console

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

Prima di iniziare

  1. Enable the Eventarc and Pub/Sub APIs.

    Enable the APIs

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

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

      Vai a Service account

    2. Seleziona un progetto, poi 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 abbia l'autorizzazione per attivare il workflow. Nell'elenco Seleziona un ruolo, seleziona Workflow > Avvocato di workflow.

      Se stai sviluppando un'app di produzione, assegna sempre i ruoli meno permissivi possibili. Per saperne di più, 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 rubare l'identità dell'account di servizio.

Configurare l'attivatore

  1. Se non hai ancora un flusso di lavoro da attivare, crealo e eseguine il deployment.

  2. Nella console Google Cloud, vai alla pagina Workflows:

    Vai a Flussi di lavoro

  3. Nella pagina Workflows, seleziona un flusso di lavoro per passare 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.

    Viene visualizzato il riquadro Trigger Eventarc.

  6. Segui le istruzioni per creare un attivatore per un fornitore, un tipo di evento e una Workflows destinazione e consulta le istruzioni della Console nella sezione "Creare un attivatore".

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

    Questo specifica l'account di servizio IAM a cui hai precedentemente concesso il ruolo workflows.invoker in modo che l'account abbia l'autorizzazione per attivare il tuo workflow.

  8. Fai clic su Salva trigger.

    L'attivatore Eventarc è elencato nella scheda Trigger della pagina Dettagli flussi di lavoro.

  9. Se vuoi aggiornare o eliminare l'attivatore, devi modificare il flusso di lavoro:

    1. Nella pagina Dettagli flusso di lavoro, fai clic su Modifica.
    2. Nella sezione Attivatori, individua l'attivatore che vuoi aggiornare o eliminare.
    3. Fai clic su Modifica risorsa o su Elimina risorsa.

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

Creare 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