L'esecuzione di un flusso di lavoro esegue l'attuale definizione del flusso di lavoro associata al flusso di lavoro.
Puoi passare gli argomenti di runtime in una richiesta di esecuzione del flusso di lavoro e accedervi utilizzando una variabile del flusso di lavoro. Per maggiori informazioni, consulta Passare argomenti di runtime in una richiesta di esecuzione.
Una volta completata l'esecuzione di un flusso di lavoro, la cronologia e i risultati vengono conservati per un periodo di tempo limitato. Per saperne di più, consulta Quote e limiti.
Prima di iniziare
I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
- Se un flusso di lavoro accede ad altre risorse Google Cloud, assicurati che sia associato a un account di servizio che disponga delle autorizzazioni appropriate per farlo.
Per scoprire quale account di servizio è associato a un flusso di lavoro esistente, consulta
Verificare l'account di servizio associato di un flusso di lavoro.
Tieni presente che per creare una risorsa e collegare un account di servizio, devi avere le autorizzazioni necessarie per crearla e per impersonare l'account di servizio che collegherai alla risorsa. Per maggiori informazioni, consulta Autorizzazioni dell'account di servizio.
- Esegui il deployment di un flusso di lavoro utilizzando la console Google Cloud o Google Cloud CLI.
Esegui un flusso di lavoro
Puoi eseguire un flusso di lavoro utilizzando le librerie client, nella console Google Cloud, utilizzando gcloud CLI oppure inviando una richiesta all'API REST Workflows.
Console
Per eseguire un flusso di lavoro, nella console Google Cloud vai alla pagina Flussi di lavoro:
Nella pagina Flussi di lavoro, seleziona un flusso di lavoro per andare alla relativa pagina dei dettagli.
Nella pagina Dettagli flusso di lavoro, fai clic su play_arrow Esegui.
Nel riquadro Input della pagina Esegui flusso di lavoro, puoi inserire argomenti di runtime facoltativi da passare al flusso di lavoro prima dell'esecuzione. Gli argomenti devono essere in formato JSON, ad esempio
{"animal":"cat"}
. Se il flusso di lavoro non utilizza argomenti di runtime, lascia vuoto questo campo.(Facoltativo) Specifica il livello di logging delle chiamate che vuoi applicare all'esecuzione del flusso di lavoro. Nell'elenco Livello log chiamate, seleziona una delle seguenti opzioni:
- Non specificato: non è specificato nessun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del flusso di lavoro, a meno che non sia specificato il livello di log dell'esecuzione (valore predefinito); in questo caso, viene applicato il livello di log del flusso di lavoro.
- Solo errori: registra tutte le eccezioni rilevate o quando una chiamata viene interrotta a causa di un'eccezione.
- Tutte le chiamate: registra tutte le chiamate ai flussi di lavoro secondari o alle funzioni di libreria e i relativi risultati.
- Nessun log: nessun registro chiamate.
Fai clic su Execute (Esegui).
Nella pagina Dettagli esecuzione, puoi visualizzare i risultati dell'esecuzione, inclusi qualsiasi output, lo stato e l'ID esecuzione e il passaggio attuale o finale dell'esecuzione del flusso di lavoro. Per maggiori informazioni, consulta Accedere ai risultati dell'esecuzione del flusso di lavoro.
gcloud
Apri un terminale.
Trova il nome del flusso di lavoro da eseguire. Se non conosci il nome del flusso di lavoro, puoi inserire il seguente comando per elencare tutti i flussi di lavoro:
gcloud workflows list
Puoi eseguire il flusso di lavoro in due modi:
Esegui il flusso di lavoro e attendi il completamento dell'esecuzione:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Esegui il flusso di lavoro senza attendere il completamento del tentativo di esecuzione:
gcloud workflows execute WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Sostituisci quanto segue:
WORKFLOW_NAME
: il nome del flusso di lavoro.CALL_LOGGING_LEVEL
(facoltativo): livello di logging delle chiamate da applicare durante l'esecuzione. Può essere uno dei seguenti:none
: nessun livello di logging specificato. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del flusso di lavoro, a meno che non sia specificato il livello di log dell'esecuzione (valore predefinito). In questo caso, viene applicato il livello di log del flusso di lavoro.log-errors-only
: registra tutte le eccezioni rilevate o quando una chiamata viene interrotta a causa di un'eccezione.log-all-calls
: registra tutte le chiamate ai flussi di lavoro secondari o alle funzioni di libreria e i relativi risultati.log-none
: nessuna registrazione chiamate.
DATA
(facoltativo): argomenti di runtime per il tuo flusso di lavoro in formato JSON.
Se hai eseguito
gcloud workflows execute
, viene restituito l'ID univoco del tentativo di esecuzione del flusso di lavoro e l'output è simile al seguente:To view the workflow status, you can use following command: gcloud workflows executions describe b113b589-8eff-4968-b830-8d35696f0b33 --workflow workflow-2 --location us-central1
Per visualizzare lo stato dell'esecuzione, inserisci il comando restituito dal passaggio precedente.
Se il tentativo di esecuzione ha esito positivo, l'output è simile al seguente, con un state
che indica l'esito positivo del flusso di lavoro e un status
che specifica il passaggio finale del flusso di lavoro di esecuzione.
argument: '{"searchTerm":"Friday"}' endTime: '2022-06-22T12:17:53.086073678Z' name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/c4dffd1f-13db-46a0-8a4a-ee39c144cb96 result: '["Friday","Friday the 13th (franchise)","Friday Night Lights (TV series)","Friday the 13th (1980 film)","Friday the 13th","Friday the 13th (2009 film)","Friday the 13th Part III","Friday the 13th Part 2","Friday (Rebecca Black song)","Friday Night Lights (film)"]' startTime: '2022-06-22T12:17:52.799387653Z' state: SUCCEEDED status: currentSteps: - routine: main step: returnOutput workflowRevisionId: 000001-ac2
Librerie client
Gli esempi riportati di seguito presuppongono che tu abbia già eseguito il deployment di un flusso di lavoro, myFirstWorkflow
.
Installa la libreria client e configura l'ambiente di sviluppo. Per i dettagli, consulta la panoramica delle librerie client di Workflows.
Clona il repository dell'app di esempio sulla tua macchina locale:
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice di esempio di Workflows:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Dai un'occhiata al codice campione:
Java
Node.js (JavaScript)
Node.js (TypeScript)
Python
Nell'esempio:
- Configura le librerie client di Cloud per Workflows.
- Esegue un flusso di lavoro.
- Esegue il polling dell'esecuzione del flusso di lavoro (utilizzando il backoff esponenziale) fino al termine dell'esecuzione.
- Stampa i risultati dell'esecuzione.
Per eseguire l'esempio, installa prima le dipendenze:
Java
mvn compile
Node.js (JavaScript)
npm install
Node.js (TypeScript)
npm install && npm run build
Python
pip3 install -r requirements.txt
Esegui lo script:
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js (JavaScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Node.js (TypeScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Sostituisci quanto segue:
PROJECT_ID
(obbligatorio): l'ID del progetto Google CloudCLOUD_REGION
: la posizione del flusso di lavoro (valore predefinito:us-central1
)WORKFLOW_NAME
: l'ID del flusso di lavoro (valore predefinito:myFirstWorkflow
)
L'output è simile al seguente:
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
API REST
Per creare una nuova esecuzione utilizzando l'ultima revisione di un determinato flusso di lavoro, usa il metodo projects.locations.workflows.executions.create
.
Tieni presente che per eseguire l'autenticazione devi avere un account di servizio con privilegi sufficienti per eseguire il flusso di lavoro. Ad esempio, puoi concedere a un account di servizio il ruolo Invoker di flussi di lavoro (roles/workflows.invoker
) in modo che l'account disponga dell'autorizzazione per attivare l'esecuzione del flusso di lavoro. Per ulteriori informazioni, consulta Richiamare flussi di lavoro.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_NUMBER
: il numero del tuo progetto Google Cloud elencato nella pagina Impostazioni IAM e amministrazione.LOCATION
: la regione in cui viene eseguito il deployment del flusso di lavoro, ad esempious-central1
.WORKFLOW_NAME
: nome definito dall'utente per il flusso di lavoro, ad esempiomyFirstWorkflow
.PARAMETER
: facoltativo. Se il flusso di lavoro in esecuzione può ricevere argomenti di runtime che passi come parte di una richiesta di esecuzione, puoi aggiungere al corpo della richiesta una stringa in formato JSON il cui valore corrisponde a una o più coppie parametro-valore con escape, ad esempio"{\"searchTerm\":\"asia\"}"
.VALUE
: facoltativo. Il valore di una coppia parametro-valore che il flusso di lavoro può ricevere come argomento di runtime.CALL_LOGGING_LEVEL
: facoltativo. Il livello di logging delle chiamate da applicare durante l'esecuzione. L'impostazione predefinita è che non è specificato nessun livello di logging e viene invece applicato il livello di log del flusso di lavoro. Per maggiori informazioni, consulta Inviare i log a Logging. Il valore sarà uno dei seguenti:CALL_LOG_LEVEL_UNSPECIFIED
: non è specificato nessun livello di logging e viene invece applicato il livello di log del flusso di lavoro. Questa è l'impostazione predefinita. In caso contrario, si applica il livello di log dell'esecuzione e ha la precedenza sul livello di log del flusso di lavoro.LOG_ERRORS_ONLY
: registra tutte le eccezioni rilevate o quando una chiamata viene interrotta a causa di un'eccezione.LOG_ALL_CALLS
: registra tutte le chiamate ai flussi di lavoro secondari o alle funzioni di libreria e i relativi risultati.LOG_NONE
: nessuna registrazione chiamate.
Corpo JSON della richiesta:
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL" }
Per inviare la richiesta, espandi una di queste opzioni:
In caso di esito positivo, il corpo della risposta contiene un'istanza di Execution
appena creata:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID", "startTime": "2023-11-07T14:35:27.215337069Z", "state": "ACTIVE", "argument": "{\"PARAMETER\":\"VALUE\"}", "workflowRevisionId": "000001-2df", "callLogLevel": "CALL_LOGGING_LEVEL", "status": {} }
Controllare lo stato delle esecuzioni
Esistono diversi comandi per controllare lo stato dell'esecuzione di un flusso di lavoro.
Per recuperare un elenco dei tentativi di esecuzione di un flusso di lavoro e i relativi ID, inserisci il seguente comando:
gcloud workflows executions list WORKFLOW_NAME
Sostituisci
WORKFLOW_NAME
con il nome del flusso di lavoro.Il comando restituisce un valore
NAME
simile al seguente:projects/PROJECT_NUMBER/locations/REGION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
Copia l'ID esecuzione per utilizzarlo nel comando successivo.
Per controllare lo stato di un tentativo di esecuzione e attendere il completamento del tentativo, inserisci il seguente comando:
gcloud workflows executions wait EXECUTION_ID
Sostituisci
EXECUTION_ID
con l'ID del tentativo di esecuzione.Il comando attende il completamento del tentativo di esecuzione e poi restituisce i risultati.
Per attendere il completamento dell'ultima esecuzione e poi restituire il risultato dell'esecuzione completata, inserisci il seguente comando:
gcloud workflows executions wait-last
Se hai eseguito un tentativo di esecuzione precedente nella stessa sessione
gcloud
, il comando attende il completamento del tentativo di esecuzione precedente e poi restituisce i risultati dell'esecuzione completata. Se non esistono tentativi precedenti,gcloud
restituisce il seguente errore:ERROR: (gcloud.workflows.executions.wait-last) [NOT FOUND] There are no cached executions available.
Per visualizzare lo stato dell'ultima esecuzione, inserisci il seguente comando:
gcloud workflows executions describe-last
Se hai eseguito un tentativo precedente nella stessa sessione
gcloud
, il comando restituisce i risultati dell'ultima esecuzione anche se è in esecuzione. Se non esistono tentativi precedenti,gcloud
restituisce il seguente errore:ERROR: (gcloud.beta.workflows.executions.describe-last) [NOT FOUND] There are no cached executions available.