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 inclusi i servizi personalizzati ospitati su Cloud Run o Cloud Functions, 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 codice o libreria senza bisogno di patch di sicurezza. Una volta eseguito il deployment di un flusso di lavoro, puoi aspettarti che venga eseguito in modo affidabile senza manutenzione. Un flusso di lavoro può stato, riprovare, eseguire un sondaggio o attendere fino a un anno.

Workflows è conforme a quanto segue: certificazioni e standard.

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

Orchestrazione di 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, quindi scrivi 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. in batch. Spesso pianificate. Ad esempio:
  • Invia email giornaliere ai clienti
  • Prepara ed esegui job BigQuery o di machine learning
  • Generare report
Processi aziendali Automatizzare flussi di lavoro line-of-business: codifica i passaggi in un processi aziendali, tra cui condizioni, azioni e human-in-the-loop eventi. 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: sequenze di script con facilità delle operazioni dei servizi Google Cloud. Ad esempio:
  • Esegui il provisioning di nuovi progetti o infrastrutture tenant
  • Abbassare le risorse in una pianificazione o tramite trigger 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 Per la sintassi di Workflows, consulta Riferimento per la sintassi.

Una volta creato un flusso di lavoro, ne viene eseguito il deployment, in modo che il flusso di lavoro sia 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. Tutti delle 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 tramite le librerie client nella console Google Cloud, oppure inviando una richiesta POST HTTP all'URL di chiamata del flusso di lavoro utilizzando l'API REST Workflows. Per maggiori dettagli, vedi Esegui un flusso di lavoro.

Funzionalità chiave

Di seguito sono riportate alcune funzionalità chiave di Workflows.

Controllo 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 uno passaggio. Per impostazione predefinita, Workflows tratta i passaggi come se si trovassero in una nell'elenco ordinato e li esegue uno alla volta fino a quando non sono stati eseguiti tutti i passaggi. Per consulta la sezione Procedura.
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 un loop) che possono essere eseguiti 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 una programmazione lingua, consentendo di incapsulare un passaggio o una serie di passaggi che il flusso di lavoro si 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 dal 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 su un programmazione, ad esempio ogni lunedì alle 09:00 o ogni 15 minuti. Per maggiori dettagli, vedi Pianificare un flusso di lavoro utilizzando Cloud Scheduler.
Argomenti di runtime
È possibile accedere ai dati trasmessi in fase di runtime aggiungendo un campo params all'istanza principale flusso di lavoro (inserito in un blocco main). Il blocco main accetta un singolo argomento qualsiasi tipo di dati JSON valido. Il campo params assegna il nome utilizzata dal flusso di lavoro per memorizzare i dati trasmessi. Per maggiori dettagli, vedi Argomenti di runtime.

Connessione di servizi

API HTTP
Puoi definire un passaggio del flusso di lavoro che effettui una chiamata HTTP e assegnare la risposta dalla chiamata a una variabile. Ad esempio, puoi richiamare un Google Cloud come Cloud Functions o Cloud Run, tramite una connessione richiesta. Sono supportate sia le richieste HTTP che HTTPS. Per maggiori dettagli, vedi Effettuare una richiesta HTTP e Richiama Cloud Functions o Cloud Run.
Puoi richiamare Compute Engine, Google Kubernetes Engine (GKE) o altri endpoint Google Cloud abilitando 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 affidarsi a quelli a livello di rete 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 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 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 perché gestiscono la formattazione delle richieste per conto tuo e ti forniscono metodi e argomenti in modo che non sia necessario conoscere i dettagli l'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 variabili di ambiente definite dall'utente consentono di creare in modo efficiente per i servizi ed elabora 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 librerie in un flusso di lavoro: le funzioni di libreria funzionano immediatamente. Per maggiori dettagli, consulta Panoramica della libreria standard.
Puoi accedere alle informazioni sull'ambiente di un flusso di lavoro (come la posizione o 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 integrate.
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 a seconda dell'ambiente in cui viene eseguito il deployment. Per maggiori dettagli, vedi Utilizza le variabili di ambiente.

Gestione degli errori

Puoi rendere resilienti i tuoi flussi di lavoro e personalizzarne il comportamento quando si verifica un errore utilizzando gestione delle eccezioni, inclusi nuovi tentativi di chiamata HTTP automatizzati con backoff esponenziali, errori personalizzati gestori 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 effettui un una richiesta all'endpoint di callback; che la richiesta riprende l'esecuzione nel tuo 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, vedi Attendi 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 l'utilizzo del 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 dettagli, scopri di più sull'autenticazione e controllo dell'accesso.

Osservabilità

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

Le informazioni sugli audit log sono disponibili tramite Cloud Audit Logs. Per maggiori dettagli, Consulta le informazioni sugli audit log per i flussi di lavoro ed esecuzioni del flusso di lavoro.

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 l'origine di a 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 di esempio.

Passaggi successivi