Panoramica di Workflows

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 quelli personalizzati ospitati su Cloud Run o Cloud Run Functions, Google Cloud servizi come Cloud Vision AI e BigQuery e qualsiasi API basata su HTTP.

Incorporando 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, si adatta in base alle necessità e non vengono addebitati costi durante l'inattività. Poiché un flusso di lavoro non contiene dipendenze di codice o librerie, non richiede patch di sicurezza. Una volta implementato 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:

Orchestrazione dei servizi utilizzando Workflows

Principali casi d'uso

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:
  • Invia i file appena caricati a Cloud Vision AI, quindi scrivi i tag in Firestore
  • Chiama una funzione Cloud Run 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 pianificati. Ad esempio:
  • Inviare email giornaliere ai clienti
  • Preparare ed eseguire job BigQuery o di machine learning
  • Generare report
Processi aziendali Automatizza i flussi di lavoro line-of-business: codifica i passaggi di un processo aziendale, inclusi condizioni, azioni ed eventi che richiedono l'intervento umano. 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 operazioni di servizio. Google Cloud Ad esempio:
  • Esegui il provisioning di nuovi progetti tenant o infrastruttura
  • Ridurre le risorse in base a una pianificazione o tramite trigger di eventi

Concetti principali

Un workflow è 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 i riferimenti alla sintassi.

Una volta creato, il workflow 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 addebiti. Tutte le esecuzioni del flusso di lavoro sono indipendenti e la scalabilità rapida 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 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 è 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 deployment 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 avere origine dalla stessa regione.

Funzionalità chiave

Di seguito sono riportate alcune funzionalità chiave di Workflows.

Controllo dell'esecuzione

Passaggi
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 trattano i passaggi come se fossero in un elenco ordinato e li esegue uno alla volta finché non sono stati eseguiti tutti. Per i dettagli, consulta 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 workflow. Per maggiori dettagli, vedi Condizioni.
Iterazione
Puoi utilizzare un ciclo for per scorrere una sequenza di numeri o una raccolta di dati, ad esempio un elenco o una mappa. Per maggiori dettagli, vedi Iterazione.
Passi paralleli
Puoi utilizzare un passaggio parallel per definire una parte del flusso di lavoro (un ramo o un ciclo) che può essere eseguita contemporaneamente. Per maggiori dettagli, vedi Passaggi paralleli.
Flussi di lavoro secondari
Un flusso di lavoro 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 flusso di lavoro ripeterà più volte. Per maggiori dettagli, vedi 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 workflow. Per maggiori dettagli, consulta 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 Pianificazione di un flusso di lavoro utilizzando Cloud Scheduler.
Argomenti di runtime
È possibile accedere ai dati passati in fase di runtime aggiungendo un campo params al flusso di lavoro principale (inserito in un blocco main). Il blocco main accetta un singolo argomento che è un tipo di dati JSON valido. Il campo params indica la variabile che il flusso di lavoro utilizza per memorizzare i dati che inserisci. Per maggiori dettagli, vedi Argomenti di runtime.

Connessione dei servizi

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 Cloud Run Functions o Cloud Run tramite una richiesta HTTP. Sono supportate sia le richieste HTTP che HTTPS. Per maggiori dettagli, vedi Eseguire 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 flusso di lavoro utilizzando il registro dei servizi di Service Directory con Workflows. In questo modo, puoi fornire al flusso di lavoro un nome del servizio Service Directory. L'esecuzione del flusso di lavoro utilizza le informazioni recuperate dal service registry per inviare la richiesta HTTP appropriata, senza uscire su una rete pubblica. Per ulteriori informazioni, vedi Richiamare un endpoint privato utilizzando il registro dei servizi di Service Directory.
In alternativa, puoi richiamare endpoint privati on-premise, Compute Engine, Google Kubernetes Engine (GKE) o altri Google Cloud abilitando Identity-Aware Proxy (IAP). IAP consente di definire un livello di autorizzazione centrale per le applicazioni accessibili tramite HTTPS, in modo da poter 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 saperne di più, consulta Richiamare un endpoint privato on-premise, Compute Engine, GKE o altro abilitando IAP.
Quando crei un endpoint privato all'interno di una rete VPC (Virtual Private Cloud), puoi configurare un perimetro di servizio e utilizzare i Controlli di servizio VPC con Workflows per ridurre 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 flusso di lavoro e per integrare i tuoi flussi di lavoro con questi prodotti Google Cloud . Semplificano la chiamata dei servizi perché gestiscono la formattazione delle richieste per te e forniscono metodi e argomenti in modo che tu non debba 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 argomenti per i servizi ed elaborare le risposte.
La libreria standard include moduli e funzioni di uso frequente, ad esempio per le conversioni di tipi e formati di dati. Non è necessario importare o caricare librerie in un flusso di lavoro: le funzioni della 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 posizione o l'identificatore del progetto) utilizzando le variabili di ambiente integrate. Le variabili di ambiente integrate non richiedono dichiarazioni e sono disponibili in ogni esecuzione del flusso di lavoro. 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 tuo workflow 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, vedi 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, vedi Errori del flusso di lavoro.

In attesa

I callback consentono alle esecuzioni del flusso di lavoro di attendere che un altro servizio invii 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 l'evento senza eseguire il polling. Per maggiori dettagli, vedi Attesa tramite callback.

Puoi sospendere 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 Attesa tramite polling.

Autenticazione e controllo degli accessi

Poiché ogni esecuzione del 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 service account basati su IAM e puoi 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 dell'accesso.

Osservabilità

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

Le informazioni di audit logging sono disponibili tramite Cloud Audit Logs. Per maggiori dettagli, vedi le informazioni sui log di controllo per i flussi di lavoro e le esecuzioni dei flussi di lavoro.

Puoi recuperare la cronologia di un'esecuzione del flusso di lavoro specificata come 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 di Workflows utili nella pagina degli esempi.

Passaggi successivi