Creare e gestire i workflow

Workflows ti consente di orchestrare e automatizzare processi in più passaggi tra i servizi Google Cloud e le API esterne. Puoi eseguire il deployment, aggiornare e amministrare le definizioni dei workflow utilizzando la console Google Cloud , Google Cloud CLI nel tuo terminale locale o in Cloud Shell oppure 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Workflows API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

gcloud

  1. Installa Google Cloud CLI.

  2. Configura gcloud CLI per utilizzare la tua identità federata.

    Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un progetto Google Cloud .

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  5. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  6. Abilita l'API Workflows, se non è già abilitata:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable workflows.googleapis.com

REST

Per gestire i workflow utilizzando l'API Workflows, ti consigliamo di utilizzare le librerie client fornite da Google per chiamare il servizio workflows.googleapis.com. Per saperne di più, consulta l'API Workflows.

Crea un account di servizio

Un account di servizio rappresenta l'identità di un workflow e determina le autorizzazioni di cui dispone il workflow 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 accedere alle risorse Google Cloud di destinazione e per creare i log.

Se non specifichi un account di servizio durante la creazione del workflow, quest'ultimo utilizza il account di servizio Compute Engine predefinito per la sua identità. Per saperne di più, consulta Concedi l'autorizzazione dei workflow per l'accesso alle risorseGoogle Cloud .

Per creare un workflow e collegare un account di servizio, devi disporre delle autorizzazioni per creare il workflow (ad esempio, il ruolo Workflows Editor) e per agire come quel account di servizio (ad esempio, il ruolo Service Account User). Devi anche disporre dell'autorizzazione per agire come account di servizio associato quando aggiorni il codice sorgente o account di servizio di un workflow. Per saperne di più, consulta Autorizzazioni dei service account.

Console

  1. Nella console Google Cloud , vai alla pagina Service account.

    Vai a Service account

  2. Seleziona un progetto e poi fai clic su Crea service account.

  3. Nel campo Nome service account, inserisci un nome.

    Il nome deve contenere da 6 a 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.

  4. Fai clic su Crea e continua.

  5. Fai clic su Seleziona un ruolo.

  6. Seleziona i seguenti ruoli, facendo clic su Aggiungi un altro ruolo, se necessario:

    1. Seleziona i ruoli necessari al tuo workflow per accedere alle risorseGoogle Cloud di destinazione; ad esempio, se il tuo workflow richiama un altro workflow, seleziona Workflows > Workflows Invoker.
    2. Per inviare log a Cloud Logging, seleziona Logging > Logs Writer.
  7. Fai clic su Fine per completare la creazione del service account.

gcloud

  1. Crea l'account di servizio:

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. Concedi le autorizzazioni al account di servizio assegnando i ruoli necessari al workflow per accedere alle risorse Google Cloud di destinazione:

    1. Ad esempio, se il tuo workflow richiama un altro workflow, assegna il ruolo roles/workflows.invoker:

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

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

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT: il nome del service account. Deve contenere da 6 a 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.

    • PROJECT_ID: il tuo ID progetto Google Cloud .

REST

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

Puoi concedere più ruoli in modo programmatico modificando e impostando la policy di autorizzazione per una risorsa utilizzando il metodo setIamPolicy. Per saperne di più, consulta Concedi o revoca più ruoli in modo programmatico.

Crea un flusso di lavoro

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

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

Console

  1. Nella console Google Cloud , vai alla pagina Workflow.

    Vai a Workflow

  2. Fai clic su Crea.

  3. Inserisci un nome per il workflow, 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 workflow.

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

  6. Nell'elenco Service account, seleziona un account di servizio che il tuo workflow utilizzerà per accedere ad altri servizi Google Cloud . Per saperne di più, consulta Crea un service account in questo documento.

  7. Se vuoi, puoi eseguire una delle seguenti operazioni:

    1. Specifica il livello di registri chiamate che vuoi applicare alla definizione del workflow. Nell'elenco Livello log chiamate, seleziona una delle seguenti opzioni:

      • Non specificato: non è specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del workflow, a meno che il livello di log dell'esecuzione non sia specificato (impostazione predefinita). In questo caso, viene applicato il livello di log del workflow.
      • 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 subworkflow o alle funzioni della libreria e i relativi risultati.
      • Nessun registro chiamate: nessun logging delle chiamate.
    2. Specifica il livello della cronologia di esecuzione che vuoi applicare alla definizione del workflow. Nell'elenco Cronologia esecuzioni, seleziona una delle seguenti opzioni:

      • Di base: attiva la cronologia esecuzioni di base. Questa è l'impostazione predefinita.
      • Dettagliata: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
    3. Specifica una chiave Cloud Key Management Service che il workflow deve utilizzare per la crittografia dei dati: seleziona Chiave di crittografia gestita dal cliente (CMEK). Per saperne di più, consulta Utilizza le chiavi di crittografia gestite dal cliente.

    4. Specifica una variabile di ambiente accessibile dal tuo workflow in fase di runtime. Per saperne di più, consulta Utilizza le variabili di ambiente.

    5. Aggiungi un'etichetta: le etichette sono coppie chiave-valore che ti aiutano a organizzare le tue istanzeGoogle Cloud . Per saperne di più, consulta Che cosa sono le etichette? Le etichette del workflow vengono ereditate dalle esecuzioni del workflow. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del workflow.

    6. Pianifica il workflow: seleziona Aggiungi nuovo trigger > Cloud Scheduler. Per saperne di più, consulta Pianifica un flusso di lavoro utilizzando Cloud Scheduler.

    7. Attiva il workflow tramite un evento o un messaggio Pub/Sub: seleziona Aggiungi nuovo trigger > Eventarc. Per saperne di più, consulta Attiva un workflow con eventi o messaggi Pub/Sub.

  8. Fai clic su Avanti.

  9. Nell'editor del workflow, inserisci la definizione del workflow. Guarda un esempio di workflow.

  10. Fai clic su Esegui il deployment.

gcloud

  1. Assicurati che il codice sorgente del workflow sia salvato in un file YAML o JSON, ad esempio MY_WORKFLOW.YAML o MY_WORKFLOW.JSON. Guarda un esempio di workflow.

  2. Apri un terminale.

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

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

    Sostituisci quanto segue:

    • WORKFLOW_NAME: il nome del workflow, 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 workflow, ad esempio us-central1.

    • CALL_LOGGING_LEVEL: facoltativo. Livello di registri chiamate da applicare durante l'esecuzione. Può essere uno dei seguenti:

      • none: non è specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del workflow, a meno che non sia specificato il livello di log dell'esecuzione (impostazione predefinita). In questo caso, viene applicato il livello di log del workflow.
      • 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 subworkflow o alle funzioni della libreria e i relativi risultati.
      • log-none: nessun registro chiamate.
    • DESCRIPTION: facoltativo. Una descrizione del workflow.

    • EXECUTION_HISTORY_LEVEL: facoltativo. Livello di cronologia esecuzioni da applicare durante l'esecuzione. Può essere uno dei seguenti:

      • none: non è specificato alcun livello di cronologia delle esecuzioni. Questa è l'impostazione predefinita. Se non viene specificato un livello della cronologia di esecuzione per un'esecuzione, questo viene determinato dal livello applicato al workflow. Se i livelli sono diversi, l'impostazione applicata a livello di esecuzione sostituisce l'impostazione applicata a livello di workflow per questa esecuzione.
      • execution-history-basic: attiva la cronologia di esecuzione di base.
      • execution-history-detailed: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichette che ti aiutano a organizzare le tue istanzeGoogle Cloud , ad esempio name=wrench. Per saperne di più, consulta Che cosa sono le etichette? Le etichette del workflow vengono ereditate dalle esecuzioni del workflow. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del workflow.

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente, ad esempio MONTH=January. Per saperne di più, consulta Utilizza le variabili di ambiente.

    • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il workflow deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per saperne di più, consulta Utilizza le chiavi di crittografia gestite dal cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.: facoltativo. Il account di servizio che il tuo workflow utilizzerà per accedere ad altri serviziGoogle Cloud . Per saperne di più, consulta Crea un service account in questo documento.

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

REST

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

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

  • WORKFLOW_NAME: il nome del tuo workflow, 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 tuo workflow. Non deve contenere più di 1000 caratteri Unicode.
  • LABEL_KEY e LABEL_VALUE: facoltativi. Una mappa di coppie chiave-valore delle etichette che ti aiutano a organizzare le tue istanze Google Cloud . Ad esempio: {"name": "wrench", "mass": "1kg", "count": "3"} Per saperne di più, consulta Che cosa sono le etichette? Le etichette del workflow vengono ereditate dalle esecuzioni del workflow. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del workflow.
  • SERVICE_ACCOUNT@PROJECT_ID.: facoltativo. Il service account che il tuo workflow utilizzerà per accedere ad altri servizi Google Cloud . L'ID progetto è l'ID progetto Google Cloud . Per saperne di più, consulta Crea un service account in questo documento.
  • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il workflow deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per saperne di più, consulta Utilizza le chiavi di crittografia gestite dal cliente.
  • CALL_LOGGING_LEVEL: facoltativo. Il livello di logging dei registri chiamate da applicare durante l'esecuzione. Per impostazione predefinita, non viene specificato alcun livello di logging e viene applicato il livello di log del workflow. Per saperne di più, consulta Invia i log a Logging. Uno dei seguenti:
    • CALL_LOG_LEVEL_UNSPECIFIED: non è specificato alcun livello di logging e viene applicato il livello di log del workflow. Questa è l'impostazione predefinita. In caso contrario, viene applicato il livello di log dell'esecuzione, che ha la precedenza sul livello di log del workflow.
    • 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 subworkflow o alle funzioni di libreria e i relativi risultati.
    • LOG_NONE: nessun registro chiamate.
  • EXECUTION_HISTORY_LEVEL: facoltativo. Il livello della cronologia di esecuzione da applicare durante l'esecuzione. Per saperne di più, consulta Visualizza la cronologia dei passaggi di esecuzione. Uno dei seguenti:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED: non è specificato alcun livello di cronologia delle esecuzioni. Questa è l'impostazione predefinita. Se non viene specificato un livello della cronologia di esecuzione per un'esecuzione, questo viene determinato dal livello applicato al workflow. Se i livelli sono diversi, l'impostazione applicata a livello di esecuzione sostituisce l'impostazione applicata a livello di workflow per questa esecuzione.
    • EXECUTION_HISTORY_BASIC: attiva la cronologia di esecuzione di base.
    • EXECUTION_HISTORY_ADVANCED: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
  • ENV_KEY e ENV_VALUE: facoltativi. Una mappa di coppie chiave-valore variabile di ambiente, ad esempio { "month": "January", "day": "Monday"}. Per saperne di più, consulta Utilizza le variabili di ambiente.
  • SOURCE_CODE: la definizione del workflow. Devi eseguire l'escape delle nuove righe in YAML. Ad esempio: main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello

    Devi utilizzare i caratteri di escape per le virgolette in JSON. Ad esempio: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}

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

Corpo JSON della richiesta:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "executionHistoryLevel": "EXECUTION_HISTORY_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.

Elenca i workflow

Puoi elencare i workflow o utilizzare i filtri per recuperare un workflow specifico.

Console

  1. Nella console Google Cloud , vai alla pagina Workflow.

    Vai a Workflow

    In questa pagina sono elencati i workflow in tutte le località e sono inclusi dettagli come nomi, regioni, ultime revisioni e altro ancora.

  2. Per filtrare i workflow:

    1. Fai clic su Filtra o sul campo Filtra workflow.
    2. Nell'elenco Proprietà, seleziona un'opzione in base alla quale filtrare i workflow.

    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 un'intestazione di colonna supportata.

gcloud

Elenca i workflow utilizzando il comando gcloud workflows list:

gcloud workflows list --location=LOCATION

Sostituisci LOCATION con l'ID o l'identificatore completo della località del workflow.

Questo comando elenca i workflow nella località specificata e include dettagli come NAME, STATE, REVISION_ID e UPDATE_TIME di un workflow.

REST

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

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

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

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment dei workflow, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste 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@",
      "sourceContents": "main:\n    params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
    },
    {
      object (Workflow)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Aggiorna un workflow

Puoi aggiornare il codice sorgente, le impostazioni di configurazione o entrambi di un workflow esistente. Tuttavia, non puoi modificare il nome o la località di un workflow.

L'aggiornamento di un workflow non influisce sulle esecuzioni in corso. Solo le esecuzioni successive del workflow utilizzano la configurazione aggiornata.

Per aggiornare il codice sorgente o il service account di un workflow, devi disporre dell'autorizzazione iam.serviceAccounts.actAs, inclusa in ruoli come Utente account di servizio (roles/iam.serviceAccountUser). A seconda dell'aggiornamento, devi disporre di questa autorizzazione nel seguente service account:

  • Aggiornare solo il codice sorgente del workflow (senza aggiornare il service account): devi disporre dell'autorizzazione iam.serviceAccounts.actAs sul account di servizio esistente associato al workflow.
  • Aggiorna il account di servizio o sia il codice sorgente sia il service account: devi disporre dell'autorizzazione iam.serviceAccounts.actAs sul nuovo account di servizio che stai associando al workflow.

Per saperne di più, consulta Autorizzazioni dei service account.

Ogni volta che aggiorni il codice sorgente, l'account di servizio, la chiave di crittografia, le variabili di ambiente, il livello dei registri chiamate o il livello della cronologia di esecuzione di un workflow, viene creata una nuova revisione del workflow e il relativo revisionId viene aggiornato. L'aggiornamento solo della descrizione o delle etichette di un workflow non crea una nuova revisione. Il revisionId è composto da due parti, separate da un trattino:

  • Un numero di sei cifre con padding di zeri, a partire da 000001, che viene incrementato ogni volta che viene creata una nuova revisione.

  • Una stringa esadecimale casuale di tre caratteri.

Ad esempio, 000001-27f indica la revisione iniziale di un workflow e 000002-d52 indica la seconda revisione.

Console

  1. Nella console Google Cloud , vai alla pagina Workflow.

    Vai a Workflow

  2. Fai clic sul nome del workflow che vuoi aggiornare. Tieni presente che non puoi modificare il nome del workflow.

    Viene visualizzata la pagina Dettagli workflow.

  3. Puoi modificare il workflow 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. Il deployment del workflow aggiornato è stato eseguito.
    • Per aggiornare la descrizione, il account di servizio utilizzato dal workflow per l'autenticazione, il livello dei registri chiamate, il livello della cronologia di esecuzione, 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 alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del workflow, a meno che il livello di log dell'esecuzione non sia specificato (impostazione predefinita). In questo caso, viene applicato il livello di log del workflow.
        • 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 subworkflow o alle funzioni della libreria e i relativi risultati.
        • Nessun registro chiamate: nessun logging delle chiamate.
      4. Se stai aggiornando il livello della cronologia delle esecuzioni, seleziona una delle seguenti opzioni:
        • Di base: attiva la cronologia esecuzioni di base. Questa è l'impostazione predefinita.
        • Dettagliata: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
      5. Per salvare le modifiche, fai clic su Salva. Il deployment del workflow aggiornato è stato eseguito.

    • Per modificare contemporaneamente i campi precedenti o aggiungere o aggiornare un trigger:

      1. Fai clic su Modifica.
      2. Per modificare l'origine, fai clic su Avanti.
      3. Per salvare le modifiche ed eseguire il deployment del workflow aggiornato, fai clic su Esegui il deployment.
  4. (Facoltativo) Per gestire le entità che dispongono dell'autorizzazione per accedere o richiamare questa risorsa del workflow, fai clic sulla scheda Autorizzazioni:

    1. Per aggiornare un'entità esistente:

      1. Individua una riga contenente l'entità.
      2. Fai clic su Modifica entità in quella 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 workflow che vuoi aggiornare. Se non conosci il nome del workflow, inserisci il seguente comando per elencare i workflow in una località:

    gcloud workflows list --location=LOCATION

    Sostituisci LOCATION con l'ID o l'identificatore completo della località del workflow.

  3. Se stai aggiornando il codice sorgente del workflow, individua il file YAML o JSON in cui è salvata l'origine del workflow, ad esempio WORKFLOW_NAME.yaml o WORKFLOW_NAME.json.

  4. Aggiorna il workflow eseguendo il comando gcloud workflows deploy con i flag per le proprietà che vuoi modificare.

    Puoi aggiornare un workflow esistente per modificarne l'origine, la descrizione, le etichette, le variabili di ambiente, il livello dei registri chiamate, il livello della cronologia delle esecuzioni, la chiave di crittografia o il account di servizio associato. Devi specificare il nome del workflow che vuoi aggiornare; i flag rimanenti sono facoltativi. Per rimuovere una chiave di crittografia gestita dal cliente, utilizza il flag --clear-kms-key.

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

    Sostituisci quanto segue:

    • WORKFLOW_NAME: obbligatorio. Il nome del tuo workflow.

    • LOCATION: facoltativo se la proprietà workflows/location è impostata; altrimenti, obbligatorio. La località del workflow, ad esempio us-central1.

    • CALL_LOGGING_LEVEL: facoltativo. Livello di registri chiamate da applicare durante l'esecuzione. Può essere uno dei seguenti:

      • none: non è specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del workflow, a meno che non sia specificato il livello di log dell'esecuzione (impostazione predefinita). In questo caso, viene applicato il livello di log del workflow.
      • 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 subworkflow o alle funzioni della libreria e i relativi risultati.
      • log-none: nessun registro chiamate.
    • DESCRIPTION: facoltativo. Una descrizione del workflow.

    • EXECUTION_HISTORY_LEVEL: facoltativo. Livello di cronologia esecuzioni da applicare durante l'esecuzione. Può essere uno dei seguenti:

      • none: non è specificato alcun livello di cronologia delle esecuzioni. Questa è l'impostazione predefinita. Se non viene specificato un livello della cronologia di esecuzione per un'esecuzione, questo viene determinato dal livello applicato al workflow. Se i livelli sono diversi, l'impostazione applicata a livello di esecuzione sostituisce l'impostazione applicata a livello di workflow per questa esecuzione.
      • execution-history-basic: attiva la cronologia di esecuzione di base.
      • execution-history-detailed: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
    • LABEL_KEY=LABEL_VALUE: facoltativo. Elenco di coppie chiave-valore di etichette che ti aiutano a organizzare le tue istanzeGoogle Cloud , ad esempio name=wrench. Per saperne di più, consulta Che cosa sono le etichette? Le etichette del workflow vengono ereditate dalle esecuzioni del workflow. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del workflow.

    • ENV_KEY=ENV_VALUE: facoltativo. Elenco di coppie chiave-valore variabile di ambiente, ad esempio MONTH=January. Per saperne di più, consulta Utilizza le variabili di ambiente.

    • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il workflow deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per saperne di più, consulta Utilizza le chiavi di crittografia gestite dal cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.: facoltativo. Il account di servizio utilizzato dal workflow per accedere ad altri serviziGoogle Cloud . Se vuoi aggiornare i ruoli per il tuo account di servizio, consulta Concedi l'autorizzazione dei workflow per l'accesso alle risorseGoogle Cloud e Gestisci l'accesso a progetti, cartelle e organizzazioni.

    • YAML_OR_JSON_SOURCE_FILE: facoltativo. Il file di origine del workflow in formato YAML o JSON. Ad esempio: myFirstWorkflow.yaml.

REST

Per aggiornare un workflow 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, apporta le sostituzioni seguenti:

  • WORKFLOW_NAME: il nome del tuo workflow, ad esempio myFirstWorkflow.
  • DESCRIPTION: facoltativo. Una descrizione del tuo workflow. Non deve contenere più di 1000 caratteri Unicode.
  • LABEL_KEY e LABEL_VALUE: facoltativi. Una mappa di coppie chiave-valore delle etichette che ti aiutano a organizzare le tue istanze Google Cloud . Ad esempio: {"name": "wrench", "mass": "1kg", "count": "3"} Per saperne di più, consulta Che cosa sono le etichette? Le etichette del workflow vengono ereditate dalle esecuzioni del workflow. Per visualizzare le etichette di esecuzione, utilizza il metodo workflows.executions.list per elencare e filtrare le esecuzioni del workflow.
  • SERVICE_ACCOUNT@PROJECT_ID.: facoltativo. Il service account che il tuo workflow utilizzerà per accedere ad altri servizi Google Cloud . L'ID progetto è l'ID progetto Google Cloud . Per saperne di più, consulta Crea un service account in questo documento.
  • ENCRYPT_KEY: facoltativo. Una chiave Cloud KMS che il workflow deve utilizzare per la crittografia dei dati nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Per saperne di più, consulta Utilizza le chiavi di crittografia gestite dal cliente.
  • CALL_LOGGING_LEVEL: facoltativo. Il livello di logging dei registri chiamate da applicare durante l'esecuzione. Per impostazione predefinita, non viene specificato alcun livello di logging e viene applicato il livello di log del workflow. Per saperne di più, consulta Invia i log a Logging. Uno dei seguenti:
    • CALL_LOG_LEVEL_UNSPECIFIED: non è specificato alcun livello di logging e viene applicato il livello di log del workflow. Questa è l'impostazione predefinita. In caso contrario, viene applicato il livello di log dell'esecuzione, che ha la precedenza sul livello di log del workflow.
    • 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 subworkflow o alle funzioni di libreria e i relativi risultati.
    • LOG_NONE: nessun registro chiamate.
  • EXECUTION_HISTORY_LEVEL: facoltativo. Il livello della cronologia di esecuzione da applicare durante l'esecuzione. Per saperne di più, consulta Visualizza la cronologia dei passaggi di esecuzione. Uno dei seguenti:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED: non è specificato alcun livello di cronologia delle esecuzioni. Questa è l'impostazione predefinita. Se non viene specificato un livello della cronologia di esecuzione per un'esecuzione, questo viene determinato dal livello applicato al workflow. Se i livelli sono diversi, l'impostazione applicata a livello di esecuzione sostituisce l'impostazione applicata a livello di workflow per questa esecuzione.
    • EXECUTION_HISTORY_BASIC: attiva la cronologia di esecuzione di base.
    • EXECUTION_HISTORY_ADVANCED: attiva la cronologia di esecuzione dettagliata, inclusi i valori delle variabili nell'ambito e il numero previsto di iterazioni.
  • ENV_KEY e ENV_VALUE: facoltativi. Una mappa di coppie chiave-valore variabile di ambiente, ad esempio { "month": "January", "day": "Monday"}. Per saperne di più, consulta Utilizza le variabili di ambiente.
  • SOURCE_CODE: la definizione del workflow minimizzata. Ad esempio: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
  • LOCATION: la regione in cui viene eseguito il deployment del workflow, ad esempio us-central1.
  • UPDATE_FIELDS: facoltativo. Un elenco di campi separati da virgole da aggiornare. Se non viene fornito, viene aggiornato l'intero workflow. Ad esempio description,callLogLevel.

Corpo JSON della richiesta:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "executionHistoryLevel": "EXECUTION_HISTORY_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 workflow

Puoi eliminare un workflow esistente. L'eliminazione di un workflow comporta anche l'eliminazione delle relative esecuzioni e l'annullamento di tutte le esecuzioni attive per il workflow.

Console

  1. Nella console Google Cloud , vai alla pagina Workflow.

    Vai a Workflow

  2. Fai clic sul nome del workflow che vuoi eliminare, quindi fai clic su Elimina.

  3. Al prompt per confermare l'eliminazione, inserisci il nome del workflow.

  4. Fai clic su Conferma.

gcloud

  1. Apri un terminale.

  2. Trova il nome del workflow che vuoi eliminare. Se non conosci il nome del workflow, inserisci il seguente comando per elencare i workflow in una località:

    gcloud workflows list --location=LOCATION
  3. Elimina un workflow utilizzando il comando gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME \
       --location=LOCATION

    Sostituisci quanto segue:

    • WORKFLOW_NAME: il nome del workflow.
    • LOCATION: l'ID o l'identificatore completo della località del workflow.

REST

Per eliminare un workflow con un nome specificato, utilizza il metodo projects.locations.workflows.delete.

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

  • WORKFLOW_NAME: il nome del workflow che vuoi eliminare.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment del workflow, 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