Acionar um fluxo de trabalho com eventos ou mensagens do Pub/Sub

É possível usar um gatilho do Eventarc para executar um fluxo de trabalho como resultado de um evento ou de um conjunto de eventos. Os eventos são roteados de um provedor de eventos para os receptores de eventos interessados.

O Eventarc entrega eventos ao receptor de eventos no formato CloudEvents por uma solicitação HTTP. O serviço Workflows converte o evento em um objeto JSON (seguindo a especificação do CloudEvents) e o transmite para a execução do fluxo de trabalho como um argumento de ambiente de execução do fluxo de trabalho.

Uma execução do seu fluxo de trabalho é acionada:

  • Quando um registro de auditoria é criado que corresponde aos critérios de filtro do acionador. 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 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 para acionar Workflows com mensagens do Pub/Sub.

Observações:

  • 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 serão repetidas se a execução do fluxo de trabalho for iniciada, mas falhar posteriormente. Para mais informações, consulte a política de nova tentativa de evento.

  • Ao usar o Workflows como destino para um gatilho do Eventarc, os eventos maiores que o tamanho máximo do argumento de 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 para os quais o endpoint de push do Pub/Sub está definido para uma execução do Workflows, só é possível criar novas assinaturas de push do Pub/Sub pelo Eventarc. A conta de serviço usada para autenticação 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 da gcloud na seção "Criar um acionador" ao criar um acionador para um provedor, tipo de evento e destino do Workflows específicos.

Criar um gatilho usando o console

As etapas a seguir mostram como criar um gatilho na página Fluxos de trabalho no console do Google Cloud.

Antes de começar

  1. Ative as APIs Eventarc and Pub/Sub.

    Ative as APIs

  2. Crie uma conta de serviço para que o Eventarc faça solicitações à API Workflows:

    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 entre 6 e 30 caracteres.

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

    4. Clique em Criar e continuar.

    5. 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 do Workflows.

      Se você estiver desenvolvendo um app de produção, sempre conceda os papéis menos permissivos possível. Para mais informações, consulte Gerenciar o acesso a projetos, pastas e organizações.

    6. Clique em Concluído.

  3. Para permitir que o principal que vai executar os comandos do Eventarc aja como uma conta de serviço do Identity and Access Management (IAM), conceda um papel que permita ao principal representar a conta de serviço.

Configurar o gatilho

  1. Se você ainda não tiver um fluxo de trabalho que queira acionar, crie e implante um.

  2. No console do Google Cloud, acesse a página Fluxos de trabalho.

    Acessar fluxos de trabalho

  3. Na página Workflows", selecione um fluxo de trabalho para acessar a página de detalhes.

  4. Na página Detalhes do fluxo de trabalho, clique em Executar.

  5. Na página Editar fluxo de trabalho, selecione Adicionar novo gatilho > Eventarc.

    O painel Gatilho do Eventarc é aberto.

  6. 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".

  7. Selecione a conta de serviço que invoca seu fluxo de trabalho.

    Isso especifica a conta de serviço do IAM a que você concedeu anteriormente o papel workflows.invoker para que a conta tenha permissão para acionar seu fluxo de trabalho.

  8. Clique em Salvar acionador.

    O gatilho do Eventarc está listado na guia Gatilhos da página Detalhes dos fluxos de trabalho.

  9. Se você quiser atualizar ou excluir o gatilho, edite o fluxo de trabalho:

    1. Na página Detalhes do fluxo de trabalho, clique em Executar.
    2. Na seção Acionadores, encontre o acionador que você quer atualizar ou excluir.
    3. Clique em Editar recurso ou Excluir recurso.

A execução do fluxo de trabalho agora é acionada pelos eventos que correspondem aos critérios de filtro do acionador.

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.

A seguir