Crie e faça a gestão de fluxos de trabalho

Pode criar e gerir fluxos de trabalho na Google Cloud consola ou através da Google Cloud CLI no seu terminal ou Cloud Shell. Também pode gerir fluxos de trabalho através da API Workflows.

Antes de começar

As restrições de segurança definidas pela sua organização podem impedir a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito.

Consola

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Enable the Workflows API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  7. Enable the Workflows API.

    Enable the API

  8. gcloud

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

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

    4. Enable the Workflows API.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

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

    7. Enable the Workflows API.

      Enable the API

    8. REST

      Para gerir fluxos de trabalho através da API Workflows, recomendamos que use as bibliotecas cliente fornecidas pela Google para chamar o serviço workflows.googleapis.com. Para mais informações, consulte a API Workflows.

Criar uma conta de serviço

Uma conta de serviço representa a identidade de um fluxo de trabalho e determina as autorizações que o fluxo de trabalho tem e os recursos aos quais pode aceder. Google Cloud Crie uma conta de serviço, se ainda não tiver uma. Em seguida, conceda-lhe as funções necessárias para gerir fluxos de trabalho e criar registos.

Se não especificar uma conta de serviço durante a criação do fluxo de trabalho, o fluxo de trabalho usa a conta de serviço predefinida do Compute Engine para a respetiva identidade. Para mais informações, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.

Recomendamos vivamente que use uma conta de serviço com o menor número de privilégios necessários para aceder aos recursos necessários.

Tenha em atenção que, para criar um recurso e anexar uma conta de serviço, precisa de autorizações para criar esse recurso e para usar a identidade da conta de serviço que vai anexar ao recurso. Para mais informações, consulte o artigo Autorizações da conta de serviço.

Consola

  1. Na Google Cloud consola, aceda à página Contas de serviço.

    Aceda a Contas de serviço

  2. Selecione um projeto e, de seguida, clique em Criar conta de serviço.

  3. No campo Nome da conta de serviço, introduza um nome.

    O nome tem de ter entre 6 e 30 carateres e pode conter carateres alfanuméricos em minúsculas e traços. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.

  4. Clique em Criar e continuar.

  5. Clique em Selecionar uma função.

  6. Selecione as seguintes funções e clique em Adicionar outra função, conforme necessário:

    1. Para criar, atualizar e executar fluxos de trabalho, selecione Fluxos de trabalho > Editor de fluxos de trabalho.
    2. Para enviar registos para o Cloud Logging, selecione Logging > Gravador de registos.
  7. Clique em Concluído para terminar de criar a conta de serviço.

gcloud

  1. Crie a conta de serviço.

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. Conceda autorizações à conta de serviço atribuindo funções.

    1. Para criar, atualizar e executar fluxos de trabalho, atribua a função 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. Para enviar registos para o Cloud Logging, atribua a função roles/logging.logWriter:

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

    Substitua o seguinte:

    • SERVICE_ACCOUNT: o nome da conta de serviço. Tem de ter entre 6 e 30 carateres e pode conter carateres alfanuméricos em minúsculas e traços. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.

    • PROJECT_ID: o ID do seu projeto.

REST

Pode usar o método serviceAccounts.create para criar uma conta de serviço. Para mais informações, consulte o artigo Crie contas de serviço.

Pode conceder várias funções de forma programática modificando e definindo a política de autorização para um recurso através do método setIamPolicy. Para mais informações, consulte o artigo Conceda ou revogue várias funções através de programação.

Crie um fluxo de trabalho

Uma definição de fluxo de trabalho é composta por uma série de passos descritos através da sintaxe do Workflows, que pode ser escrita no formato YAML ou JSON. Depois de definir um fluxo de trabalho, implementa-o para o tornar disponível para execução. O passo de implementação também valida se é possível executar o ficheiro de origem. Falha se o ficheiro de origem não contiver uma definição de fluxo de trabalho válida.

A edição de ficheiros YAML pode ser propensa a erros. Pode criar o seu fluxo de trabalho usando um IDE ou um editor de código fonte preferencial e configurando o preenchimento automático e a validação de sintaxe para reduzir os erros.

Consola

  1. Na Google Cloud consola, aceda à página Fluxos de trabalho.

    Aceda a Fluxos de trabalho

  2. Clique em Criar.

  3. Introduza um nome para o fluxo de trabalho, como myFirstWorkflow. O nome pode conter letras, números, sublinhados e hífenes. Tem de começar com uma letra e terminar com um número ou uma letra.

  4. Opcionalmente, adicione uma descrição do fluxo de trabalho.

  5. Na lista Região, selecione uma localização adequada para implementar o fluxo de trabalho. Por exemplo, us-central1.

  6. Na lista Conta de serviço, selecione uma conta de serviço que o seu fluxo de trabalho vai usar para aceder a outros Google Cloud serviços. Para mais informações, neste documento, consulte a secção Crie uma conta de serviço.

  7. Opcionalmente, faça qualquer uma das seguintes ações:

    1. Especifique o nível de registo de chamadas que quer aplicar à definição do fluxo de trabalho. Na lista Nível do registo de chamadas, selecione uma das seguintes opções:

      • Não especificado: não é especificado nenhum nível de registo. Esta é a predefinição. Um nível de registo de execução tem precedência sobre qualquer nível de registo do fluxo de trabalho, a menos que o nível de registo de execução não seja especificado (predefinição). Nesse caso, aplica-se o nível de registo do fluxo de trabalho.
      • Apenas erros: registe todas as exceções capturadas ou quando uma chamada é interrompida devido a uma exceção.
      • Todas as chamadas: registe todas as chamadas para subfluxos de trabalho ou funções da biblioteca e os respetivos resultados.
      • Sem registos: sem registo de chamadas.
    2. Especifique o nível do histórico de execução que quer aplicar à definição do fluxo de trabalho. Na lista Histórico de execuções, selecione uma das seguintes opções:

      • Básico: ative o histórico de execução básico. Esta é a predefinição.
      • Detalhado: ative o histórico de execução detalhado, incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
    3. Especifique uma chave do Cloud Key Management Service que o fluxo de trabalho deve usar para a encriptação de dados: selecione Chave de encriptação gerida pelo cliente (CMEK). Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.

    4. Especifique uma variável de ambiente acessível pelo seu fluxo de trabalho em tempo de execução. Para mais informações, consulte o artigo Use variáveis de ambiente.

    5. Adicione uma etiqueta: as etiquetas são pares de chave-valor que ajudam a organizar as suas instâncias.Google Cloud Para mais informações, consulte o artigo O que são etiquetas? As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.

    6. Agende o fluxo de trabalho: selecione Adicionar novo acionador > Cloud Scheduler. Para mais informações, consulte o artigo Agende um fluxo de trabalho com o Cloud Scheduler.

    7. Acione o fluxo de trabalho através de um evento ou uma mensagem do Pub/Sub: selecione Adicionar novo acionador > Eventarc. Para mais informações, consulte o artigo Acione um fluxo de trabalho com eventos ou mensagens do Pub/Sub.

  8. Clicar em Seguinte.

  9. No editor de fluxos de trabalho, introduza a definição do seu fluxo de trabalho. Veja um exemplo de fluxo de trabalho.

  10. Clique em Implementar.

gcloud

  1. Certifique-se de que o código-fonte do fluxo de trabalho está guardado num ficheiro YAML ou JSON, como MY_WORKFLOW.YAML ou MY_WORKFLOW.JSON. Veja um exemplo de fluxo de trabalho.

  2. Abra um terminal.

  3. Pode criar e implementar um fluxo de trabalho com o 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.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    Substitua o seguinte:

    • WORKFLOW_NAME: o nome do seu fluxo de trabalho, por exemplo, myFirstWorkflow. O nome pode conter letras, números, sublinhados e hífenes. Tem de começar com uma letra e terminar com um número ou uma letra.

    • LOCATION: a região onde implementar o fluxo de trabalho; por exemplo, us-central1.

    • CALL_LOGGING_LEVEL: opcional. Nível de registo de chamadas a aplicar durante a execução. Pode ser um dos seguintes:

      • none: não é especificado nenhum nível de registo. Esta é a predefinição. Um nível de registo de execução tem precedência sobre qualquer nível de registo do fluxo de trabalho, a menos que o nível de registo de execução não esteja especificado (predefinição). Nesse caso, aplica-se o nível de registo do fluxo de trabalho.
      • log-errors-only: registar todas as exceções capturadas; ou quando uma chamada é parada devido a uma exceção.
      • log-all-calls: registar todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respetivos resultados.
      • log-none: registo de chamadas inexistente.
    • DESCRIPTION: opcional. Uma descrição do fluxo de trabalho.

    • EXECUTION_HISTORY_LEVEL: opcional. Nível do histórico de execuções a aplicar durante a execução. Pode ser um dos seguintes:

      • none: não é especificado nenhum nível do histórico de execuções. Esta é a predefinição. Se não for especificado um nível do histórico de execução para uma execução, este é determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a definição aplicada ao nível da execução substitui a definição aplicada ao nível do fluxo de trabalho para esta execução.
      • execution-history-basic: ativar o histórico de execuções básico.
      • execution-history-detailed: ative o histórico de execução detalhado, incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
    • LABEL_KEY=LABEL_VALUE: opcional. Lista de pares de chave-valor de etiquetas que ajudam a organizar as suas instâncias; por exemplo, name=wrench.Google Cloud Para mais informações, consulte O que são etiquetas? As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.

    • ENV_KEY=ENV_VALUE: opcional. Lista de pares de chave-valor de variáveis de ambiente; por exemplo, MONTH=January. Para mais informações, consulte o artigo Use variáveis de ambiente.

    • ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho deve usar para a encriptação de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. A conta de serviço que o seu fluxo de trabalho vai usar para aceder a outros serviços doGoogle Cloud . Para mais informações, neste documento, consulte Crie uma conta de serviço.

    • YAML_OR_JSON_SOURCE_FILE: o ficheiro de origem para a definição do fluxo de trabalho. Por exemplo: myFirstWorkflow.yaml.

REST

Para criar um novo fluxo de trabalho com um nome especificado, use o método projects.locations.workflows.create e use o parâmetro de consulta workflowId para especificar um ID para o fluxo de trabalho.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • WORKFLOW_NAME: o nome do seu fluxo de trabalho, por exemplo, myFirstWorkflow. O nome pode conter letras, números, sublinhados e hífenes. Tem de começar com uma letra e terminar com um número ou uma letra.
  • DESCRIPTION: opcional. Uma descrição do seu fluxo de trabalho. Não pode ter mais de 1000 carateres Unicode.
  • LABEL_KEY e LABEL_VALUE: opcional. Um mapa de pares de chave e valor de etiquetas que ajudam a organizar as suas Google Cloud instâncias. Por exemplo: {"name": "wrench", "mass": "1kg", "count": "3"} Para mais informações, consulte O que são etiquetas? As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. A conta de serviço que o seu fluxo de trabalho vai usar para aceder a outros serviços do Google Cloud . O ID do projeto é o seu Google Cloud ID do projeto. Para mais informações, consulte a secção Crie uma conta de serviço neste documento.
  • ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho deve usar para a encriptação de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.
  • CALL_LOGGING_LEVEL: opcional. O nível de registo de chamadas a aplicar durante a execução. Por predefinição, não é especificado nenhum nível de registo e, em alternativa, é aplicado o nível de registo do fluxo de trabalho. Para mais informações, consulte o artigo Envie registos para o registo. Uma das seguintes opções:
    • CALL_LOG_LEVEL_UNSPECIFIED: não é especificado nenhum nível de registo e, em alternativa, é aplicado o nível de registo do fluxo de trabalho. Esta é a predefinição. Caso contrário, aplica-se o nível de registo de execução e tem precedência sobre o nível de registo do fluxo de trabalho.
    • LOG_ERRORS_ONLY: registar todas as exceções capturadas; ou quando uma chamada é parada devido a uma exceção.
    • LOG_ALL_CALLS: registar todas as chamadas para subfluxos de trabalho ou funções da biblioteca e os respetivos resultados.
    • LOG_NONE: registo de chamadas inexistente.
  • EXECUTION_HISTORY_LEVEL: opcional. O nível do histórico de execuções a aplicar durante a execução. Para mais informações, consulte o artigo Ver histórico dos passos de execução. Uma das seguintes opções:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED: não foi especificado nenhum nível do histórico de execuções. Esta é a predefinição. Se não for especificado um nível do histórico de execução para uma execução, este é determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a definição aplicada ao nível da execução substitui a definição aplicada ao nível do fluxo de trabalho para esta execução.
    • EXECUTION_HISTORY_BASIC: ativar o histórico de execuções básico.
    • EXECUTION_HISTORY_ADVANCED: ativar o histórico de execução detalhado incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
  • ENV_KEY e ENV_VALUE: opcional. Um mapa de pares de chave-valor de variáveis de ambiente; por exemplo, { "month": "January", "day": "Monday"}. Para mais informações, consulte o artigo Use variáveis de ambiente.
  • SOURCE_CODE: a definição do fluxo de trabalho. Tem de usar carateres de escape para novas linhas em YAML. Por exemplo: main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello

    Tem de usar carateres de escape para as aspas no JSON. Por exemplo: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}

  • LOCATION: a região na qual o fluxo de trabalho vai ser implementado. Por exemplo, us-central1.

Corpo JSON do pedido:

{
  "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",
  "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de 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": "create",
    "apiVersion": "v1"
  },
  "done": false
}

Se o valor de "done" for false, a operação ainda está em curso.

Listar fluxos de trabalho

Pode listar fluxos de trabalho ou usar filtros para obter um fluxo de trabalho específico.

Consola

  1. Na Google Cloud consola, aceda à página Fluxos de trabalho.

    Aceda a Fluxos de trabalho

    Esta página apresenta os seus fluxos de trabalho em todas as localizações e inclui detalhes como nomes, regiões, revisões mais recentes e muito mais.

  2. Para filtrar os seus fluxos de trabalho:

    1. Clique em Filtrar ou no campo Filtrar fluxos de trabalho.
    2. Na lista Propriedades, selecione uma opção para filtrar os fluxos de trabalho.

    Pode selecionar uma única propriedade ou usar o operador lógico OR para adicionar mais propriedades.

  3. Para ordenar os fluxos de trabalho, junto ao título de qualquer coluna suportada, clique em Ordenar.

gcloud

Apresente uma lista de fluxos de trabalho com o comando gcloud workflows list:

gcloud workflows list --location=LOCATION

Substitua LOCATION pelo ID ou identificador totalmente qualificado da localização do seu fluxo de trabalho.

Este comando lista os seus fluxos de trabalho na localização especificada e inclui detalhes como o NAME, o STATE, o REVISION_ID e o UPDATE_TIME de um fluxo de trabalho.

REST

Para listar fluxos de trabalho num determinado projeto e localização, use o método projects.locations.workflows.list.

Em alternativa, para obter os detalhes de um único fluxo de trabalho, use o método projects.locations.workflows.get.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual os fluxos de trabalho são implementados. Por exemplo, us-central1.

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém instâncias de Workflow e a resposta deve ser semelhante à seguinte:

{
  "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
  ]
}

Atualize um fluxo de trabalho

Pode atualizar um fluxo de trabalho existente. Tem de especificar o nome do fluxo de trabalho que quer atualizar e a respetiva origem. Tenha em atenção que não pode alterar o nome nem a localização de um fluxo de trabalho.

A atualização de um fluxo de trabalho não afeta as execuções em curso. Apenas as execuções futuras do fluxo de trabalho vão usar a configuração atualizada.

Sempre que atualiza um fluxo de trabalho, a respetiva versionID é atualizada. O versionID é composto por duas partes, separadas por um hífen:

  • Um número, a começar em um, que aumenta sempre que atualiza um fluxo de trabalho.

  • Uma string alfanumérica aleatória de três carateres.

Por exemplo, 000001-27f indica a versão inicial de um fluxo de trabalho e 000002-d52 indica um fluxo de trabalho que foi atualizado uma vez.

Consola

  1. Na Google Cloud consola, aceda à página Fluxos de trabalho.

    Aceda a Fluxos de trabalho

  2. Clique no nome do fluxo de trabalho que quer atualizar. Tenha em atenção que não pode alterar o nome do fluxo de trabalho.

    É apresentada a página Detalhes do fluxo de trabalho.

  3. Pode editar o fluxo de trabalho das seguintes formas:

    • Para editar a origem:

      1. Clique no separador Origem.
      2. Clique em Edit.
      3. Para guardar as alterações, clique em Guardar. O fluxo de trabalho atualizado é implementado.
    • Para atualizar a descrição, a conta de serviço que o fluxo de trabalho usa para autenticação, o nível do registo de chamadas, as variáveis de ambiente, as etiquetas ou a chave de encriptação:

      1. Clique no separador Detalhes.
      2. Clique no ícone adequado.
      3. Se estiver a atualizar o nível do registo de chamadas, selecione uma das seguintes opções:
        • Não especificado: não é especificado nenhum nível de registo. Esta é a predefinição. Um nível de registo de execução tem precedência sobre qualquer nível de registo do fluxo de trabalho, a menos que o nível de registo de execução não seja especificado (predefinição). Nesse caso, aplica-se o nível de registo do fluxo de trabalho.
        • Apenas erros: registe todas as exceções capturadas ou quando uma chamada é interrompida devido a uma exceção.
        • Todas as chamadas: registe todas as chamadas para subfluxos de trabalho ou funções da biblioteca e os respetivos resultados.
        • Sem registos: sem registo de chamadas.
      4. Se estiver a atualizar o nível do histórico de execução, selecione uma das seguintes opções:
        • Básico: ative o histórico de execução básico. Esta é a predefinição.
        • Detalhado: ative o histórico de execução detalhado, incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
      5. Se atualizar uma etiqueta existente ou adicionar uma nova, a nova etiqueta pode demorar até 10 minutos a entrar em vigor. As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.
      6. Para guardar as alterações, clique em Guardar. O fluxo de trabalho atualizado é implementado.
    • Para editar os campos anteriores ao mesmo tempo ou adicionar ou atualizar um acionador:

      1. Clique em Editar.
      2. Para editar a origem, clique em Seguinte.
      3. Para guardar as alterações e implementar o fluxo de trabalho atualizado, clique em Implementar.
  4. Se quiser atualizar as funções da sua conta de serviço, clique no separador Autorizações.

    1. Os principais são utilizadores, grupos, domínios ou contas de serviço. Para atualizar um principal existente:

      1. Encontre uma linha que contenha o principal.
      2. Clique em Editar responsável nessa linha.
      3. Clique em Adicionar outra função ou clique em Eliminar função.
    2. Se estiver a adicionar uma função, na lista Selecionar uma função, selecione uma função adequada.

    3. Para adicionar outra função, clique em Adicionar outra função.

    4. Clique em Guardar.

gcloud

  1. Abra um terminal.

  2. Procure o nome do fluxo de trabalho que quer atualizar. Se não souber o nome do fluxo de trabalho, pode introduzir o seguinte comando para apresentar uma lista de todos os seus fluxos de trabalho:

    gcloud workflows list
  3. Localize o ficheiro YAML ou JSON onde a origem do fluxo de trabalho está guardada, como WORKFLOW_NAME.YAML ou WORKFLOW_NAME.JSON.

  4. Pode atualizar um fluxo de trabalho existente para alterar a respetiva origem, descrição, etiquetas, variáveis de ambiente, o nível do registo de chamadas, a chave de encriptação ou a conta de serviço associada através do comando gcloud workflows deploy.

    Tem de especificar o nome do fluxo de trabalho que quer atualizar e a respetiva origem. No entanto, as restantes flags são opcionais. Para remover uma chave de encriptação gerida pelo cliente, use a flag --clear-kms-key.

    gcloud workflows deploy WORKFLOW_NAME \
        --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.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    Substitua o seguinte:

    • WORKFLOW_NAME: obrigatório. O nome do seu fluxo de trabalho.

    • CALL_LOGGING_LEVEL: opcional. Nível de registo de chamadas a aplicar durante a execução. Pode ser um dos seguintes:

      • none: não é especificado nenhum nível de registo. Esta é a predefinição. Um nível de registo de execução tem precedência sobre qualquer nível de registo do fluxo de trabalho, a menos que o nível de registo de execução não esteja especificado (predefinição). Nesse caso, aplica-se o nível de registo do fluxo de trabalho.
      • log-errors-only: registar todas as exceções capturadas; ou quando uma chamada é parada devido a uma exceção.
      • log-all-calls: registar todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respetivos resultados.
      • log-none: registo de chamadas inexistente.
    • DESCRIPTION: opcional. Uma descrição do fluxo de trabalho.

    • EXECUTION_HISTORY_LEVEL: opcional. Nível do histórico de execuções a aplicar durante a execução. Pode ser um dos seguintes:

      • none: não é especificado nenhum nível do histórico de execuções. Esta é a predefinição. Se não for especificado um nível do histórico de execução para uma execução, este é determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a definição aplicada ao nível da execução substitui a definição aplicada ao nível do fluxo de trabalho para esta execução.
      • execution-history-basic: ativar o histórico de execuções básico.
      • execution-history-detailed: ative o histórico de execução detalhado, incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
    • LABEL_KEY=LABEL_VALUE: opcional. Lista de pares de chave-valor de etiquetas que ajudam a organizar as suas instâncias; por exemplo, name=wrench.Google Cloud Para mais informações, consulte O que são etiquetas? As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.

    • ENV_KEY=ENV_VALUE: opcional. Lista de pares de chave-valor de variáveis de ambiente; por exemplo, MONTH=January. Para mais informações, consulte o artigo Use variáveis de ambiente.

    • ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho deve usar para a encriptação de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. A conta de serviço que o seu fluxo de trabalho vai usar para aceder a outros serviços doGoogle Cloud . Se quiser atualizar as funções da sua conta de serviço, consulte os artigos Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos e Faça a gestão do acesso a projetos, pastas e organizações.

    • YAML_OR_JSON_SOURCE_FILE: obrigatório. O ficheiro de origem do fluxo de trabalho no formato YAML ou JSON. Por exemplo: myFirstWorkflow.yaml.

REST

Para atualizar um fluxo de trabalho existente, use o método projects.locations.workflows.patch e, opcionalmente, use o parâmetro de consulta updateMask para especificar uma lista de campos a atualizar.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • WORKFLOW_NAME: o nome do seu fluxo de trabalho, por exemplo, myFirstWorkflow.
  • DESCRIPTION: opcional. Uma descrição do seu fluxo de trabalho. Não pode ter mais de 1000 carateres Unicode.
  • LABEL_KEY e LABEL_VALUE: opcional. Um mapa de pares de chave e valor de etiquetas que ajudam a organizar as suas Google Cloud instâncias. Por exemplo: {"name": "wrench", "mass": "1kg", "count": "3"} Para mais informações, consulte O que são etiquetas? As etiquetas do fluxo de trabalho são herdadas pelas execuções do fluxo de trabalho. Para ver as etiquetas de execução, use o método workflows.executions.list para listar e filtrar as execuções do fluxo de trabalho.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: opcional. A conta de serviço que o seu fluxo de trabalho vai usar para aceder a outros serviços do Google Cloud . O ID do projeto é o seu Google Cloud ID do projeto. Para mais informações, consulte a secção Crie uma conta de serviço neste documento.
  • ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho deve usar para a encriptação de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.
  • CALL_LOGGING_LEVEL: opcional. O nível de registo de chamadas a aplicar durante a execução. Por predefinição, não é especificado nenhum nível de registo e, em alternativa, é aplicado o nível de registo do fluxo de trabalho. Para mais informações, consulte o artigo Envie registos para o registo. Uma das seguintes opções:
    • CALL_LOG_LEVEL_UNSPECIFIED: não é especificado nenhum nível de registo e, em alternativa, é aplicado o nível de registo do fluxo de trabalho. Esta é a predefinição. Caso contrário, aplica-se o nível de registo de execução e tem precedência sobre o nível de registo do fluxo de trabalho.
    • LOG_ERRORS_ONLY: registar todas as exceções capturadas; ou quando uma chamada é parada devido a uma exceção.
    • LOG_ALL_CALLS: registar todas as chamadas para subfluxos de trabalho ou funções da biblioteca e os respetivos resultados.
    • LOG_NONE: registo de chamadas inexistente.
  • EXECUTION_HISTORY_LEVEL: opcional. O nível do histórico de execuções a aplicar durante a execução. Para mais informações, consulte a secção Ver histórico dos passos de execução. Uma das seguintes opções:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED: não foi especificado nenhum nível do histórico de execuções. Esta é a predefinição. Se não for especificado um nível do histórico de execução para uma execução, este é determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a definição aplicada ao nível da execução substitui a definição aplicada ao nível do fluxo de trabalho para esta execução.
    • EXECUTION_HISTORY_BASIC: ativar o histórico de execuções básico.
    • EXECUTION_HISTORY_ADVANCED: ativar o histórico de execução detalhado incluindo todos os valores das variáveis no âmbito e o número esperado de iterações.
  • ENV_KEY e ENV_VALUE: opcional. Um mapa de pares de chave-valor de variáveis de ambiente; por exemplo, { "month": "January", "day": "Monday"}. Para mais informações, consulte o artigo Use variáveis de ambiente.
  • SOURCE_CODE: a definição do fluxo de trabalho minimizada. Por exemplo: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
  • LOCATION: a região na qual o fluxo de trabalho é implementado, por exemplo, us-central1.
  • UPDATE_FIELDS: opcional. Uma lista separada por vírgulas de campos a atualizar. Se não for fornecido, todo o fluxo de trabalho é atualizado. Por exemplo, description,callLogLevel.

Corpo JSON do pedido:

{
  "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",
  "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de 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": "update",
    "apiVersion": "v1"
  },
  "done": false
}

Se o valor de "done" for false, a operação ainda está em curso.

Elimine um fluxo de trabalho

Pode eliminar um fluxo de trabalho existente. A eliminação de um fluxo de trabalho também elimina as respetivas execuções e cancela todas as execuções ativas do fluxo de trabalho.

Consola

  1. Na Google Cloud consola, aceda à página Fluxos de trabalho.

    Aceda a Fluxos de trabalho

  2. Clique no nome do fluxo de trabalho que quer eliminar e, de seguida, clique em Eliminar.

  3. No comando para confirmar a eliminação, introduza o nome do fluxo de trabalho.

  4. Clique em Confirm.

gcloud

  1. Abra um terminal.

  2. Procure o nome do fluxo de trabalho que quer eliminar. Se não souber o nome do fluxo de trabalho, pode introduzir o seguinte comando para apresentar uma lista de todos os seus fluxos de trabalho:

    gcloud workflows list
  3. Elimine um fluxo de trabalho com o comando gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME

    Substitua WORKFLOW_NAME pelo nome do seu fluxo de trabalho.

REST

Para eliminar um fluxo de trabalho com um nome especificado, use o método projects.locations.workflows.delete.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • WORKFLOW_NAME: o nome do fluxo de trabalho que quer eliminar.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • LOCATION: a região na qual o fluxo de trabalho é implementado. Por exemplo, us-central1.

Para enviar o seu pedido, expanda uma destas opções:

Se for bem-sucedido, o corpo da resposta contém uma instância de 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 o valor de "done" for false, a operação ainda está em curso.

O que se segue?