Entenda os fluxos de trabalho

A Workflows é uma plataforma de orquestração totalmente gerenciada que executa serviços em uma ordem definida por você: um fluxo de trabalho. Esses fluxos de trabalho podem combinar serviços, incluindo serviços personalizados hospedados no Cloud Run ou no Cloud Functions, serviços do Google Cloud como a Cloud Vision AI e o BigQuery, além de qualquer API baseada em HTTP.

Ao incorporar fluxos de trabalho a soluções, você pode tornar as dependências de serviço explícitas e observáveis de ponta a ponta. Um fluxo de trabalho que especifica um processo operacional, operacional ou de negócios fornece uma fonte de verdade ou narrativa canônica para o processo.

Os fluxos de trabalho não têm servidor, com escalonamento conforme necessário e nenhuma cobrança é feita enquanto está inativo. Como um fluxo de trabalho não tem dependências de código ou biblioteca, ele não requer patches de segurança. Depois de implantar um fluxo de trabalho, você espera que ele seja executado de maneira confiável, sem manutenção. Um fluxo de trabalho pode reter o estado, tentar novamente, pesquisar ou aguardar até um ano.

Os fluxos de trabalho estão em conformidade com estas certificações e padrões.

O diagrama a seguir mostra um exemplo de como usar fluxos de trabalho para orquestrar serviços:

Orquestração de serviços usando fluxos de trabalho

Principais casos de uso

Os fluxos de trabalho são compatíveis com muitos casos de uso. Por exemplo:

Orquestração de serviços Criar soluções combinando serviços: realize uma sequência de operações em vários sistemas, aguardando a conclusão de todas elas. Pode ser orientado por eventos. Exemplo:
  • Enviar arquivos recém-enviados para a IA do Cloud Vision e gravar tags no Firestore
  • Chame uma função do Cloud e envie os resultados para um serviço do Cloud Run
Jobs em lote Operar em vários itens: execute operações em um conjunto de itens ou dados em lote. Geralmente programado. Exemplo:
  • Enviar e-mails diários aos clientes
  • preparar e executar jobs do BigQuery ou de machine learning;
  • Gerar relatórios
Processos de negócios Automatize fluxos de trabalho de linhas de negócios: codifique as etapas de um processo empresarial, incluindo condições, ações e eventos humanos. Exemplo:
  • Rastrear um pedido desde a solicitação até o fulfillment
  • Automatizar solicitações de recursos com aprovações
Automação do processo de TI Execução gerenciada de operações de serviço: crie sequências de scripts com facilidade para operações de serviços do Google Cloud. Exemplo:
  • Provisionar projetos ou infraestrutura de novos locatários
  • Desativação de recursos de acordo com uma programação ou por meio de acionadores de evento

Principais conceitos

Um fluxo de trabalho consiste em uma série de etapas descritas usando a sintaxe de fluxos de trabalho e pode ser escrito em YAML ou JSON. Esta é a definição do fluxo de trabalho. Para uma explicação detalhada da sintaxe dos fluxos de trabalho, consulte a Referência de sintaxe.

Depois que um fluxo de trabalho é criado, ele é implantado, o que o prepara para execução. Saiba como criar e atualizar um fluxo de trabalho no Console do Google Cloud ou usando a CLI do Google Cloud.

Uma execução é uma única execução da lógica contida em uma definição de fluxo de trabalho. Um fluxo de trabalho que não foi executado não gera cobranças. Todas as execuções do fluxo de trabalho são independentes e o escalonamento rápido do produto permite um grande número de execuções simultâneas. É possível executar um fluxo de trabalho usando as bibliotecas de cliente, no Console do Cloud, na CLI do Google Cloud ou enviando uma solicitação para a API REST do Workflows. Para detalhes, consulte Executar um fluxo de trabalho.

Principais recursos

Controle de execução

Degraus
Para criar um fluxo de trabalho, defina as etapas e a ordem de execução desejadas usando a sintaxe do fluxo de trabalho. Cada fluxo de trabalho precisa ter pelo menos uma etapa. Por padrão, os fluxos de trabalho tratam as etapas como se estivessem em uma lista ordenada e as executam uma de cada vez até que todas as etapas sejam executadas. Para mais detalhes, consulte Etapas.
Condições
É possível usar um bloco switch como um mecanismo de seleção que permite que o valor de uma expressão controle o fluxo de uma execução de fluxo de trabalho. Para detalhes, consulte Condições.
Iteração
Use um loop for para iterar uma sequência de números ou por meio de uma coleção de dados, como uma lista ou um mapa. Para mais detalhes, consulte Iteração.
Subfluxos de trabalho
Um subfluxo de trabalho funciona de maneira semelhante a uma rotina ou função em uma linguagem de programação, permitindo encapsular uma etapa ou um conjunto de etapas que serão repetidas várias vezes. Para detalhes, consulte Subfluxos de trabalho.

Como acionar execuções

Manual
É possível gerenciar fluxos de trabalho no Console do Google Cloud ou na linha de comando usando a CLI do Google Cloud. A compatibilidade com a visualização durante a edição da sintaxe do fluxo de trabalho também está disponível no Console do Google Cloud.
Programática
As bibliotecas de cliente do Cloud para a API Workflows ou a API REST podem ser usadas para gerenciar fluxos de trabalho. Para detalhes, consulte APIs e referência de fluxos de trabalho.
Programado
Você pode usar o Cloud Scheduler para executar um fluxo de trabalho em uma programação específica, como toda segunda-feira às 9h ou a cada 15 minutos. Veja mais detalhes em Programar um fluxo de trabalho usando o Cloud Scheduler.
Argumentos de ambiente de execução
Os dados transmitidos no ambiente de execução podem ser acessados adicionando um campo params ao seu fluxo de trabalho principal (posicionado em um bloco main). O bloco main aceita um único argumento que seja qualquer tipo de dados JSON válido. O campo params nomeia a variável que o fluxo de trabalho usa para armazenar os dados que você transmite. Para detalhes, consulte Argumentos de tempo de execução.

Como conectar serviços

APIs HTTP
É possível definir uma etapa de fluxo de trabalho que faça uma chamada HTTP e atribua a resposta da chamada a uma variável. Por exemplo, é possível invocar um serviço do Google Cloud, como o Cloud Functions ou o Cloud Run, por meio de uma solicitação HTTP. Tanto solicitações HTTP como HTTPS são compatíveis. Para mais detalhes, consulte Fazer uma solicitação HTTP.
Conectores
Os fluxos de trabalho publicam conectores que podem ser usados para se conectar a outras APIs do Google Cloud em um fluxo de trabalho e para integrar seus fluxos de trabalho a esses produtos do Google Cloud. Eles simplificam a chamada de serviços porque processam a formatação das solicitações para você e fornecem métodos e argumentos para que você não precise conhecer os detalhes de uma API do Google Cloud. Veja os detalhes em Noções básicas sobre conectores.
Variáveis de ambiente e biblioteca padrão
A biblioteca padrão do Workflows e as variáveis de ambiente integradas permitem criar facilmente argumentos para serviços e respostas de processo.
A biblioteca padrão inclui módulos e funções usadas com frequência, como para conversão de formatos e tipos de dados. Não é necessário importar ou carregar bibliotecas em um fluxo de trabalho. As funções da biblioteca são criadas imediatamente. Para ver mais detalhes, consulte a Visão geral da biblioteca padrão.
É possível acessar informações do ambiente de um fluxo de trabalho (como o local ou o identificador do projeto) usando variáveis de ambiente integradas. As variáveis de ambiente integradas não precisam de declaração e estão disponíveis em todas as execuções de fluxo de trabalho. Para detalhes, consulte Variáveis de ambiente integradas.

Como lidar com erros

Use o Workflows #39 para tornar seus fluxos de trabalho resilientes e personalizar o comportamento deles quando uma falha ocorre. Use o processamento de exceções, como novas tentativas de chamadas HTTP automatizadas com esperas exponenciais, gerenciadores de erros personalizados e outros recursos avançados. Para detalhes, consulte Erros de fluxo de trabalho.

Aguardando

Os callbacks permitem que as execuções de fluxo de trabalho aguardem outro serviço para fazer uma solicitação ao endpoint de callback. Essa solicitação retoma a execução do fluxo de trabalho. Com os callbacks, é possível sinalizar para o fluxo de trabalho a ocorrência de um evento especificado e aguardar esse evento sem a necessidade de pesquisa. Para mais detalhes, consulte Espera usando callbacks.

É possível pausar a execução de um fluxo de trabalho adicionando uma etapa de suspensão à definição do fluxo de trabalho. Em seguida, use o sys.sleep para pesquisar dados em um determinado intervalo. Veja os detalhes em Aguardar usando enquetes.

Autenticação e controle de acesso

Como cada execução de fluxo de trabalho requer uma chamada autenticada, você pode reduzir o risco de chamadas acidentais ou mal-intencionadas usando os fluxos de trabalho. Também é possível simplificar as interações com outras APIs do Google Cloud usando contas de serviço baseadas em IAM e armazenar com segurança chaves e senhas para autenticação em APIs externas usando o Gerenciador de secrets. Para detalhes, consulte Autenticação e Controle de acesso.

Observabilidade

Os fluxos de trabalho geram automaticamente registros de execução de fluxo de trabalho no Cloud Logging. Também é possível controlar quando os registros são enviados para o Logging durante uma execução de fluxo de trabalho por meio de registros de chamadas ou personalizados. Para detalhes, consulte Enviar registros para o Cloud Logging.

As informações de registro de auditoria estão disponíveis por meio dos registros de auditoria do Cloud. Para detalhes, consulte Informações sobre a geração de registros de auditoria dos fluxos de trabalho.

Amostras de código

Você encontra muitas amostras de código de fluxos de trabalho úteis na página de amostras.

Próximas etapas