Creazione e gestione dei flussi di lavoro

Puoi creare e gestire i flussi di lavoro nella console Google Cloud o utilizzando Google Cloud CLI nel terminale o in 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 di 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 verificare se la fatturazione è abilitata in 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 verificare se la fatturazione è abilitata in 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 maggiori informazioni, consulta API Workflows.

Crea un account di servizio

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 a cui può accedere. Crea un account di servizio, se non ne hai già uno, quindi 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 predefinito di Compute Engine per la sua identità. Per maggiori informazioni, consulta Concedere l'autorizzazione dei flussi di lavoro per l'accesso 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 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.

Console

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

    Vai ad Account di servizio

  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 e fai clic su Aggiungi un altro ruolo in base alle esigenze:

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

gcloud

  1. Creare l'account di servizio:

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. Concedi le autorizzazioni all'account di servizio assegnando 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 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.

    • PROJECT_ID: l'ID del progetto.

REST

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

Puoi concedere più ruoli in modo programmatico 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 dei flussi di lavoro, che possono essere scritte 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 verifica anche che il file di origine possa essere eseguito. L'operazione ha esito negativo se il file di origine non contiene una definizione del flusso di lavoro valida.

La modifica dei file YAML può essere soggetta a errori. Puoi creare il tuo flusso di lavoro utilizzando un IDE preferito o un editor di codice sorgente e configurando 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 Workflows

  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 il flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud. Per saperne di più, in questo documento, consulta Creare un account di servizio.

  7. Se vuoi, esegui una delle seguenti operazioni:

    1. Specifica il livello di logging delle chiamate che vuoi applicare alla definizione del flusso di lavoro. Nell'elenco Livello registro 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.
    2. Specifica una chiave 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 ulteriori informazioni, consulta Utilizzare le chiavi di crittografia gestite dal cliente.

    3. Specifica una variabile di ambiente accessibile al tuo 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 consentono di organizzare le istanze di Google Cloud. Per maggiori informazioni, consulta Che cosa sono le etichette?

    5. Pianifica il flusso di lavoro: seleziona Aggiungi nuovo trigger > Cloud Scheduler. Per maggiori 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 maggiori informazioni, consulta Attivare un flusso di lavoro con eventi o messaggi Pub/Sub.

  8. Tocca Avanti.

  9. Nell'editor del flusso di lavoro, inserisci la definizione del flusso di lavoro. Esamina 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. Esamina un flusso di lavoro di esempio.

  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 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.
    • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro.

    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichetta che ti aiutano a organizzare le tue istanze Google Cloud, ad esempio name=wrench. Per scoprire di più, consulta la sezione Che cosa sono le etichette?

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente; ad esempio, MONTH=January. Per saperne di più, 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 che il tuo flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud. Per saperne di più, in questo documento, vedi Creare un account di servizio.

    • 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 di coppie chiave-valore di etichetta che ti aiuta a organizzare le istanze Google Cloud. Ad esempio: {"name": "wrench", "mass": "1kg", "count": "3"} Per maggiori informazioni, consulta Che cosa sono le etichette? Tieni presente che l'applicazione della nuova etichetta può richiedere fino a 10 minuti.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'account di servizio che il tuo flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud. L'ID progetto è il tuo ID progetto Google Cloud. Per maggiori informazioni, in questo documento, vedi Creare un account di servizio.
  • 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 ulteriori informazioni, vedi Utilizzare le chiavi di crittografia gestite dal cliente.
  • 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.
  • ENV_KEY e ENV_VALUE: facoltativi. Una mappa delle 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

    In JSON, devi eseguire l'escape delle virgolette. 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 di queste 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 Workflows

    Questa pagina elenca i flussi di lavoro in tutte le località e include dettagli come nomi, regioni, ultime revisioni e altro ancora.

  2. Per filtrare i flussi di lavoro:

    1. Fai clic su Filtro o sul campo Filtra flussi di lavoro.
    2. Nell'elenco Proprietà, seleziona un'opzione in base a cui 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, accanto a qualsiasi intestazione di colonna supportata, fai clic su Ordina.

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 posizione del flusso di lavoro.

Questo comando elenca i flussi di lavoro nella posizione specificata e include dettagli come NAME, STATE, REVISION_ID e UPDATE_TIME di un flusso di lavoro.

REST

Per elencare i flussi di lavoro in un progetto e 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 di queste opzioni:

Se l'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, viene aggiornato il relativo versionID. L'elemento versionID è composto da due parti, separate da un trattino:

  • Un numero, a partire da uno, che viene incrementato ogni volta che aggiorni un flusso di lavoro.

  • Una stringa alfanumerica di tre caratteri casuale.

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 sola volta.

Console

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

    Vai a Workflows

  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 del log 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 del registro 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.
      4. 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 dell'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.
      3. Fai clic su Aggiungi un altro ruolo o su Elimina ruolo.
    2. Se stai aggiungendo 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 elencare tutti i flussi di lavoro:

    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 l'origine, la descrizione, le etichette, le variabili di ambiente, il livello di log chiamate, la chiave di crittografia o l'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 tuo 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 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.
    • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro.

    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichetta che ti aiutano a organizzare le tue istanze Google Cloud, ad esempio name=wrench. Per scoprire di più, consulta la sezione Che cosa sono le etichette?

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente; ad esempio, MONTH=January. Per saperne di più, 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 che il tuo flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud. Se vuoi aggiornare i ruoli per l'account di servizio, consulta Concedere l'autorizzazione dei flussi di lavoro per l'accesso 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, usa 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:

  • WORKFLOW_NAME: il nome del flusso di lavoro, ad esempio myFirstWorkflow.
  • DESCRIPTION: facoltativo. Una descrizione del flusso di lavoro. Non deve contenere più di 1000 caratteri Unicode.
  • LABEL_KEY e LABEL_VALUE: facoltativi. Una mappa di coppie chiave-valore di etichetta che ti aiuta a organizzare le istanze Google Cloud. Ad esempio: {"name": "wrench", "mass": "1kg", "count": "3"} Per maggiori informazioni, consulta Che cosa sono le etichette? Tieni presente che l'applicazione della nuova etichetta può richiedere fino a 10 minuti.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: facoltativo. L'account di servizio che il tuo flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud. L'ID progetto è il tuo ID progetto Google Cloud. Per maggiori informazioni, in questo documento, vedi Creare un account di servizio.
  • 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 ulteriori informazioni, vedi Utilizzare le chiavi di crittografia gestite dal cliente.
  • 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.
  • ENV_KEY e ENV_VALUE: facoltativi. Una mappa delle 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 minimizzata. Ad esempio: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
  • LOCATION: la regione in cui viene eseguito il deployment del flusso di lavoro, ad esempio us-central1.
  • UPDATE_FIELDS: facoltativo. Un elenco di campi da aggiornare separati da virgole. Se non viene specificato, viene aggiornato l'intero flusso di lavoro. Ad esempio description,callLogLevel.

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 di queste 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 comporta anche l'eliminazione delle sue esecuzioni e di quelle attive.

Console

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

    Vai a Workflows

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

  3. Quando ti viene richiesto di confermare l'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 elencare tutti i flussi di lavoro:

    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 di queste 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