O Workflows é uma plataforma de orquestração totalmente gerida que executa serviços numa ordem que define: um fluxo de trabalho. Estes fluxos de trabalho podem combinar serviços, incluindo serviços personalizados alojados no Cloud Run ou funções do Cloud Run, Google Cloud serviços como a Cloud Vision AI e o BigQuery, e qualquer API baseada em HTTP.
Ao incorporar fluxos de trabalho em soluções, pode tornar as dependências de serviços explícitas e observáveis de forma integral. Um fluxo de trabalho que especifica uma aplicação, um processo operacional ou empresarial fornece uma fonte de verdade ou uma narrativa canónica para o processo.
O Workflows é sem servidor, é dimensionado conforme necessário e não incorre em custos quando está inativo. Uma vez que um fluxo de trabalho não contém código nem dependências de bibliotecas, não requer patches de segurança. Depois de implementar um fluxo de trabalho, pode esperar que seja executado de forma fiável sem manutenção. Um fluxo de trabalho pode manter o estado, repetir, sondar ou aguardar até um ano.
O Workflows está em conformidade com estas certificações e normas.
O diagrama seguinte mostra um exemplo de utilização dos Workflows para orquestrar serviços:
Principais exemplos de utilização
Os fluxos de trabalho suportam muitos exemplos de utilização. Alguns exemplos:
Orquestração de serviços | Crie soluções combinando serviços: execute uma sequência de operações em vários sistemas, aguardando a conclusão de todas as operações.
Podem ser acionados por eventos. Por exemplo:
|
Tarefas de lote | Operar em vários itens: realizar operações num conjunto de itens ou
dados em lote. Agendado frequentemente. Por exemplo:
|
Processos de negócio | Automatize fluxos de trabalho da linha de negócio: codifique os passos num processo empresarial, incluindo condições, ações e eventos de intervenção humana. Por exemplo:
|
Automatização de processos de TI | Execução gerida de operações de serviço: crie facilmente scripts de sequências de operações de serviço. Google Cloud Por exemplo:
|
Conceitos principais
Um fluxo de trabalho consiste numa série de passos descritos através da sintaxe dos Workflows 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 de criado, um fluxo de trabalho é implementado, o que o torna pronto para execução. Saiba como criar e atualizar um fluxo de trabalho na Google Cloud consola ou através da Google Cloud CLI. Também pode criar o seu fluxo de trabalho através de um IDE ou de um editor de código fonte preferencial e configurar o preenchimento automático e a validação da sintaxe.
Uma execução é uma única execução 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 dimensionamento rápido do produto permite um elevado número de execuções simultâneas. Pode executar um fluxo de trabalho através das bibliotecas cliente, na consola, através da CLI Google Cloud ou enviando um pedido HTTP POST
para o URL de invocação do fluxo de trabalho através da API REST Workflows. Google Cloud Para obter detalhes, consulte o artigo
Execute um fluxo de trabalho.
Regionalidade
O Workflows é um serviço regional e os fluxos de trabalho são recursos regionais sujeitos à restrição de localizações de recursos. Pode usar políticas de localização de recursos para controlar a residência dos dados.
Tenha em atenção que, quando um fluxo de trabalho é implementado numa determinada região, é executado apenas nessa região. No entanto, se o fluxo de trabalho fizer pedidos HTTP ou usar conetores, a chamada HTTP pode não ter origem na mesma região.
Principais capacidades
Seguem-se algumas das principais capacidades dos fluxos de trabalho.
Controlo de execução
- Passos
- Para criar um fluxo de trabalho, define os passos necessários e a ordem de execução através da sintaxe dos fluxos de trabalho. Todos os fluxos de trabalho têm de ter, pelo menos, um passo. Por predefinição, os fluxos de trabalho tratam os passos como se estivessem numa lista ordenada e executam-nos um de cada vez até que todos os passos tenham sido executados. Para ver detalhes, consulte os passos.
- Condições
- Pode 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 ver os detalhes, consulte as Condições. - Iteração
- Pode usar um ciclo
for
para iterar uma sequência de números ou através de uma coleção de dados, como uma lista ou um mapa. Para obter detalhes, consulte a secção Iteração. - Passos paralelos
- Pode usar um passo
parallel
para definir uma parte do seu fluxo de trabalho (uma ramificação ou um ciclo) que pode ser executada em simultâneo. Para obter detalhes, consulte os passos paralelos. - Subfluxos de trabalho
- Um subfluxo de trabalho funciona de forma semelhante a uma rotina ou uma função numa linguagem de programação, o que lhe permite encapsular um passo ou um conjunto de passos que o seu fluxo de trabalho vai repetir várias vezes. Para obter detalhes, consulte o artigo Subfluxos de trabalho.
Acionamento de execuções
- Manual
- Pode gerir fluxos de trabalho a partir da Google Cloud consola ou da linha de comando através da Google Cloud CLI. O suporte de visualização durante a edição da sintaxe de fluxos de trabalho também está disponível através da Google Cloud consola .
- Programático
- Pode usar as bibliotecas cliente da nuvem para a API Workflows ou a API REST para gerir fluxos de trabalho. Para ver detalhes, consulte o artigo APIs Workflows e referência.
- Agendado
- Pode usar o Cloud Scheduler para executar um fluxo de trabalho numa programação específica, como todas as segundas-feiras às 09:00 ou a cada 15 minutos. Para ver detalhes, consulte o artigo Agende um fluxo de trabalho com o Cloud Scheduler.
- Argumentos de tempo de execução
- Os dados transmitidos no tempo de execução podem ser acedidos adicionando um campo
params
ao fluxo de trabalho principal (colocado num blocomain
). O blocomain
aceita um único argumento que é qualquer tipo de dados JSON válido. O campoparams
indica o nome da variável que o fluxo de trabalho usa para armazenar os dados que envia. Para ver detalhes, consulte o artigo Argumentos de tempo de execução.
Associar serviços
- APIs HTTP
- Pode definir uma etapa do fluxo de trabalho que faça uma chamada HTTP e atribuir a resposta da chamada a uma variável. Por exemplo, pode invocar um Google Cloud serviço, como as funções do Cloud Run ou o Cloud Run, através de um pedido HTTP. Os pedidos HTTP e HTTPS são suportados. Para ver detalhes, consulte os artigos Faça um pedido HTTP e Invoque funções do Cloud Run ou o Cloud Run.
- Pode segmentar um ponto final privado para chamadas HTTP a partir da execução do fluxo de trabalho usando o registo de serviços do Service Directory com Workflows. Isto permite-lhe fornecer ao seu fluxo de trabalho um nome do serviço do diretório de serviços. A execução do fluxo de trabalho usa as informações obtidas do registo de serviços para enviar o pedido HTTP adequado, sem sair para uma rede pública. Para mais informações, consulte o artigo Invocar um ponto final privado através do registo de serviços do Service Directory.
- Em alternativa, pode invocar pontos finais privados no local, do Compute Engine, do Google Kubernetes Engine (GKE) ou outros Google Cloud ativando o Identity-Aware Proxy (IAP). A IAP permite-lhe estabelecer uma camada de autorização central para aplicações acedidas por HTTPS, para que possa usar um modelo de controlo de acesso ao nível da aplicação em vez de depender de firewalls ao nível da rede. Para mais informações, consulte o artigo Invoque um ponto final privado no local, do Compute Engine, do GKE ou outro ativando o IAP.
- Quando cria um ponto final privado numa rede de nuvem virtual privada (VPC), pode configurar um perímetro de serviço e usar o VPC Service Controls com fluxos de trabalho para mitigar os riscos de exfiltração de dados.
- Conetores
- O Workflows publica conetores que podem ser usados para estabelecer ligação a outras Google Cloud APIs num fluxo de trabalho e para integrar os seus fluxos de trabalho com esses Google Cloud produtos. Simplificam a chamada de serviços porque processam a formatação dos pedidos por si e fornecem métodos e argumentos para que não precise de saber os detalhes de umaGoogle Cloud API. Para obter detalhes, consulte o artigo Compreenda os conetores.
- Biblioteca padrão e variáveis de ambiente
- A biblioteca padrão dos fluxos de trabalho, as variáveis de ambiente incorporadas e as variáveis de ambiente definidas pelo utilizador permitem-lhe criar argumentos de forma eficiente para os serviços e processar respostas.
- A biblioteca padrão inclui módulos e funções usados frequentemente, como para conversões de tipo de dados e formato. Não é necessário importar nem carregar bibliotecas num fluxo de trabalho. As funções de biblioteca funcionam imediatamente. Para ver detalhes, consulte o artigo Vista geral da biblioteca padrão.
- Pode aceder às informações do ambiente de um fluxo de trabalho (como a respetiva localização ou o identificador do projeto) através de variáveis de ambiente incorporadas. As variáveis de ambiente incorporadas não requerem declaração e estão disponíveis em todas as execuções de fluxo de trabalho. Para obter detalhes, consulte o artigo Variáveis de ambiente incorporadas.
- Quando implementa um fluxo de trabalho, pode definir pares de strings de chave e valor arbitrários como variáveis de ambiente definidas pelo utilizador que são acessíveis pelo seu fluxo de trabalho no momento da execução. Por exemplo, pode criar um fluxo de trabalho configurado dinamicamente, dependendo do ambiente no qual é implementado. Para ver detalhes, consulte o artigo Use variáveis de ambiente.
Processamento de erros
Pode tornar os seus fluxos de trabalho resilientes e personalizar o respetivo comportamento quando ocorre uma falha através do processamento de exceções dos Workflows, incluindo novas tentativas de chamadas HTTP automatizadas com recuos exponenciais, processadores de erros personalizados e outras funcionalidades avançadas. Para obter detalhes, consulte a secção Erros de fluxo de trabalho.
A aguardar
Os callbacks permitem que as execuções de fluxos de trabalho aguardem que outro serviço faça um pedido ao ponto final de callback. Esse pedido retoma a execução do fluxo de trabalho. Com os callbacks, pode sinalizar ao seu fluxo de trabalho que ocorreu um evento especificado e aguardar esse evento sem sondagem. Para ver detalhes, consulte o artigo Aguarde através de callbacks.
Pode pausar a execução de um fluxo de trabalho adicionando um passo de suspensão à definição do fluxo de trabalho. Em seguida, pode usar sys.sleep
para sondar dados num intervalo específico. Para ver detalhes, consulte o artigo Aguarde através da sondagem.
Autenticação e controlo de acesso
Uma vez que cada execução do fluxo de trabalho requer uma chamada autenticada, pode mitigar o risco de chamadas acidentais ou maliciosas através dos fluxos de trabalho. Também pode simplificar as interações com outras Google Cloud APIs através de contas de serviço baseadas no IAM, e pode armazenar chaves e palavras-passe em segurança para autenticação em APIs externas através do conector do Secret Manager. Para ver detalhes, saiba mais sobre a autenticação e o controlo de acesso.
Observabilidade
O Workflows gera automaticamente registos de execução para execuções de fluxos de trabalho no Cloud Logging. Também pode controlar quando os registos são enviados para o registo durante a execução de um fluxo de trabalho através do registo de chamadas ou de registos personalizados. Para ver detalhes, consulte o artigo Envie registos para o Cloud Logging.
As informações de registo de auditoria estão disponíveis através dos registos de auditoria do Cloud. Para ver detalhes, consulte as informações de registo de auditoria para fluxos de trabalho e execuções de fluxos de trabalho.
Pode obter o histórico de uma execução de fluxo de trabalho especificada como uma lista de entradas de passos. Cada entrada representa um passo ou um bloco de instruções na execução do fluxo de trabalho. As entradas de passos podem ajudar a determinar a origem de um erro ou a otimizar o desempenho de um fluxo de trabalho.
Exemplos de código
Pode encontrar muitos exemplos de código de fluxos de trabalho úteis na página de exemplos.
O que se segue?
Comece a usar os fluxos de trabalho a partir da Google Cloud consola ou da CLI gcloud.
Saiba mais sobre como criar e atualizar fluxos de trabalho.
Saiba como controlar a ordem pela qual os passos de um fluxo de trabalho são executados.