Workflows è una piattaforma di orchestrazione completamente gestita che esegue i servizi in un ordine definito da te: un workflow. Questi workflow possono combinare servizi,inclusi servizi personalizzati ospitati su Cloud Run o Cloud Run Functions, Google Cloud servizi come Vision AI e BigQuery e qualsiasi API basata su HTTP.
Incorporando Workflows nelle soluzioni, puoi rendere esplicite le dipendenze dei servizi e osservabili end-to-end. Un workflow che specifica un'applicazione, un processo operativo o aziendale fornisce una fonte di verità o una narrativa canonica per il processo.
Workflows è serverless, si adatta in base alle esigenze e non vengono addebitati costi durante il periodo di inattività. Poiché un workflow non contiene dipendenze di codice o librerie, non richiede patch di sicurezza. Dopo aver eseguito il deployment di un workflow, puoi aspettarti che venga eseguito in modo affidabile senza manutenzione. Un workflow può mantenere lo stato, riprovare, eseguire il polling 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 supporta molti casi d'uso. Ecco alcuni esempi:
| Orchestrazione dei servizi | Crea soluzioni combinando i servizi : esegui una sequenza di
operazioni su più sistemi, attendendo il completamento di tutte le operazioni.
Può essere basato su eventi. Ad esempio:
|
| Job batch | _Esegui operazioni su più elementi_ : esegui operazioni su un insieme di elementi o
dati batch. Spesso pianificati. Ad esempio:
|
| Processi aziendali | Automatizza i workflow line-of-business: codifica i passaggi di un
processo aziendale, incluse condizioni, azioni ed eventi human-in-the-loop. Ad esempio:
|
| Automazione dei processi IT | _Esecuzione gestita delle operazioni di servizio_ : crea facilmente script di sequenze
di Google Cloud operazioni di servizio. Ad esempio:
|
Concetti principali
Un workflow è costituito da una serie di passaggi descritti utilizzando la sintassi di Workflows e può essere scritto in formato YAML o JSON. Questa è la definizione del workflow. Per una spiegazione dettagliata della sintassi di Workflows, consulta la pagina di riferimento per la sintassi.
Dopo la creazione, un workflow viene sottoposto a deployment, rendendolo pronto per l'esecuzione. Scopri come creare e aggiornare un workflow nella Google Cloud console o utilizzando Google Cloud CLI. Puoi anche creare il workflow 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 workflow. Un workflow che non è stato eseguito non genera addebiti. Tutte le esecuzioni di un workflow sono indipendenti e la scalabilità rapida del prodotto consente un numero elevato di esecuzioni simultanee. Puoi eseguire un workflow utilizzando le
librerie client, nella Google Cloud console, utilizzando Google Cloud CLI,
o inviando una richiesta HTTP POST all'URL di chiamata del workflow utilizzando
l'API REST Workflows. Per maggiori dettagli, vedi
Eseguire un workflow.
Aree geografiche
Workflows è un servizio regionale e i workflow sono risorse regionali soggette al vincolo delle località delle risorse. Puoi utilizzare le policy relative alle località delle risorse per controllare la residenza dei dati.
Tieni presente che quando un workflow viene sottoposto a deployment in una determinata regione, viene eseguito solo in quella regione; tuttavia, se il workflow effettua richieste HTTP o utilizza connettori, la chiamata HTTP potrebbe non provenire dalla stessa regione.
Funzionalità chiave
Di seguito sono riportate alcune funzionalità chiave di Workflows.
Controllo dell'esecuzione
- Procedura
- Per creare un workflow, 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 finché non sono stati eseguiti tutti. Per maggiori dettagli, vedi Passaggi.
- Condizioni
- Puoi utilizzare un blocco
switchcome meccanismo di selezione che consente al valore di un'espressione di controllare il flusso di esecuzione di un workflow. Per maggiori dettagli, vedi Condizioni. - Iterazione
- Puoi utilizzare un loop
forper eseguire l'iterazione su una sequenza di numeri o su una raccolta di dati, ad esempio un elenco o una mappa. Per maggiori dettagli, vedi Iterazione. - Passaggi paralleli
- Puoi utilizzare un passaggio
parallelper definire una parte del workflow (un ramo o un loop) che può essere eseguita contemporaneamente. Per maggiori dettagli, vedi Passaggi paralleli. - Workflow secondari
- Un workflow secondario 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 workflow ripeterà più volte. Per maggiori dettagli, vedi Workflow secondari.
Attivazione delle esecuzioni
- Manuale
- Puoi gestire i workflow dalla Google Cloud console o dalla riga di comando utilizzando Google Cloud CLI. Il supporto per la visualizzazione durante la modifica della sintassi di Workflows è disponibile anche tramite la Google Cloud console.
- Programmatico
- Le librerie client Cloud per l'API Workflows o l'API REST possono essere utilizzate per gestire i workflow. Per maggiori dettagli, vedi API e riferimenti di Workflows.
- Pianificato
- Puoi utilizzare Cloud Scheduler per eseguire un workflow in base a una pianificazione specifica, ad esempio ogni lunedì alle 9:00 o ogni 15 minuti. Per maggiori dettagli, vedi Pianificare un workflow utilizzando Cloud Scheduler.
- Argomenti di runtime
- È possibile accedere ai dati passati in fase di runtime aggiungendo un campo
paramsal workflow principale (inserito in un bloccomain). Il bloccomainaccetta un singolo argomento che è un tipo di dati JSON valido. Il campoparamsassegna un nome alla variabile utilizzata dal workflow per archiviare i dati che hai inserito. Per maggiori dettagli, vedi Argomenti di runtime.
Connessione dei servizi
- API HTTP
- Puoi definire un passaggio del workflow che effettua una chiamata HTTP e assegnare la risposta della chiamata a una variabile. Ad esempio, puoi richiamare un Google Cloud servizio come Cloud Run Functions o Cloud Run tramite una richiesta HTTP. Sono supportate sia le richieste HTTP che HTTPS. Per maggiori dettagli, vedi Effettuare una richiesta HTTP e Richiamare Cloud Run Functions o Cloud Run.
- Puoi scegliere come target un endpoint privato per le chiamate HTTP dall'esecuzione del workflow utilizzando il registro dei servizi di Service Directory con Workflows. In questo modo puoi fornire al workflow un nome di servizio Service Directory. L'esecuzione del workflow utilizza le informazioni recuperate dal registro dei servizi per inviare la richiesta HTTP appropriata, senza uscire in una rete pubblica. Per saperne di più, consulta Richiamare un endpoint privato utilizzando il registro dei servizi di Service Directory.
- In alternativa, puoi richiamare un endpoint protetto da 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 a livello di applicazione invece di dover fare affidamento su firewall a livello di rete. Per saperne di più, consulta Richiamare un endpoint protetto da IAP.
- Quando crei un endpoint privato all'interno di una rete Virtual Private Cloud (VPC), puoi configurare un perimetro di servizio e utilizzare i Controlli di servizio VPC con Workflows per mitigare i rischi di esfiltrazione dei dati.
- Connettori
- Workflows pubblica connettori che possono essere utilizzati per connettersi ad altre API Google Cloud all'interno di un workflow e per integrare i workflow con questi Google Cloud prodotti. Semplificano la chiamata ai servizi perché gestiscono la formattazione delle richieste e forniscono metodi e argomenti in modo che non sia necessario conoscere i dettagli di un' Google Cloud API. 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 consentono di creare in modo efficiente gli argomenti per i servizi ed elaborare le risposte.
- La libreria standard include moduli e funzioni utilizzate di frequente, ad esempio per le conversioni di tipo e formato dei dati. Non è necessario importare o caricare librerie in un workflow: le funzioni della libreria funzionano immediatamente. Per maggiori dettagli, vedi la Panoramica della libreria standard.
- Puoi accedere alle informazioni sull'ambiente di un workflow (ad esempio la località o l'identificatore del progetto) utilizzando le variabili di ambiente integrate. Le variabili di ambiente integrate non richiedono alcuna dichiarazione e sono disponibili in ogni esecuzione del workflow. Per maggiori dettagli, vedi Variabili di ambiente integrate.
- Quando esegui il deployment di un workflow, puoi impostare coppie di stringhe chiave e valore arbitrarie come variabili di ambiente definite dall'utente accessibili dal workflow in fase di runtime. Ad esempio, puoi creare un workflow configurato dinamicamente a seconda dell'ambiente in cui viene sottoposto a deployment. Per maggiori dettagli, vedi Utilizzare le variabili di ambiente.
Gestione degli errori
Puoi rendere i workflow 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, i gestori di errori personalizzati e altre funzionalità avanzate. Per maggiori dettagli, vedi Errori del workflow.
In attesa
I callback consentono alle esecuzioni del workflow di attendere che un altro servizio effettui una richiesta all'endpoint di callback; questa richiesta riprende l'esecuzione del workflow. Con i callback, puoi segnalare al workflow che si è verificato un evento specificato e attendere l'evento senza eseguire il polling. Per maggiori dettagli, vedi Attendere utilizzando i callback.
Puoi mettere in pausa l'esecuzione di un workflow aggiungendo un passaggio di sospensione alla definizione del workflow. 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 dell'accesso
Poiché ogni esecuzione del workflow richiede una chiamata autenticata, puoi mitigare il rischio di chiamate accidentali o dannose utilizzando Workflows. Puoi anche semplificare le interazioni con altre Google Cloud API utilizzando i service account basati su IAM, e archiviare in modo sicuro chiavi e password per l'autenticazione alle API esterne utilizzando il connettore Secret Manager. Per maggiori dettagli, scopri di più sull'autenticazione e sul controllo degli accessi.
Osservabilità
Workflows genera automaticamente i log di esecuzione per le esecuzioni del workflow in Cloud Logging. Puoi anche controllare quando i log vengono inviati a Logging durante l'esecuzione di un workflow tramite la registrazione delle chiamate o i log personalizzati. Per maggiori dettagli, vedi Inviare log a Cloud Logging.
Le informazioni sui log di controllo sono disponibili tramite Cloud Audit Logs. Per maggiori dettagli, consulta le informazioni sui log di controllo per i workflow e le esecuzioni dei workflow.
Puoi recuperare la cronologia di un'esecuzione del workflow specificato come elenco di voci di passaggio. Ogni voce rappresenta un passaggio o un blocco di istruzioni nell'esecuzione del workflow. Le voci dei passaggi possono aiutarti a determinare l'origine di un errore o a ottimizzare le prestazioni di un workflow.
Esempi di codice
Puoi trovare molti esempi di codice Workflows utili nella pagina degli esempi.
Passaggi successivi
Inizia a utilizzare Workflows dalla Google Cloud console o utilizzando la gcloud CLI.
Scopri di più su creazione e aggiornamento dei workflow.
Scopri come controllare l'ordine di esecuzione dei passaggi di un workflow.