Panoramica di Workflows

Workflows è una piattaforma di orchestrazione completamente gestita che esegue in un ordine da te definito: 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.

Incorporando Workflows nelle soluzioni, puoi rendere i servizi di dipendenze esplicite ed osservabili end-to-end. Un flusso di lavoro che specifica una domanda, un processo operativo o aziendale fornisce una fonte di attendibilità o narrativa canonica del processo.

Workflows è serverless, con lo scale up in base alle esigenze e senza costi in caso di inattività. 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 flusso di lavoro può mantenere lo 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 dei flussi di lavoro per orchestrare i servizi:

Orchestrazione dei servizi utilizzando Workflows

casi d'uso principali

I flussi di lavoro supportano 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, quindi scrivi 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. che in batch. Spesso pianificate. Ad esempio:
  • Inviare email giornaliere ai clienti
  • Prepara ed esegui 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, tra cui condizioni, azioni ed eventi con intervento umano. Ad esempio:
  • Monitorare un ordine dalla richiesta all'evasione
  • Automatizza le richieste di risorse con le approvazioni
Automazione dei processi IT Esecuzione gestita delle operazioni di servizio: crea facilmente script di sequenze di operazioni di servizi Google Cloud. Ad esempio:
  • Esegui il provisioning di nuovi progetti o dell'infrastruttura del tenant
  • Riduci le risorse in base a una pianificazione o tramite attivatori di eventi

Concetti principali

Un flusso di lavoro consiste in una serie di passaggi descritti utilizzando Sintassi di Workflows e può essere scritta in formato 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, questo 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 editor di codice sorgente o IDE preferito impostare il completamento automatico e la convalida della sintassi.

Un'esecuzione è una singola esecuzione della logica contenuta nella definizione di Kubernetes. 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.

Funzionalità chiave

Di seguito sono riportate alcune funzionalità chiave di Workflows.

Controllo dell'esecuzione

Passaggi
Per creare un flusso di lavoro, devi definire i passaggi necessari 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 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 il valore di un'espressione per controllare il flusso dell'esecuzione di un flusso di lavoro. Per maggiori dettagli, vedi Condizioni.
Iterazione
Puoi utilizzare un ciclo for per ripetere una sequenza di numeri o attraverso una raccolta di dati come un elenco o una mappa. Per maggiori dettagli, vedi 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, vedi 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. È supportata la visualizzazione durante la modifica La sintassi di Workflows è disponibile anche tramite la console Google Cloud.
Programmatico
Le librerie client di Cloud per l'API Workflows o API REST, può essere utilizzata per gestire i flussi di lavoro. Per maggiori dettagli, vedi 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, vedi 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 blocco main). Il blocco main accetta un singolo argomento qualsiasi tipo di dati JSON valido. Il campo params nomina la variabile utilizzata dal flusso di lavoro per memorizzare i dati che hai passato. Per maggiori dettagli, vedi Argomenti di runtime.

Connessione di 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 le funzioni Cloud Run o Cloud Run tramite una richiesta HTTP. Sono supportate sia le richieste HTTP che HTTPS. Per maggiori dettagli, vedi Effettuare una richiesta HTTP e Richiama le funzioni di 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 ti consente di definire una di autorizzazione per le applicazioni a cui si accede tramite HTTPS, in modo da poter utilizzare di controllo dell'accesso a livello di applicazione invece di basarsi sul modello firewall. Per ulteriori informazioni, vedi Richiama privato on-prem, Compute Engine, GKE o un altro endpoint.
In alternativa, puoi scegliere come target un endpoint privato per le chiamate HTTP dal tuo dell'esecuzione del flusso di lavoro utilizzando il registro dei servizi di Service Directory Workflows. Creando un endpoint privato all'interno di un a una rete VPC (Virtual Private Cloud), l'endpoint può essere conforme ai Controlli di servizio VPC. Per ulteriori informazioni, vedi Richiama un endpoint privato conforme a Controlli di servizio VPC.
Connettori
Workflows pubblica connettori che possono essere utilizzati per la connessione a ad altre API Google Cloud all'interno di un flusso di lavoro e per integrare flussi di lavoro con quei 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 utilizzate di frequente, ad esempio: per le conversioni dei tipi di dati e dei formati. Non è necessario importare o caricare le librerie in un flusso di lavoro: le funzioni della libreria funzionano immediatamente. Per maggiori dettagli, consulta 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. Ambiente integrato variabili non richiedono alcuna 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-valore arbitrarie come: variabili di ambiente definite dall'utente accessibili dal tuo flusso di lavoro all'indirizzo 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 rilanci 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 un evento specifico si è verificato e attendere l'evento senza eseguire il polling. Per maggiori dettagli, consulta Attendere utilizzando i callback.

Puoi sospendere l'esecuzione di un flusso di lavoro aggiungendo un passaggio di sonno al tuo definizione del flusso di lavoro. Puoi quindi utilizzare sys.sleep per eseguire un sondaggio per i dati su una a 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 archiviare in modo sicuro chiavi e password per l'autenticazione le API utilizzando Connettore Secret Manager. Per maggiori dettagli, scopri di più sull'autenticazione e sul controllo dell'accesso.

Osservabilità

I flussi di lavoro 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 specifica di un flusso di lavoro sotto forma di elenco di voci di passaggi. Ogni voce rappresenta un passaggio o un blocco di istruzioni l'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