Acione um fluxo de trabalho com eventos ou mensagens Pub/Sub

Pode usar um acionador do Eventarc para executar um fluxo de trabalho como resultado de um evento ou um conjunto de eventos. Os eventos são encaminhados de um fornecedor de eventos para recetores de eventos interessados.

O Eventarc envia eventos para o recetor de eventos no formato CloudEvents através de um pedido HTTP. O serviço Workflows converte o evento num objeto JSON (de acordo com a especificação CloudEvents) e passa o evento para a execução do fluxo de trabalho como um argumento de tempo de execução do fluxo de trabalho.

É acionada uma execução do fluxo de trabalho:

  • Quando é criado um registo de auditoria que corresponde aos critérios de filtro do acionador. Por exemplo, consulte este início rápido em que aciona fluxos de trabalho com eventos do BigQuery através dos registos de auditoria na nuvem.
  • Em resposta a eventos diretos, como uma atualização a um contentor do Cloud Storage ou uma atualização a um modelo da Firebase Remote Config. Por exemplo, consulte este início rápido em que aciona fluxos de trabalho com eventos diretos do Cloud Storage.
  • Através de mensagens publicadas num tópico do Pub/Sub. Por exemplo, consulte este início rápido no qual aciona os Workflows com mensagens do Pub/Sub.

Tenha em conta 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 novas tentativas de eventos.

  • A janela de remoção de duplicados dos fluxos de trabalho para garantir o processamento de eventos exatamente uma vez é de 24 horas.

  • Quando usa os fluxos de trabalho como destino de um acionador do Eventarc, os eventos superiores ao tamanho máximo do argumento dos fluxos de trabalho não acionam execuções de fluxos de trabalho. Para mais informações, consulte o artigo Quotas e limites.

  • Em projetos protegidos por um perímetro de serviço, quando encaminha eventos para destinos do Workflows para os quais o ponto final de envio do Pub/Sub está definido para uma execução do Workflows, só pode criar novas subscrições de envio do Pub/Sub através do Eventarc. Tenha em atenção que a conta de serviço usada para a autenticação push para o ponto final Workflows tem de ser incluída no perímetro do serviço. Para mais informações, consulte o artigo Configure um perímetro de serviço com o VPC Service Controls.

Crie um acionador com a Google Cloud CLI

Pode criar um acionador executando um comando gcloud eventarc triggers create juntamente com flags obrigatórias e opcionais.

Para mais informações, consulte as instruções do gcloud na secção "Crie um acionador" quando criar um acionador para um fornecedor, um tipo de evento e um destino do Workflows específicos.

Crie um acionador através da consola

Os passos seguintes mostram como criar um acionador na página Fluxos de trabalho na Google Cloud consola.

Antes de começar

  1. Enable the Eventarc and Pub/Sub APIs.

    Enable the APIs

  2. Crie uma conta de serviço para que o Eventarc possa fazer pedidos à API Workflows:

    1. Na Google Cloud consola, aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione um projeto e, de seguida, clique em Criar conta de serviço.

    3. No campo Nome da conta de serviço, introduza um nome com entre 6 e 30 carateres.

      Pode conter carateres alfanuméricos minúsculos e travessões. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.

    4. Clique em Criar e continuar.

    5. Conceda à nova conta de serviço a função workflows.invoker para que a conta tenha autorização para acionar o seu fluxo de trabalho. Na lista Selecionar uma função, selecione Fluxos de trabalho > Workflows Invoker.

      Se estiver a desenvolver uma app de produção, conceda sempre as funções menos permissivas possíveis. Para mais informações, consulte o artigo Faça a gestão do 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 tenha a capacidade de atuar como uma conta de serviço de gestão de identidade e de acesso (IAM), conceda uma função que permita ao principal roubar a identidade da conta de serviço.

Configure o acionador

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

  2. Na Google Cloud consola, aceda à página Fluxos de trabalho:

    Aceda a Fluxos de trabalho

  3. Na página Fluxos de trabalho, selecione um fluxo de trabalho para aceder à respetiva página de detalhes.

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

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

    É aberto o painel Acionador do Eventarc.

  6. Siga as instruções para criar um acionador para um fornecedor, um tipo de evento e um Workflows destino específicos e consulte as instruções da consola na secção "Crie um acionador".

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

    Isto especifica a conta de serviço de IAM à qual concedeu anteriormente a função workflows.invoker para que a conta tenha autorização para acionar o seu fluxo de trabalho.

  8. Clique em Guardar acionador.

    O acionador do Eventarc é apresentado no separador Acionadores da página Detalhes dos fluxos de trabalho.

  9. Se quiser atualizar ou eliminar o acionador, tem de editar o fluxo de trabalho:

    1. Na página Detalhes do fluxo de trabalho, clique em Editar.
    2. Na secção Acionadores, encontre o acionador que quer atualizar ou eliminar.
    3. Clique em Editar recurso ou Eliminar recurso.

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

Crie um acionador com o Terraform

Pode criar um acionador para um fluxo de trabalho com o Terraform. Para ver detalhes, consulte o artigo Acione um fluxo de trabalho com o Eventarc e o Terraform.

O que se segue?