É possível usar um gatilho do Eventarc para executar um fluxo de trabalho como resultado de um evento ou conjunto de eventos. Os eventos são roteados de um provedor de eventos para receptores de eventos interessados.
O Eventarc entrega eventos ao receptor de eventos no formato CloudEvents por uma solicitação HTTP. O serviço do Workflows converte o evento em um objeto JSON (seguindo a especificação do CloudEvents) e transmite o evento para a execução do fluxo de trabalho como um argumento do ambiente de execução do fluxo de trabalho.
Uma execução do seu fluxo de trabalho é acionada:
- Quando um registro de auditoria é criado e corresponde aos critérios de filtro do gatilho. Por exemplo, consulte este guia de início rápido em que você aciona Workflows com eventos do BigQuery usando os Registros de auditoria do Cloud.
- Em resposta a eventos diretos, como uma atualização de um bucket do Cloud Storage ou de um modelo da Configuração remota do Firebase. Por exemplo, consulte este guia de início rápido em que você aciona o Workflows com eventos diretos do Cloud Storage.
- Por mensagens publicadas em um tópico do Pub/Sub. Por exemplo, consulte este guia de início rápido em que você aciona Workflows com mensagens do Pub/Sub.
Observe o seguinte:
Os eventos são considerados entregues assim que a execução do fluxo de trabalho é iniciada, e a execução real ocorre de forma assíncrona nos serviços do Workflows.
As execuções acionadas por eventos não são repetidas se a execução do fluxo de trabalho começar, mas falhar mais tarde. Para mais informações, consulte a Política de nova tentativa de eventos.
A janela de eliminação de duplicação do Workflows para garantir o processamento exato de eventos é de 24 horas.
Ao usar o Workflows como destino para um acionador do Eventarc, eventos maiores que o tamanho máximo de argumentos do Workflows não acionarão execuções de fluxo de trabalho. Para mais informações, consulte Cotas e limites.
Em projetos protegidos por um perímetro de serviço, ao rotear eventos para destinos do Workflows em que o endpoint de push do Pub/Sub está definido como uma execução do Workflows, só é possível criar novas assinaturas de push do Pub/Sub pelo Eventarc. A conta de serviço usada na autenticação por push do endpoint do Workflows precisa ser incluída no perímetro de serviço. Para mais informações, consulte Configurar um perímetro de serviço usando o VPC Service Controls.
Criar um gatilho usando a Google Cloud CLI
Para criar um gatilho, execute um comando gcloud eventarc triggers create
com as sinalizações obrigatórias e opcionais.
Para mais informações, consulte as instruções do gcloud na seção "Criar um gatilho" ao criar um gatilho para um provedor, tipo de evento e destino do Workflows específico.
Criar um gatilho usando o console
As etapas a seguir mostram como criar um acionador na página Fluxos de trabalho no console do Google Cloud.
Antes de começar
-
Enable the Eventarc and Pub/Sub APIs.
Crie uma conta de serviço para que o Eventarc possa fazer solicitações à API Workflows:
No Console do Google Cloud, acesse a página Contas de serviço.
Selecione um projeto e clique em Criar conta de serviço.
No campo Nome da conta de serviço, insira um nome com entre 6 e 30 caracteres.
Ele 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.
Clique em Criar e continuar.
Conceda à nova conta de serviço o papel workflows.invoker para que ela tenha permissão para acionar o fluxo de trabalho. Na lista Selecionar um papel, selecione Fluxos de trabalho > Invocador de fluxos de trabalho.
Se você estiver desenvolvendo um app de produção, sempre conceda os papéis menos permissivos possíveis. Para mais informações, consulte Gerenciar o acesso a projetos, pastas e organizações.
Clique em Concluído.
Para permitir que a principal que vai executar os comandos do Eventarc atue como uma conta de serviço do Identity and Access Management (IAM), conceda um papel que permita à principal personificar a conta de serviço.
Configurar o acionador
Se você ainda não tiver um fluxo de trabalho que queira acionar, crie e implante um.
No console do Google Cloud, acesse a página Fluxos de trabalho.
Na página Workflows", selecione um fluxo para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em edit Executar.
Na página Editar fluxo de trabalho, selecione Adicionar novo gatilho > Eventarc.
O painel Gatilho do Eventarc é aberto.
Siga as instruções para criar um gatilho para um provedor, tipo de evento e destino Workflows específicos e consulte as instruções do Console. na seção "Criar um gatilho".
Selecione a conta de serviço que invoca o fluxo de trabalho.
Isso especifica a conta de serviço do IAM a que você concedeu o papel
workflows.invoker
anteriormente para que ela tenha permissão para acionar seu fluxo de trabalho.Clique em Salvar acionador.
O acionador do Eventarc está listado na guia Gatilhos da página Detalhes dos fluxos de trabalho.
Se você quiser atualizar ou excluir o acionador, edite o fluxo de trabalho:
- Na página Detalhes do fluxo de trabalho, clique em edit Executar.
- Na seção Acionadores, encontre o acionador que você quer atualizar ou excluir.
- Clique em edit Editar recurso ou delete Excluir recurso.
A execução do fluxo de trabalho agora é acionada pelos eventos que correspondem aos critérios de filtro do gatilho.
Criar um gatilho usando o Terraform
É possível criar um gatilho para um fluxo de trabalho usando o Terraform. Para mais detalhes, acesse Como acionar um fluxo de trabalho usando o Eventarc e o Terraform.