Criar e gerenciar fluxos de trabalho

Nesta página, mostramos como criar e gerenciar fluxos de trabalho no console do Google Cloud ou usando a Google Cloud CLI no terminal ou no Cloud Shell. Também é possível gerenciar fluxos de trabalho pela API Workflows.

Antes de começar

Algumas das etapas deste documento podem não funcionar corretamente se sua organização aplicar restrições ao ambiente do Google Cloud. Nesse caso, talvez não seja possível concluir tarefas como criar endereços IP públicos ou chaves de contas de serviço. Se você fizer uma solicitação que retorne um erro sobre restrições, veja como Desenvolver aplicativos em um ambiente restrito do Google Cloud.

Console

  1. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  2. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.

  3. Ative a API Workflows.

    Ative a API

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.

  3. Ative a API Workflows.

    gcloud services enable workflows.googleapis.com
    

API

Para gerenciar fluxos de trabalho usando a API Workflows, recomendamos usar as bibliotecas de cliente fornecidas pelo Google para chamar o serviço workflows.googleapis.com. Para mais informações, consulte API Workflows.

Crie uma conta de serviço

Workflows usam contas de serviço para conceder aos fluxos de trabalho acesso aos recursos do Google Cloud. Crie uma conta de serviço, caso ainda não tenha uma. Em seguida, conceda a ela os papéis necessários para gerenciar fluxos de trabalho e criar registros. Se você não especificar uma conta de serviço durante a criação do fluxo de trabalho, ele usará a conta de serviço padrão do Compute Engine como identidade. Saiba mais sobre como implantar um fluxo de trabalho com uma conta de serviço.

Observe que, para criar um recurso e anexar uma conta de serviço, você precisa de permissões para criar esse recurso e representar a conta de serviço que será anexada a ele. Para mais informações, consulte Permissões da conta de serviço.

Console

  1. No console do Google Cloud, acesse a página Contas de serviço.

    Acessar a página "Contas de serviço"

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

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

    O nome precisa ter entre 6 e 30 caracteres e pode conter caracteres alfanuméricos minúsculos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.

  4. Clique em Criar e continuar.

  5. Clique em Selecionar papel.

  6. Selecione os papéis a seguir e clique em Adicionar outro papel, conforme necessário:

    • Para criar, atualizar e executar fluxos de trabalho, selecione Fluxos de trabalho > Editor de fluxos de trabalho.
    • Para enviar registros para o Cloud Logging, selecione Logging > Gravador de registros.
  7. Clique em Concluído para terminar a criação da conta de serviço.

gcloud

  1. Crie a conta de serviço.

    gcloud iam service-accounts create NAME
  2. Atribua um papel para conceder permissões à conta de serviço.

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

    Substitua:

    • NAME: o nome da conta de serviço. Ele precisa ter entre 6 e 30 caracteres e pode conter letras minúsculas, caracteres alfanuméricos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.
    • PROJECT_ID: o ID do projeto.

    A sinalização --role é usada para autorizar a conta de serviço a acessar recursos.

Criar um fluxo de trabalho

Uma definição de fluxo de trabalho é composta por uma série de etapas descritas usando a sintaxe de fluxos de trabalho, que pode ser escrita em formato YAML ou JSON. Depois de criar um fluxo de trabalho, implante-o para que ele fique disponível para execução. A etapa de implantação também valida a execução do arquivo de origem. Isso falhará se o arquivo de origem não contiver uma definição de fluxo de trabalho válida.

A edição de arquivos YAML pode causar erros. É possível criar seu fluxo de trabalho usando um ambiente de desenvolvimento integrado ou editor de código-fonte de preferência e configurando o preenchimento automático e a validação de sintaxe para reduzir erros.

Console

  1. No console do Google Cloud, abra a página Workflows.

    Acessar fluxos de trabalho

  2. Clique em Criar.

  3. Insira um nome para o novo fluxo de trabalho, como myFirstWorkflow. Esse nome pode conter letras, números, sublinhados e hífens. É preciso começar com uma letra e terminar com um número ou uma letra

  4. Na lista Região, selecione uma região apropriada. Por exemplo, us-central1.

  5. Na lista de contas de serviço, selecione uma conta de serviço para seu fluxo de trabalho a ser usada para autenticação com outros serviços do Google Cloud. Recomendamos o uso de uma conta de serviço com os privilégios mínimos necessários para acessar os recursos necessários. Para mais informações, neste documento, consulte Criar uma conta de serviço.

    Recomendamos o uso de uma conta de serviço com os privilégios mínimos necessários para acessar os recursos necessários.

  6. Você ainda tem as opções a seguir:

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

      • Não especificado: nenhum nível de registro é especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho se aplica.
      • Somente erros: registra todas as exceções detectadas ou quando uma chamada é interrompida devido a uma exceção.
      • Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
      • Sem registros: nenhum registro de chamadas.
    2. Especifique uma chave do Cloud Key Management Service que o fluxo de trabalho precisa usar para a criptografia de dados: selecione Chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês). Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.

    3. Adicione um rótulo: os identificadores são pares de chave-valor que ajudam a organizar as instâncias do Google Cloud. Para mais informações, consulte Criar e gerenciar rótulos.

    4. Programe seu fluxo de trabalho: selecione Adicionar novo gatilho > Cloud Scheduler. Para mais informações, consulte Programar um fluxo de trabalho usando o Cloud Scheduler.

    5. Acione seu fluxo de trabalho em um evento ou uma mensagem do Pub/Sub: selecione Adicionar novo gatilho > Eventarc. Para mais informações, consulte Acionar um fluxo de trabalho com eventos ou mensagens do Pub/Sub.

  7. Clique em Next.

  8. No editor de fluxo de trabalho, insira a definição para seu fluxo de trabalho. Veja um exemplo de fluxo de trabalho.

  9. Clique em Implantar.

gcloud

  1. Verifique se o código-fonte do fluxo de trabalho está salvo em um arquivo YAML ou JSON, como MY_WORKFLOW.YAML ou MY_WORKFLOW.JSON. Veja um exemplo de fluxo de trabalho.

  2. Abra um terminal.

  3. Implante o fluxo de trabalho digitando o seguinte comando:

    gcloud workflows deploy MY_WORKFLOW \
        --source=YAML_OR_JSON_SOURCE_FILE \
        --call-log-level=CALL_LOGGING_LEVEL \
        --kms-key=KEY \
        --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM
    

    Substitua:

    • MY_WORKFLOW: o nome do fluxo de trabalho.

    • YAML_OR_JSON_SOURCE_FILE: o arquivo de origem a ser usado para o fluxo de trabalho. Por exemplo, myFirstWorkflow.yaml.

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

      • none: nenhum nível de registro é especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho se aplica.
      • log-errors-only: registra todas as exceções detectadas ou quando uma chamada é interrompida devido a uma exceção.
      • log-all-calls: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
      • log-none: sem registro de chamadas.
    • KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho precisa usar para criptografia de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: opcional. A conta de serviço que seu fluxo de trabalho usará para acessar outros serviços do Google Cloud. Recomendamos o uso de uma conta de serviço com os privilégios mínimos necessários para acessar os recursos necessários. Se deixado em branco, a conta de serviço padrão será usada. Para mais informações, neste documento, consulte Criar uma conta de serviço.

API

Chame o método projects.locations.workflows.create e use o parâmetro workflowId para especificar um código para o fluxo de trabalho.

Listar fluxos de trabalho

É possível listar fluxos de trabalho ou usar filtros para recuperar um determinado fluxo de trabalho.

Console

  1. No console do Google Cloud, abra a página Workflows.

    Acessar fluxos de trabalho

    Esta página lista seus fluxos de trabalho em todos os locais e inclui detalhes como nomes, regiões, revisões mais recentes e muito mais.

  2. Para filtrar 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.

    É possível selecionar uma única propriedade ou usar o operador lógico OR para adicionar mais propriedades.

  3. Para classificar seus fluxos de trabalho, ao lado de qualquer cabeçalho de coluna compatível, clique em Classificar.

gcloud

Liste fluxos de trabalho usando o comando gcloud workflows list:

gcloud workflows list --location=WORKFLOW_NAME

Substitua LOCATION pelo ID ou identificador totalmente qualificado do local dos seus fluxos de trabalho.

Esse comando lista seus fluxos de trabalho no local especificado e inclui detalhes como NAME, STATE, REVISION_ID e UPDATE_TIME de um fluxo de trabalho.

API

Chame o método projects.locations.workflows.list para listar fluxos de trabalho em um determinado projeto e local. Se preferir, chame o método projects.locations.workflows.get para recuperar os detalhes de um único fluxo de trabalho.

Atualizar um fluxo de trabalho

É possível atualizar um fluxo de trabalho atual para alterar a origem, a descrição, os rótulos, os acionadores, a chave de criptografia ou a conta de serviço associada. A atualização de um fluxo de trabalho não afeta as execuções em andamento. Somente as execuções futuras do fluxo de trabalho usarão a configuração atualizada.

Console

  1. No console do Google Cloud, abra a página Workflows.

    Acessar fluxos de trabalho

  2. Clique no nome do fluxo de trabalho que você quer atualizar. Não é possível alterar o nome do fluxo de trabalho.

    A página Detalhes do fluxo de trabalho é exibida.

  3. É possível editar o fluxo de trabalho das seguintes maneiras:

    • Para editar a fonte:

      1. Clique na guia Origem.
      2. Clique em Editar.
      3. Para salvar as alterações, clique em Save. O fluxo de trabalho atualizado é implantado.
    • Para editar a descrição, atualize a conta de serviço que o fluxo de trabalho usa para autenticação, adicione ou atualize um rótulo, o nível do registro de chamadas do fluxo de trabalho ou a chave de criptografia:

      1. Clique na guia Detalhes.
      2. Clique no apropriado.
      3. Se você estiver atualizando o nível de registro de chamadas, selecione uma das seguintes opções:
        • Não especificado: nenhum nível de registro é especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho se aplica.
        • Somente erros: registra todas as exceções detectadas ou quando uma chamada é interrompida devido a uma exceção.
        • Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
        • Sem registros: nenhum registro de chamadas.
      4. Para salvar as alterações, clique em Save. O fluxo de trabalho atualizado é implantado.
    • Para editar os campos anteriores ao mesmo tempo ou adicionar ou atualizar um acionador:

      1. Clique em Editar.
      2. Para editar a fonte, clique em Próxima.
      3. Para salvar as alterações e implantar o fluxo de trabalho atualizado, clique em Implantar.
  4. Se você quiser atualizar os papéis da conta de serviço, clique na guia Permissões.

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

      1. Encontre uma linha contendo o principal.
      2. Clique em Editar principal nessa linha.
      3. Clique em Adicionar outro papel ou clique em Excluir papel.
    2. Se você estiver adicionando um papel, na lista Selecionar um papel, selecione um papel apropriado.

    3. Para adicionar outro papel, clique em Adicionar outro papel.

    4. Clique em Save.

gcloud

  1. Abra um terminal.

  2. Encontre o nome do fluxo de trabalho que você quer atualizar. Se você não souber o nome dele, insira o seguinte comando para listar todos os fluxos de trabalho:

    gcloud workflows list
    
  3. Localize o arquivo YAML ou JSON em que a origem do fluxo de trabalho foi salva, como WORKFLOW_NAME.YAML ou WORKFLOW_NAME.JSON.

  4. É possível atualizar a origem, a conta de serviço, a descrição, os rótulos, o nível do registro de chamadas ou a chave de criptografia de um fluxo de trabalho usando o comando gcloud workflows deploy.

    É preciso especificar o nome do fluxo de trabalho que você quer atualizar e a origem dele. No entanto, o restante das sinalizações é opcional. Para remover uma chave de criptografia gerenciada pelo cliente, use a sinalização --clear-kms-key.

    gcloud workflows deploy WORKFLOW_NAME \
        --source=YAML_OR_JSON_SOURCE_FILE \
        --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM \
        --call-log-level=CALL_LOG_LEVEL \
        --labels=KEY=VALUE... \
        --description='WORKFLOW_DESCRIPTION'
    

    Substitua:

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

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

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: opcional. A conta de serviço que seu fluxo de trabalho usará para acessar outros serviços do Google Cloud. Se você quiser atualizar os papéis da sua conta de serviço, consulte Conceder uma permissão de fluxo de trabalho para acessar recursos do Google Cloud e Gerenciar acesso a projetos, pastas e organizações.

    • CALL_LOG_LEVEL: opcional. Nível de registro de chamadas a ser aplicado ao fluxo de trabalho. Precisa ser um dos seguintes:

      • none: nenhum nível de registro é especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho se aplica.
      • log-errors-only: registra todas as exceções detectadas ou quando uma chamada é interrompida devido a uma exceção.
      • log-all-calls: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
      • log-none: sem registro de chamadas.
    • KEY=VALUE: opcional. KEY=VALUE de rótulos, em uma lista separada por vírgulas, se você adicionar mais de um. Os rótulos ajudam a organizar as instâncias do Google Cloud. Para mais informações, consulte Criar e gerenciar rótulos.

    • WORKFLOW_DESCRIPTION: opcional. A descrição que você quer dar ao fluxo de trabalho.

API

Chame o método projects.locations.workflows.patch para atualizar um fluxo de trabalho atual.

Sempre que você atualiza um fluxo de trabalho, o versionID é atualizado. O versionID consiste em duas partes, separadas por hífen:

  • Um número, começando em um, que é incrementado sempre que você atualiza um fluxo de trabalho.

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

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

Excluir um fluxo de trabalho

Você pode excluir um fluxo de trabalho existente. A exclusão de um fluxo de trabalho também exclui as execuções e cancela todas as execuções ativas.

Console

  1. No console do Google Cloud, abra a página Workflows.

    Acessar fluxos de trabalho

  2. Clique no nome do fluxo de trabalho que você quer excluir e clique em Excluir.

  3. No prompt para confirmar a exclusão, digite o nome do fluxo de trabalho.

  4. Clique em Confirmar.

gcloud

  1. Abra um terminal.

  2. Encontre o nome do fluxo de trabalho que você quer excluir. Se você não souber o nome dele, insira o seguinte comando para listar todos os fluxos de trabalho:

    gcloud workflows list
    
  3. Exclua um fluxo de trabalho usando o comando gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME
    

    Substitua WORKFLOW_NAME pelo nome do fluxo de trabalho.

API

Chame o método projects.locations.workflows.delete para excluir um fluxo de trabalho com um nome especificado.

A seguir