Crea e gestisci flussi di lavoro

Puoi creare e gestire i flussi di lavoro nella console Google Cloud o utilizzando Google Cloud CLI nel terminale o Cloud Shell. Puoi anche gestire i flussi di lavoro tramite l'API Workflows.

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.

Console

  1. Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come controllare se la fatturazione è abilitata su un progetto.

  3. Abilitare l'API Workflows.

    Abilita l'API

gcloud

  1. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come controllare se la fatturazione è abilitata su un progetto.

  3. Abilitare l'API Workflows.

    gcloud services enable workflows.googleapis.com
    

REST

Per gestire i flussi di lavoro utilizzando l'API Workflows, ti consigliamo di utilizzare le librerie client fornite da Google per chiamare il servizio workflows.googleapis.com. Per ulteriori informazioni, vedi API Workflows.

Crea un service account

Un account di servizio rappresenta l'identità di un flusso di lavoro e determina le autorizzazioni del flusso di lavoro e le risorse Google Cloud alle quali può accedere. Crea un account di servizio, se non ne hai già uno, poi concedigli i ruoli necessari per la gestione dei flussi di lavoro e la creazione dei log.

Se non specifichi un account di servizio durante la creazione del flusso di lavoro, quest'ultimo utilizza l'account di servizio Compute Engine predefinito per la propria identità. Per ulteriori informazioni, consulta Concedere a un flusso di lavoro l'autorizzazione ad accedere alle risorse Google Cloud.

Ti consigliamo vivamente di utilizzare un account di servizio con i privilegi minimi necessari per accedere alle risorse richieste.

Tieni presente che per creare una risorsa e collegare un account di servizio, devi disporre delle autorizzazioni necessarie per creare questa risorsa e impersonare l'account di servizio che collegherai alla risorsa. Per maggiori informazioni, consulta Autorizzazioni dell'account di servizio.

Console

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai a Service account

  2. Seleziona un progetto e fai clic su Crea account di servizio.

  3. Inserisci un nome nel campo Nome account di servizio.

    Il nome deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Dopo aver creato un account di servizio, non puoi più modificarne il nome.

  4. Fai clic su Crea e continua.

  5. Fai clic su Seleziona un ruolo.

  6. Seleziona i ruoli seguenti, facendo clic su Aggiungi un altro ruolo in base alle necessità:

    1. Per creare, aggiornare ed eseguire flussi di lavoro, seleziona Workflows > Editor flussi di lavoro.
    2. Per inviare log a Cloud Logging, seleziona Logging > Writer log.
  7. Fai clic su Fine per completare la creazione dell'account di servizio.

gcloud

  1. Crea il service account.

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. Concedi le autorizzazioni all'account di servizio assegnando i ruoli.

    1. Per creare, aggiornare ed eseguire flussi di lavoro, assegna il ruolo roles/workflows.editor:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/workflows.editor"
      
    2. Per inviare i log a Cloud Logging, assegna il ruolo roles/logging.logWriter:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/logging.logWriter"
      

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT: il nome dell'account di servizio. Deve avere una lunghezza compresa tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Dopo aver creato un account di servizio, non puoi più modificarne il nome.

    • PROJECT_ID: ID del progetto.

REST

Puoi utilizzare il metodo serviceAccounts.create per creare un account di servizio. Per ulteriori informazioni, consulta Creare account di servizio.

Puoi concedere in modo programmatico più ruoli modificando e impostando il criterio di autorizzazione per una risorsa utilizzando il metodo setIamPolicy. Per maggiori informazioni, consulta Concedere o revocare più ruoli in modo programmatico.

Crea un flusso di lavoro

Una definizione di flusso di lavoro è composta da una serie di passaggi descritti utilizzando la sintassi di Workflows, che può essere scritta in formato YAML o JSON. Dopo aver definito un flusso di lavoro, esegui il deployment per renderlo disponibile per l'esecuzione. Il passaggio di deployment convalida anche la possibilità di eseguire il file di origine. L'operazione non riesce se il file di origine non contiene una definizione di flusso di lavoro valida.

La modifica dei file YAML può essere soggetta a errori. Puoi creare il flusso di lavoro utilizzando un editor di codice sorgente o IDE preferito e impostando il completamento automatico e la convalida della sintassi per ridurre gli errori.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Flussi di lavoro

  2. Fai clic su Crea.

  3. Inserisci un nome per il flusso di lavoro, ad esempio myFirstWorkflow. Il nome può contenere lettere, numeri, trattini bassi e trattini. Deve iniziare con una lettera e terminare con un numero o una lettera.

  4. Se vuoi, aggiungi una descrizione del flusso di lavoro.

  5. Nell'elenco Regione, seleziona una località appropriata in cui eseguire il deployment del flusso di lavoro, ad esempio us-central1.

  6. Nell'elenco Account di servizio, seleziona un account di servizio che verrà utilizzato dal flusso di lavoro per accedere ad altri servizi Google Cloud. Per ulteriori informazioni, consulta la sezione Creare un account di servizio in questo documento.

  7. Se vuoi, esegui una delle seguenti operazioni:

    1. Specifica il livello di logging delle chiamate da applicare alla definizione del flusso di lavoro. Nell'elenco Livello log chiamate, seleziona una delle seguenti opzioni:

      • Non specificato: non è stato specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log di esecuzione ha la precedenza su qualsiasi livello di log del flusso di lavoro, a meno che il livello di log di esecuzione non sia specificato (il 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 a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
      • Nessun log: nessun logging delle chiamate.
    2. Specifica una chiave di Cloud Key Management Service che il flusso di lavoro deve utilizzare per la crittografia dei dati: seleziona Chiave di crittografia gestita dal cliente (CMEK). Per maggiori informazioni, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

    3. Specifica una variabile di ambiente accessibile dal flusso di lavoro in fase di runtime. Per maggiori informazioni, consulta Utilizzare le variabili di ambiente.

    4. Aggiungi un'etichetta: le etichette sono coppie chiave/valore che aiutano a organizzare le istanze Google Cloud. Per ulteriori informazioni, consulta Che cosa sono le etichette? Le etichette del flusso di lavoro vengono ereditate dalle esecuzioni del flusso di lavoro. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del flusso di lavoro.

    5. Pianifica il flusso di lavoro: seleziona Aggiungi nuovo trigger > Cloud Scheduler. Per ulteriori informazioni, consulta Pianificare un flusso di lavoro utilizzando Cloud Scheduler.

    6. Attiva il flusso di lavoro tramite un evento o un messaggio Pub/Sub: seleziona Aggiungi nuovo trigger > Eventarc. Per ulteriori informazioni, consulta Attivare un flusso di lavoro con eventi o messaggi Pub/Sub.

  8. Fai clic su Avanti.

  9. Nell'editor del flusso di lavoro, inserisci la definizione del flusso di lavoro. Vedi un flusso di lavoro di esempio.

  10. Fai clic su Esegui il deployment.

gcloud

  1. Assicurati che il codice sorgente del tuo flusso di lavoro sia salvato in un file YAML o JSON, come MY_WORKFLOW.YAML o MY_WORKFLOW.JSON. Consulta un esempio di flusso di lavoro.

  2. Apri un terminale.

  3. Puoi creare ed eseguire il deployment di un flusso di lavoro utilizzando il comando gcloud workflows deploy:

    gcloud workflows deploy WORKFLOW_NAME \
        --location=LOCATION \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE
    

    Sostituisci quanto segue:

    • WORKFLOW_NAME: il nome del flusso di lavoro, ad esempio myFirstWorkflow. Il nome può contenere lettere, numeri, trattini bassi e trattini. Deve iniziare con una lettera e terminare con un numero o una lettera.

    • LOCATION: la regione in cui eseguire il deployment del flusso di lavoro, ad esempio us-central1.

    • 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 il livello di log dell'esecuzione non sia specificato (impostazione predefinita); 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 a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
      • log-none: nessun registro chiamate.
    • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro.

    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichetta che aiuta a organizzare le istanze Google Cloud, ad esempio name=wrench. Per ulteriori informazioni, consulta Che cosa sono le etichette? Le etichette del flusso di lavoro vengono ereditate dalle esecuzioni del flusso di lavoro. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del flusso di lavoro.

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente, ad esempio MONTH=January. Per maggiori informazioni, consulta Utilizzare le variabili di ambiente.

    • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il flusso di lavoro deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per maggiori informazioni, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'account di servizio utilizzato dal flusso di lavoro per accedere ad altri servizi Google Cloud. Per ulteriori informazioni, vedi Creare un account di servizio in questo documento.

    • YAML_OR_JSON_SOURCE_FILE: il file di origine per la definizione del flusso di lavoro. Ad esempio: myFirstWorkflow.yaml.

REST

Per creare un nuovo flusso di lavoro con un nome specificato, utilizza il metodo projects.locations.workflows.create e il parametro di query workflowId per specificare un ID per il flusso di lavoro.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • WORKFLOW_NAME: il nome del flusso di lavoro, ad esempio myFirstWorkflow. Il nome può contenere lettere, numeri, trattini bassi e trattini. Deve iniziare con una lettera e terminare con un numero o una lettera.
  • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro. Non deve contenere più di 1000 caratteri Unicode.
  • LABEL_KEY e LABEL_VALUE: facoltativi. Una mappa delle coppie chiave-valore di etichetta che consentono di organizzare le istanze Google Cloud. Ad esempio: {"name": "wrench", "mass": "1kg", "count": "3"} Per saperne di più, consulta Cosa sono le etichette? Le etichette del flusso di lavoro vengono ereditate dalle esecuzioni del flusso di lavoro. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del flusso di lavoro.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'account di servizio che verrà utilizzato dal flusso di lavoro per accedere ad altri servizi Google Cloud. L'ID progetto è l'ID del tuo progetto Google Cloud. Per maggiori informazioni, vedi Creare un account di servizio in questo documento.
  • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il flusso di lavoro deve utilizzare per la crittografia dei dati in formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per saperne di più, consulta Utilizzare le chiavi di crittografia gestite dal cliente.
  • CALL_LOGGING_LEVEL: facoltativo. Il livello di logging delle chiamate da applicare durante l'esecuzione. Per impostazione predefinita, non viene specificato alcun livello di logging e viene applicato il livello di log del flusso di lavoro. Per maggiori informazioni, consulta Inviare i log a Logging. Uno dei seguenti valori:
    • CALL_LOG_LEVEL_UNSPECIFIED: non viene specificato alcun livello di logging e viene applicato il livello di log del flusso di lavoro. Questa è l'impostazione predefinita. In caso contrario, viene applicato il livello di log dell'esecuzione, che 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 a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
    • LOG_NONE: nessun registro chiamate.
  • ENV_KEY e ENV_VALUE: facoltativi. Una mappa di coppie chiave-valore variabile di ambiente, ad esempio { "month": "January", "day": "Monday"}. Per maggiori informazioni, consulta Utilizzare le variabili di ambiente.
  • SOURCE_CODE: la definizione del flusso di lavoro. Devi eseguire l'escape delle nuove righe in YAML. Ad esempio: main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello

    Devi eseguire l'interpretazione letterale delle virgolette in JSON. Ad esempio: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}

  • LOCATION: la regione in cui deve essere eseguito il deployment del flusso di lavoro, ad esempio us-central1.

Corpo JSON della richiesta:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation appena creata:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "create",
    "apiVersion": "v1"
  },
  "done": false
}

Se il valore di "done" è false, l'operazione è ancora in corso.

Elenco flussi di lavoro

Puoi elencare i flussi di lavoro o utilizzare i filtri per recuperare un flusso di lavoro specifico.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Flussi di lavoro

    Questa pagina elenca i flussi di lavoro in tutte le posizioni e include dettagli quali nomi, regioni, revisioni più recenti e altro ancora.

  2. Per filtrare i flussi di lavoro:

    1. Fai clic su Filtra o sul campo Filtra flussi di lavoro.
    2. Nell'elenco Proprietà, seleziona un'opzione per filtrare i flussi di lavoro.

    Puoi selezionare una singola proprietà o utilizzare l'operatore logico OR per aggiungere altre proprietà.

  3. Per ordinare i flussi di lavoro, fai clic su Ordina accanto a qualsiasi intestazione di colonna supportata.

gcloud

Elenca i flussi di lavoro utilizzando il comando gcloud workflows list:

gcloud workflows list --location=LOCATION

Sostituisci LOCATION con l'ID o l'identificatore completo per la località del flusso di lavoro.

Questo comando elenca i tuoi flussi di lavoro nella località specificata e include dettagli quali NAME, STATE, REVISION_ID e UPDATE_TIME di un flusso di lavoro.

REST

Per elencare i flussi di lavoro in un progetto e in una località specifici, utilizza il metodo projects.locations.workflows.list.

In alternativa, per recuperare i dettagli di un singolo flusso di lavoro, utilizza il metodo projects.locations.workflows.get.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment dei flussi di lavoro, ad esempio us-central1.

Per inviare la richiesta, espandi una delle seguenti opzioni:

In caso di esito positivo, il corpo della risposta contiene istanze di Workflow e la risposta dovrebbe essere simile alla seguente:

{
  "workflows": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
      "state": "ACTIVE",
      "revisionId": "000001-0ce",
      "createTime": "2023-12-08T13:56:59.306770745Z",
      "updateTime": "2023-12-08T13:56:59.547021939Z",
      "revisionCreateTime": "2023-12-08T13:56:59.340161044Z",
      "serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com",
      "sourceContents": "main:\n    params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
    },
    {
      object (Workflow)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Aggiorna un flusso di lavoro

Puoi aggiornare un flusso di lavoro esistente. Devi specificare il nome del flusso di lavoro da aggiornare e la sua origine. Tieni presente che non puoi modificare il nome o la località di un flusso di lavoro.

L'aggiornamento di un flusso di lavoro non influisce sulle esecuzioni in corso. Solo le esecuzioni future del flusso di lavoro utilizzeranno la configurazione aggiornata.

Ogni volta che aggiorni un flusso di lavoro, il relativo versionID viene aggiornato. L'elemento versionID è costituito da due parti, separate da un trattino:

  • Un numero, partendo da uno, che aumenta ogni volta che aggiorni un flusso di lavoro.

  • Una stringa alfanumerica casuale di tre caratteri.

Ad esempio, 000001-27f indica la versione iniziale di un flusso di lavoro e 000002-d52 indica un flusso di lavoro che è stato aggiornato una volta.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Flussi di lavoro

  2. Fai clic sul nome del flusso di lavoro da aggiornare. Tieni presente che non puoi modificare il nome del flusso di lavoro.

    Viene visualizzata la pagina Dettagli flusso di lavoro.

  3. Puoi modificare il flusso di lavoro nei seguenti modi:

    • Per modificare l'origine:

      1. Fai clic sulla scheda Origine.
      2. Fai clic su Modifica.
      3. Per salvare le modifiche, fai clic su Salva. È stato eseguito il deployment del flusso di lavoro aggiornato.
    • Per aggiornare la descrizione, l'account di servizio utilizzato dal flusso di lavoro per l'autenticazione, il livello di log delle chiamate, le variabili di ambiente, le etichette o la chiave di crittografia:

      1. Fai clic sulla scheda Dettagli.
      2. Fai clic sull'icona appropriata.
      3. Se stai aggiornando il livello di registro chiamate, seleziona una delle seguenti opzioni:
        • Non specificato: non è stato specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log di esecuzione ha la precedenza su qualsiasi livello di log del flusso di lavoro, a meno che il livello di log di esecuzione non sia specificato (il 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 a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
        • Nessun log: nessun logging delle chiamate.
      4. Se aggiorni un'etichetta esistente o ne aggiungi una nuova, l'applicazione della nuova etichetta potrebbe richiedere fino a 10 minuti. Le etichette del flusso di lavoro vengono ereditate dalle esecuzioni del flusso di lavoro. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del flusso di lavoro.
      5. Per salvare le modifiche, fai clic su Salva. È stato eseguito il deployment del flusso di lavoro aggiornato.
    • Per modificare contemporaneamente i campi precedenti oppure aggiungere o aggiornare un attivatore:

      1. Fai clic su Modifica.
      2. Per modificare l'origine, fai clic su Avanti.
      3. Per salvare le modifiche ed eseguire il deployment del flusso di lavoro aggiornato, fai clic su Esegui il deployment.
  4. Se vuoi aggiornare i ruoli per il tuo account di servizio, fai clic sulla scheda Autorizzazioni.

    1. Le entità sono utenti, gruppi, domini o account di servizio. Per aggiornare un'entità esistente:

      1. Trova una riga contenente l'entità.
      2. Fai clic su Modifica entità nella riga in questione.
      3. Fai clic su Aggiungi un altro ruolo o fai clic su Elimina ruolo.
    2. Se aggiungi un ruolo, seleziona un ruolo appropriato nell'elenco Seleziona un ruolo.

    3. Per aggiungere un altro ruolo, fai clic su Aggiungi un altro ruolo.

    4. Fai clic su Salva.

gcloud

  1. Apri un terminale.

  2. Trova il nome del flusso di lavoro da aggiornare. Se non conosci il nome del flusso di lavoro, puoi inserire il seguente comando per elencarne tutti i flussi:

    gcloud workflows list
    
  3. Individua il file YAML o JSON in cui è salvata l'origine del flusso di lavoro, ad esempio WORKFLOW_NAME.YAML o WORKFLOW_NAME.JSON.

  4. Puoi aggiornare un flusso di lavoro esistente per modificarne origine, descrizione, etichette, variabili di ambiente, livello di log delle chiamate, chiave di crittografia o account di servizio associato utilizzando il comando gcloud workflows deploy.

    Devi specificare il nome del flusso di lavoro da aggiornare e la relativa origine. Tuttavia, gli altri flag sono facoltativi. Per rimuovere una chiave di crittografia gestita dal cliente, utilizza il flag --clear-kms-key.

    gcloud workflows deploy WORKFLOW_NAME \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE
    

    Sostituisci quanto segue:

    • WORKFLOW_NAME: obbligatorio. Il nome del flusso di lavoro.

    • CALL_LOGGING_LEVEL: facoltativo. Livello di logging delle chiamate da applicare al flusso di lavoro. 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 il livello di log dell'esecuzione non sia specificato (impostazione predefinita); 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 a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
      • log-none: nessun registro chiamate.
    • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro.

    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichetta che aiuta a organizzare le istanze Google Cloud, ad esempio name=wrench. Per ulteriori informazioni, consulta Che cosa sono le etichette? Le etichette del flusso di lavoro vengono ereditate dalle esecuzioni del flusso di lavoro. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del flusso di lavoro.

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente, ad esempio MONTH=January. Per maggiori informazioni, consulta Utilizzare le variabili di ambiente.

    • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il flusso di lavoro deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per maggiori informazioni, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'account di servizio utilizzato dal flusso di lavoro per accedere ad altri servizi Google Cloud. Se vuoi aggiornare i ruoli per l'account di servizio, consulta Concedere un'autorizzazione del flusso di lavoro per accedere alle risorse Google Cloud e Gestire l'accesso a progetti, cartelle e organizzazioni.

    • YAML_OR_JSON_SOURCE_FILE: obbligatorio. Il file di origine per il flusso di lavoro in formato YAML o JSON. Ad esempio: myFirstWorkflow.yaml.

REST

Per aggiornare un flusso di lavoro esistente, utilizza il metodo projects.locations.workflows.patch e, facoltativamente, il parametro di query updateMask per specificare un elenco di campi da aggiornare.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

Corpo JSON della richiesta:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation appena creata:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "update",
    "apiVersion": "v1"
  },
  "done": false
}

Se il valore di "done" è false, l'operazione è ancora in corso.

Elimina un flusso di lavoro

Puoi eliminare un flusso di lavoro esistente. L'eliminazione di un flusso di lavoro elimina anche le relative esecuzioni e annulla quelle attive per il flusso di lavoro.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Flussi di lavoro

  2. Fai clic sul nome del flusso di lavoro da eliminare e poi su Elimina.

  3. Al prompt di conferma dell'eliminazione, inserisci il nome del flusso di lavoro.

  4. Fai clic su Conferma.

gcloud

  1. Apri un terminale.

  2. Trova il nome del flusso di lavoro da eliminare. Se non conosci il nome del flusso di lavoro, puoi inserire il seguente comando per elencarne tutti i flussi:

    gcloud workflows list
    
  3. Elimina un flusso di lavoro utilizzando il comando gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME
    

    Sostituisci WORKFLOW_NAME con il nome del tuo flusso di lavoro.

REST

Per eliminare un flusso di lavoro con un nome specificato, utilizza il metodo projects.locations.workflows.delete.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • WORKFLOW_NAME: il nome del flusso di lavoro da eliminare.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment del flusso di lavoro, ad esempio us-central1.

Per inviare la richiesta, espandi una delle seguenti opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "delete",
    "apiVersion": "v1"
  },
  "done": false
}

Se il valore di "done" è false, l'operazione è ancora in corso.

Passaggi successivi