Panoramica di Workflows

Workflows è una piattaforma di orchestrazione completamente gestita che esegue i servizi in un ordine da te definito: un flusso di lavoro. Questi flussi di lavoro possono combinare servizi, tra cui servizi personalizzati ospitati su Cloud Run o Cloud Functions, servizi Google Cloud come Cloud Vision AI e BigQuery e qualsiasi API basata su HTTP.

Integrando Workflows nelle soluzioni, puoi rendere le dipendenze dei servizi esplicite e osservabili end-to-end. Un flusso di lavoro che specifica un processo applicativo, operativo o aziendale fornisce una fonte attendibile o una narrazione canonica per il processo.

Workflows è serverless, con possibilità di scale up secondo necessità e non prevede addebiti in caso di inattività. Poiché un flusso di lavoro non contiene dipendenze di codice o librerie, non richiede patch di sicurezza. Dopo il deployment di un flusso di lavoro, puoi aspettarti che venga eseguito in modo affidabile senza manutenzione. Un flusso di lavoro può mantenere lo stato, riprovare, eseguire il polling o attendere fino a un anno.

Workflows è conforme a questi certificati e standard.

Il seguente diagramma mostra un esempio di utilizzo di Workflows per orchestrare i servizi:

Orchestrazione dei servizi mediante Workflows

Casi d'uso principali

Workflows supporta molti casi d'uso. Ecco alcuni esempi:

Orchestrazione dei servizi Crea soluzioni combinando i servizi: esegui una sequenza di operazioni su più sistemi, in attesa del completamento di tutte le operazioni. Può essere basato su eventi. Ad esempio:
  • Invia i file appena caricati a Cloud Vision AI, poi scrivi i tag in Firestore
  • Chiama una Cloud Function e invia i risultati a un servizio Cloud Run
Job in batch Operare su più elementi: esegui operazioni su un insieme di elementi o dati batch. Spesso vengono programmati. Ad esempio:
  • Inviare email giornaliere ai clienti
  • Prepara ed esegui job di BigQuery o di machine learning
  • Generare report
Processi aziendali Automatizzare i flussi di lavoro line-of-business: codifica i passaggi di un processo aziendale, inclusi condizioni, azioni ed eventi human-in-the-loop. Ad esempio:
  • Monitorare un ordine dalla richiesta all'evasione
  • Automatizzare le richieste di risorse con le approvazioni
Automazione dei processi IT Esecuzione gestita delle operazioni di servizio: crea facilmente sequenze di script per le operazioni dei servizi Google Cloud. Ad esempio:
  • Esegui il provisioning dell'infrastruttura o di nuovi progetti tenant
  • Disattiva le risorse in base a una pianificazione o tramite trigger di eventi

Concetti principali

Un flusso di lavoro è composto da una serie di passaggi descritti utilizzando la sintassi Workflows e può essere scritto in YAML o JSON. Questa è la definizione del flusso di lavoro. Per una spiegazione dettagliata della sintassi di Workflows, consulta il Riferimento per la sintassi.

Dopo aver creato un flusso di lavoro, ne viene eseguito il deployment, in modo da renderlo pronto per l'esecuzione. Scopri come creare e aggiornare un flusso di lavoro nella console Google Cloud o utilizzando Google Cloud CLI. Puoi anche creare il tuo flusso di lavoro utilizzando un IDE o un editor di codice sorgente preferito e configurando il completamento automatico e la convalida della sintassi.

Un'esecuzione è una singola esecuzione della logica contenuta nella definizione di un flusso di lavoro. Un flusso di lavoro non eseguito non genera alcun addebito. Tutte le esecuzioni dei flussi di lavoro sono indipendenti e la rapida scalabilità del prodotto consente un numero elevato di esecuzioni simultanee. Puoi eseguire un flusso di lavoro utilizzando le librerie client, nella console Google Cloud, utilizzando Google Cloud CLI oppure inviando una richiesta POST HTTP all'URL di chiamata del flusso di lavoro utilizzando l'API REST Workflows. Per maggiori dettagli, consulta Esecuzione di un flusso di lavoro.

Funzionalità chiave

Di seguito sono riportate alcune funzionalità chiave di Workflows.

Controllo dell'esecuzione

Procedura
Per creare un flusso di lavoro, devi definire i passaggi richiesti e l'ordine di esecuzione utilizzando la sintassi di Workflows. Ogni flusso di lavoro deve avere almeno un passaggio. Per impostazione predefinita, Workflows tratta i passaggi come se fossero in un elenco ordinato e li esegue uno alla volta fino all'esecuzione di tutti i passaggi. Per maggiori dettagli, consulta la sezione Passaggi.
Condizioni
Puoi utilizzare un blocco switch come meccanismo di selezione che consente al valore di un'espressione di controllare il flusso di esecuzione di un flusso di lavoro. Per maggiori dettagli, consulta la sezione Condizioni.
Iterazione
Puoi utilizzare un loop for per ripetere l'iterazione in una sequenza di numeri o attraverso una raccolta di dati, ad esempio un elenco o una mappa. Per maggiori dettagli, consulta Iterazione.
Passaggi paralleli
Puoi utilizzare un passaggio parallel per definire una parte del flusso di lavoro (un ramo o un loop) che può essere eseguita contemporaneamente. Per i dettagli, consulta Passaggi paralleli.
Flussi di lavoro secondari
Un flusso di lavoro secondario funziona in modo simile a una routine o una funzione in un linguaggio di programmazione, consentendoti di incapsulare un passaggio o un insieme di passaggi che il tuo flusso di lavoro ripeterà più volte. Per maggiori dettagli, consulta Flussi di lavoro secondari.

Attivazione delle esecuzioni

Manuale
Puoi gestire i flussi di lavoro dalla console Google Cloud o dalla riga di comando utilizzando Google Cloud CLI. Il supporto della visualizzazione durante la modifica della sintassi Workflows è disponibile anche tramite la console Google Cloud.
Programmatico
Le librerie client di Cloud per l'API Workflows, o l'API REST, possono essere utilizzate per gestire i flussi di lavoro. Per maggiori dettagli, consulta API e riferimenti di Workflows.
Pianificato
Puoi utilizzare Cloud Scheduler per eseguire un flusso di lavoro in base a una pianificazione specifica, ad esempio ogni lunedì alle 09:00 oppure ogni 15 minuti. Per maggiori dettagli, consulta Pianificare un flusso di lavoro utilizzando Cloud Scheduler.
Argomenti di runtime
È possibile accedere ai dati trasmessi in fase di runtime aggiungendo un campo params al flusso di lavoro principale (in un blocco main). Il blocco main accetta un singolo argomento che è qualsiasi tipo di dati JSON valido. Il campo params assegna un nome alla variabile utilizzata dal flusso di lavoro per archiviare i dati trasmessi. Per maggiori dettagli, consulta Argomenti di runtime.

Collegamento dei servizi

API HTTP
Puoi definire un passaggio del flusso di lavoro che effettui una chiamata HTTP e assegnare la risposta della chiamata a una variabile. Ad esempio, puoi richiamare un servizio Google Cloud come Cloud Functions o Cloud Run tramite una richiesta HTTP. Sono supportate sia le richieste HTTP che HTTPS. Per i dettagli, consulta Effettuare una richiesta HTTP e Richiamare Cloud Functions o Cloud Run.
Puoi richiamare gli endpoint privati on-premise, Compute Engine, Google Kubernetes Engine (GKE) o altri endpoint Google Cloud abilitando Identity-Aware Proxy (IAP). IAP consente di stabilire un livello di autorizzazione centrale per le applicazioni a cui si accede tramite HTTPS, in modo da poter utilizzare un modello di controllo dell'accesso a livello di applicazione invece di dover fare affidamento su firewall a livello di rete. Per maggiori informazioni, consulta Richiamare privati on-prem, Compute Engine, GKE o altri endpoint.
In alternativa, puoi scegliere come target un endpoint privato per le chiamate HTTP dall'esecuzione del flusso di lavoro utilizzando il registro di servizi di Service Directory con Workflows. Creando un endpoint privato all'interno di una rete Virtual Private Cloud (VPC), l'endpoint può essere conforme ai Controlli di servizio VPC. Per maggiori informazioni, consulta Richiamare un endpoint privato conforme ai Controlli di servizio VPC.
Connettori
Workflows pubblica connettori che possono essere utilizzati per la connessione ad altre API Google Cloud all'interno di un flusso di lavoro e per integrare i tuoi flussi di lavoro con questi prodotti Google Cloud. Semplificano i servizi di chiamata perché gestiscono la formattazione delle richieste per conto tuo e forniscono metodi e argomenti in modo che non sia necessario conoscere i dettagli di un'API Google Cloud. Per maggiori dettagli, consulta Informazioni sui connettori.
Libreria standard e variabili di ambiente
La libreria standard di Workflows, le variabili di ambiente integrate e le variabili di ambiente definite dall'utente consentono di creare in modo efficiente argomenti per i servizi e elaborare le risposte.
La libreria standard include moduli e funzioni utilizzate di frequente, come le conversioni dei tipi di dati e dei formati. Non è necessario importare o caricare librerie in un flusso di lavoro: le funzioni di libreria funzionano immediatamente. Per maggiori dettagli, consulta la Panoramica della libreria standard.
Puoi accedere alle informazioni sull'ambiente di un flusso di lavoro (ad esempio la sua posizione o l'identificatore di progetto) utilizzando le variabili di ambiente integrate. Le variabili di ambiente integrate non richiedono alcuna dichiarazione e sono disponibili in ogni esecuzione di flusso di lavoro. Per maggiori dettagli, consulta Variabili di ambiente integrate.
Quando esegui il deployment di un flusso di lavoro, puoi impostare coppie di stringhe chiave e valore arbitrarie come variabili di ambiente definite dall'utente accessibili dal tuo flusso di lavoro in fase di runtime. Ad esempio, puoi creare un flusso di lavoro configurato dinamicamente a seconda dell'ambiente in cui viene eseguito il deployment. Per maggiori dettagli, consulta Utilizzare le variabili di ambiente.

Gestione degli errori

Puoi rendere i tuoi flussi di lavoro resilienti e personalizzarne il comportamento in caso di errore utilizzando la gestione delle eccezioni di Workflows, inclusi i nuovi tentativi automatici di chiamate HTTP con back-off esponenziali, i gestori degli errori personalizzati e altre funzionalità avanzate. Per maggiori dettagli, consulta Errori del flusso di lavoro.

In attesa

I callback consentono alle esecuzioni del flusso di lavoro di attendere che un altro servizio effettui una richiesta all'endpoint di callback; questa richiesta riprende l'esecuzione del flusso di lavoro. Con i callback, puoi segnalare al tuo flusso di lavoro che si è verificato un evento specificato e attendere su quell'evento senza polling. Per maggiori dettagli, consulta Attendere utilizzando i callback.

Puoi mettere in pausa l'esecuzione di un flusso di lavoro aggiungendo un passaggio di sonno alla definizione del flusso di lavoro. Puoi quindi utilizzare sys.sleep per eseguire il polling dei dati in un determinato intervallo. Per maggiori dettagli, vedi Attendere utilizzando il polling.

Autenticazione e controllo degli accessi

Poiché ogni esecuzione di flusso di lavoro richiede una chiamata autenticata, puoi ridurre il rischio di chiamate accidentali o dannose utilizzando Workflows. Puoi anche semplificare le interazioni con altre API Google Cloud utilizzando gli account di servizio basati su IAM e puoi archiviare in modo sicuro chiavi e password per l'autenticazione in API esterne utilizzando il connettore Secret Manager. Per i dettagli, scopri di più su autenticazione e controllo dell'accesso.

Osservabilità

Workflows genera automaticamente log di esecuzione per le esecuzioni dei flussi di lavoro in Cloud Logging. Puoi anche controllare quando i log vengono inviati a Logging durante l'esecuzione di un flusso di lavoro tramite il logging delle chiamate o log personalizzati. Per maggiori dettagli, consulta Inviare i log a Cloud Logging.

Le informazioni sugli audit log sono disponibili tramite Cloud Audit Logs. Per maggiori dettagli, consulta Informazioni sull'audit logging di Workflows.

Puoi recuperare la cronologia di un'esecuzione specificata di un flusso di lavoro sotto forma di elenco di voci dei passaggi. Ogni voce rappresenta un passaggio o un blocco di istruzioni nell'esecuzione del flusso di lavoro. Le voci dei passaggi possono aiutarti a determinare l'origine di un errore o a ottimizzare le prestazioni di un flusso di lavoro.

Esempi di codice

Puoi trovare molti esempi di codice utili di Workflows nella pagina degli esempi.

Passaggi successivi