Workflows è una piattaforma di orchestrazione completamente gestita che esegue i servizi in un ordine definito da te: un flusso di lavoro. Questi flussi di lavoro possono combinare servizi, inclusi servizi personalizzati ospitati su Cloud Run o funzioni Cloud Run, servizi Google Cloud come Cloud Vision AI e BigQuery e qualsiasi API basata su HTTP.
Se incorpori Workflows nelle soluzioni, puoi rendere esplicite e osservabili end-to-end le dipendenze dei servizi. Un flusso di lavoro che specifica un processo aziendale, operativo o di applicazione fornisce una fonte attendibile o una narrazione canonica per il processo.
Workflows sono serverless, si estendono in base alle esigenze e non vengono addebitati costi mentre sono inattivi. Poiché un flusso di lavoro non contiene dipendenze di codice o librerie, non richiede patch di sicurezza. Una volta implementato un flusso di lavoro, puoi aspettarti che venga eseguito in modo affidabile senza manutenzione. Un workflow può mantenere stato, riprovare, eseguire poll o attendere fino a un anno.
Workflows è conforme a queste certificazioni e standard.
Il seguente diagramma mostra un esempio di utilizzo di Workflows per orchestrare i servizi:
Casi d'uso principali
Workflows supportano molti casi d'uso. Ecco alcuni esempi:
Orchestrazione dei servizi | Crea soluzioni combinando i servizi: esegui una sequenza di operazioni su più sistemi, aspettando il completamento di tutte le operazioni.
Può essere basata su eventi. Ad esempio:
|
Job in batch | Esegui operazioni su più elementi: esegui operazioni su un insieme di elementi o su
dati batch. Spesso programmate. Ad esempio:
|
Processi aziendali | Automatizza i flussi di lavoro line-of-business: codifica i passaggi di un processo aziendale, tra cui condizioni, azioni ed eventi con intervento umano. Ad esempio:
|
Automazione dei processi IT | Esecuzione gestita delle operazioni di servizio: crea facilmente script di sequenze
di operazioni di servizi Google Cloud. Ad esempio:
|
Concetti principali
Un flusso di lavoro è costituito da una serie di passaggi descritti utilizzando la sintassi di 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 alla sintassi.
Dopo aver creato un flusso di lavoro, viene implementato, il che lo rende 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 che non è stato eseguito non genera alcun addebito. Tutte le esecuzioni del flusso di lavoro sono indipendenti e la scalabilità rapida del prodotto consente un elevato numero di esecuzioni simultanee. Puoi eseguire un flusso di lavoro utilizzando le librerie client, nella console Google Cloud, con Google Cloud CLI o inviando una richiesta HTTP POST
all'URL di chiamata del flusso di lavoro utilizzando l'API REST di Workflows. Per maggiori dettagli, vedi
Eseguire un flusso di lavoro.
Aree geografiche
Workflows sono un servizio regionale e i workflow sono risorse regionali soggette al vincolo delle località delle risorse. Puoi utilizzare i criteri sulla località delle risorse per controllare la residenza dei dati.
Tieni presente che quando un flusso di lavoro viene implementato in una determinata regione, viene eseguito solo in quella regione. Tuttavia, se il flusso di lavoro effettua richieste HTTP o utilizza connettori, la chiamata HTTP potrebbe non essere stata eseguita nella stessa regione.
Funzionalità chiave
Di seguito sono riportate alcune funzionalità chiave di Workflows.
Controllo dell'esecuzione
- Passaggi
- Per creare un flusso di lavoro, definisci i passaggi e l'ordine di esecuzione richiesti utilizzando la sintassi di Workflows. Ogni workflow 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 a quando non sono stati eseguiti tutti. 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 Condizioni. - Iterazione
- Puoi utilizzare un ciclo
for
per eseguire l'iterazione su una sequenza di numeri o su 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 in modo simultaneo. Per maggiori dettagli, vedi Passaggi paralleli. - Flussi di lavoro secondari
- Un sottoflusso di lavoro funziona in modo simile a una routine o a una funzione in un linguaggio di programmazione, consentendoti di incapsulare un passaggio o un insieme di passaggi che il flusso di lavoro ripeterà più volte. Per maggiori dettagli, consulta Subworkflow.
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 di Workflows è disponibile anche tramite la console Google Cloud.
- Programmatico
- Le librerie client 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 determinata programmazione, ad esempio ogni lunedì alle 9:00 o ogni 15 minuti. Per maggiori dettagli, consulta Pianificare un flusso di lavoro utilizzando Cloud Scheduler.
- Argomenti di runtime
- Puoi accedere ai dati passati in fase di esecuzione aggiungendo un campo
params
al flusso di lavoro principale (in un bloccomain
). Il bloccomain
accetta un singolo argomento, ovvero qualsiasi tipo di dati JSON valido. Il campoparams
nomina la variabile utilizzata dal flusso di lavoro per memorizzare i dati che hai passato. Per maggiori dettagli, consulta Argomenti di runtime.
Servizi di collegamento
- API HTTP
- Puoi definire un passaggio del flusso di lavoro che esegue una chiamata HTTP e assegnare la risposta della chiamata a una variabile. Ad esempio, puoi richiamare un servizio Google Cloud come le funzioni Cloud Run o Cloud Run tramite una richiesta HTTP. Sono supportate sia le richieste HTTP sia quelle HTTPS. Per maggiori dettagli, consulta Eseguire una richiesta HTTP e Chiamare funzioni Cloud Run o Cloud Run.
- Puoi richiamare endpoint privati on-premise, Compute Engine, Google Kubernetes Engine (GKE) o altri endpoint Google Cloud attivando Identity-Aware Proxy (IAP). IAP consente di definire un livello di autorizzazione centrale per le applicazioni accessibili tramite HTTPS, che ti permette di utilizzare un modello di controllo dell'accesso dell'accesso a livello di applicazione invece di dover fare affidamento su firewall a livello di rete. Per ulteriori informazioni, consulta Eseguire l'invocazione di endpoint privati on-premise, Compute Engine, GKE o di altro tipo.
- In alternativa, puoi scegliere come target un endpoint privato per le chiamate HTTP dall'esecuzione del flusso di lavoro utilizzando il registry dei servizi di Service Directory con Workflows. Creando un endpoint privato all'interno di una rete Virtual Private Cloud (VPC), l'endpoint può essere conforme a Controlli di servizio VPC. Per ulteriori informazioni, consulta Eseguire l'invocazione di un endpoint privato conforme a VPC Service Controls.
- Connettori
- Workflows pubblica connettori che possono essere utilizzati per connettersi ad altre API Google Cloud all'interno di un flusso di lavoro e per integrare i flussi di lavoro con questi prodotti Google Cloud. Semplificano le chiamate ai servizi perché gestiscono la formattazione delle richieste e forniscono metodi e argomenti in modo da non dover conoscere i dettagli di un'API Google Cloud. Per maggiori dettagli, vedi 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 ti consentono di creare in modo efficiente gli argomenti per i servizi e di elaborare le risposte.
- La libreria standard include moduli e funzioni di uso frequente, ad esempio per le conversioni di tipo di dati e formato. Non è necessario importare o caricare le librerie in un flusso di lavoro: le funzioni delle librerie 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 posizione o l'identificatore del progetto) utilizzando le variabili di ambiente predefinite. Le variabili di ambiente predefinite non richiedono dichiarazione e sono disponibili in ogni esecuzione del flusso di lavoro. Per maggiori dettagli, vedi Variabili di ambiente predefinite.
- 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 flusso di lavoro in fase di runtime. Ad esempio, puoi creare un flusso di lavoro configurato dinamicamente in base all'ambiente in cui viene eseguito il deployment. Per maggiori dettagli, consulta la sezione 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 tentativi automatici di chiamata HTTP con backoff esponenziali, gestori di errori personalizzati e altre funzionalità avanzate. Per maggiori dettagli, consulta Errori di flusso di lavoro.
In attesa
I richiami consentono alle esecuzioni dei flussi di lavoro di attendere che un altro servizio invii una richiesta all'endpoint di callback, che riprende l'esecuzione del flusso di lavoro. Con i callback, puoi segnalare al tuo flusso di lavoro che si è verificato un evento specifico e attendere questo evento senza eseguire polling. Per maggiori dettagli, consulta Attendere utilizzando i callback.
Puoi mettere in pausa l'esecuzione di un flusso di lavoro aggiungendo un passaggio di sospensione 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 account di servizio basati su IAM, e puoi archiviare in modo sicuro chiavi e password per l'autenticazione alle API external utilizzando il connettore Secret Manager. Per maggiori dettagli, scopri di più sull'autenticazione e sul controllo dell'accesso.
Osservabilità
Workflows generano automaticamente i 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 i log personalizzati. Per maggiori dettagli, consulta Inviare log a Cloud Logging.
Le informazioni sugli audit log sono disponibili tramite Cloud Audit Logs. Per maggiori dettagli, consulta le informazioni sui log di controllo per le workflow e le esecuzioni delle workflow.
Puoi recuperare la cronologia di un'esecuzione del flusso di lavoro specificata 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 la fonte di un errore o a ottimizzare il rendimento di un flusso di lavoro.
Esempi di codice
Puoi trovare molti esempi di codice di Workflows utili nella pagina degli esempi.
Passaggi successivi
Inizia a utilizzare Workflows dalla console Google Cloud o dall'interfaccia a riga di comando gcloud.
Scopri di più su come creare e aggiornare i workflow.
Scopri come controllare l'ordine di esecuzione dei passaggi di un flusso di lavoro.