O Workflows é uma plataforma de orquestração totalmente gerenciada que executa serviços na ordem que você define: um fluxo de trabalho. Esses fluxos de trabalho podem combinar serviços, incluindo serviços personalizados hospedados no Cloud Run ou nas funções do Cloud Run, Google Cloud serviços como o Cloud Vision AI e o BigQuery, além de qualquer API baseada em HTTP.
Ao incorporar fluxos de trabalho em soluções, é possível tornar as dependências de serviço explícitas e observáveis de ponta a ponta. Um fluxo de trabalho que especifica um aplicativo ou processo 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 e são escalonados verticalmente conforme necessário. Nenhuma cobrança é feita enquanto eles estão inativos. 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, ele é executado de maneira confiável sem manutenção. Um fluxo de trabalho pode reter o estado, tentar novamente, pesquisar ou aguardar até um ano.
O Workflows está em conformidade com estas certificações e padrões.
O diagrama a seguir mostra um exemplo de como usar o Workflows para orquestrar serviços:
Principais casos de uso
O Workflows é compatível 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. Por exemplo:
|
jobs em lote | Operar em vários itens: execute operações em um conjunto de itens ou
dados em lote. Costuma ser programado. Por exemplo:
|
Processos de negócios | Automatizar fluxos de trabalho de linhas de negócios: codifique as etapas de um
processo empresarial, incluindo condições, ações e eventos
human-in-the-loop. Por exemplo:
|
Automação de processos de TI | Execução gerenciada de operações de serviço: crie sequências de scripts com facilidade
para operações de serviço do Google Cloud . Por exemplo:
|
Principais conceitos
Um fluxo de trabalho é uma série de etapas descritas usando a sintaxe do Workflows e pode ser gravada em YAML ou JSON. Essa é a definição de um fluxo de trabalho. Para uma explicação detalhada da sintaxe do Workflows, consulte a Referência de sintaxe.
Depois que um fluxo de trabalho é criado, ele é implantado, ficando pronto para execução. Saiba como criar e atualizar um fluxo de trabalho no console do Google Cloud ou usando a Google Cloud CLI. Também é 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.
Uma execução é uma execução única da lógica contida na definição de um
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, o console Google Cloud , a Google Cloud CLI
ou enviando uma solicitação HTTP POST
para o URL de invocação do fluxo de trabalho usando
a API REST do Workflows. Para detalhes, consulte
Executar um fluxo de trabalho.
Regionalidade
O Workflows é um serviço regional, e os fluxos de trabalho são recursos regionais sujeitos à restrição de locais de recursos. É possível usar políticas de local de recursos para controlar a residência de dados.
Quando um fluxo de trabalho é implantado em uma região específica, ele é executado apenas nessa região. No entanto, se o fluxo de trabalho fizer solicitações HTTP ou usar conectores, a chamada HTTP poderá não ser originada da mesma região.
Principais recursos
Confira a seguir algumas das principais funcionalidades do Workflows.
Controle de execução
- Etapas
- Para criar um fluxo de trabalho, defina as etapas e a ordem de execução necessárias usando a sintaxe do Workflows. Cada fluxo de trabalho precisa ter pelo menos uma etapa. Por padrão, o Workflows trata as etapas como se estivessem em uma lista ordenada e as executa uma de cada vez até que todas 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 da execução de um fluxo de trabalho. Para detalhes, consulte Condições. - Iteração
- Use uma repetição
for
para iterar uma sequência de números ou uma coleção de dados, como uma lista ou um mapa. Para mais detalhes, consulte Iteração. - Etapas paralelas
- Você pode usar uma etapa
parallel
para definir uma parte do fluxo de trabalho (uma ramificação ou um loop) que pode ser executada simultaneamente. Para mais detalhes, consulte Etapas paralelas. - 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 pelo fluxo de trabalho. Para detalhes, consulte Subfluxos de trabalho.
Como acionar execuções
- Manual
- É possível gerenciar fluxos de trabalho no Google Cloud console ou na linha de comando usando a Google Cloud CLI. A compatibilidade com a visualização durante a edição da sintaxe do Workflows também está disponível no console Google Cloud .
- Programático
- 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 do Workflows.
- Programada
- É possível usar o Cloud Scheduler para executar um fluxo de trabalho seguindo 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 blocomain
). O blocomain
aceita um único argumento que seja qualquer tipo de dados JSON válido. O campoparams
nomeia a variável que o fluxo de trabalho usa para armazenar os dados que você transmite. Para detalhes, consulte Argumentos de ambiente 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 atribuir a resposta da chamada a uma variável. Por exemplo, é possível invocar um serviço do Google Cloud como o Cloud Run Functions ou o Cloud Run por uma solicitação HTTP. Tanto solicitações HTTP como HTTPS são compatíveis. Para mais detalhes, consulte Fazer uma solicitação HTTP e Invocar funções do Cloud Run ou o Cloud Run.
- É possível segmentar um endpoint particular para chamadas HTTP da execução do fluxo de trabalho usando o registro de serviço do Diretório de serviços com o Workflows. Isso permite fornecer ao fluxo de trabalho um nome de serviço do Diretório de serviços. A execução do fluxo de trabalho usa as informações recuperadas do registro de serviço para enviar a solicitação HTTP adequada, sem sair para uma rede pública. Para mais informações, consulte Invocar um endpoint particular usando o registro de serviço do Service Directory.
- Como alternativa, é possível invocar endpoints particulares locais, do Compute Engine, do Google Kubernetes Engine (GKE) ou de outros Google Cloud ao ativar o Identity-Aware Proxy (IAP). Com o IAP, é possível estabelecer uma camada de autorização central para aplicativos acessados por HTTPS. Assim, você tem a opção de usar um modelo de controle de acesso no nível do aplicativo, em vez de confiar apenas nos firewalls da rede. Para mais informações, consulte Invocar um endpoint particular local, do Compute Engine, do GKE ou de outro tipo ativando o IAP.
- Ao criar um endpoint particular em uma rede de nuvem privada virtual (VPC), é possível configurar um perímetro de serviço e usar o VPC Service Controls com o Workflows para reduzir os riscos de exfiltração de dados.
- Conectores
- O Workflows publica conectores que podem ser usados para se conectar a outras APIs Google Cloud em um fluxo de trabalho e integrar seus fluxos de trabalho a esses produtos Google Cloud . Eles simplificam os serviços de chamada porque processam a formatação das solicitações, fornecendo métodos e argumentos para que você não precise conhecer os detalhes de uma APIGoogle Cloud . Para mais detalhes, consulte Noções básicas sobre conectores.
- Variáveis de ambiente e biblioteca padrão
- A biblioteca padrão do Workflows, as variáveis de ambiente integradas e as variáveis de ambiente definidas pelo usuário permitem criar com eficiência 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 funcionam imediatamente. Para mais detalhes, consulte a Visão geral da biblioteca padrão.
- É possível acessar as 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.
- Ao implantar um fluxo de trabalho, é possível definir pares arbitrários de strings de chave e valor como variáveis de ambiente definidas pelo usuário que podem ser acessadas pelo fluxo de trabalho durante a execução. Por exemplo, é possível criar um fluxo de trabalho que é configurado dinamicamente dependendo do ambiente em que ele é implantado. Para detalhes, consulte Usar variáveis de ambiente.
Tratamento de erros
É possível tornar seus fluxos de trabalho resilientes e personalizar o comportamento em caso de falha. Para isso, use o processamento de exceções do Workflows, incluindo 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 que evento especificado ocorreu e aguardar esse evento sem a necessidade de pesquisa. Para mais detalhes, consulte Aguardar usando callbacks.
É possível pausar a execução de um fluxo de trabalho adicionando uma etapa de suspensão à
definição do fluxo. Depois, é possível usar sys.sleep
para pesquisar dados
em um determinado intervalo. Veja os detalhes em Aguardar usando pesquisas.
Autenticação e controle de acesso
Como cada execução de fluxo de trabalho requer uma chamada autenticada, é possível usar fluxos de trabalho para reduzir o risco de chamadas acidentais ou maliciosas. Também é possível simplificar as interações com outras Google Cloud APIs usando contas de serviço baseadas no IAM e armazenar chaves e senhas com segurança para autenticar APIs externas usando o conector do Secret Manager. Para mais detalhes, saiba mais sobre autenticação e controle de acesso.
Observabilidade
O Workflows gera registros de execução no Cloud Logging automaticamente. Também é possível usar registros de chamadas ou registros personalizados para controlar quando os registros são enviados para o Logging durante uma execução de fluxo de trabalho. Para detalhes, consulte Enviar registros para o Cloud Logging.
As informações de registro de auditoria estão disponíveis pelos Registros de auditoria do Cloud. Para detalhes, consulte as informações de registro de auditoria para fluxos de trabalho e execuções de fluxos de trabalho.
É possível recuperar o histórico de uma execução de fluxo de trabalho especificada como uma lista de entradas de etapa. Cada entrada representa uma etapa ou um bloco de instruções na execução do fluxo de trabalho. As entradas de etapa podem ajudar a determinar a origem de um erro ou otimizar o desempenho de um fluxo de trabalho.
Amostras de código
Você encontra muitas amostras de código úteis do Workflows na página de amostras.
A seguir
Comece a usar o Workflows no console doGoogle Cloud ou pela CLI gcloud.
Saiba mais sobre como criar e atualizar fluxos de trabalho.
Saiba como controlar a ordem em que as etapas de um fluxo de trabalho são executadas.