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

Use 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 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 acionador. Por exemplo, consulte este guia de início rápido para acionar fluxos de trabalho com eventos do BigQuery que usam registros de auditoria do Cloud.
  • Em resposta a eventos diretos, como uma atualização de um bucket do Cloud Storage ou uma atualização de um modelo do Configuração remota do Firebase. Por exemplo, consulte este guia de início rápido para acionar fluxos de trabalho 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 fluxos de trabalho com mensagens do Pub/Sub.

Observações:

  • Os eventos são considerados entregues assim que a execução do fluxo de trabalho começa, e a execução real ocorre de forma assíncrona nos serviços dos fluxos de trabalho.

  • As execuções acionadas por eventos não serão repetidas se a execução do fluxo de trabalho for iniciada, mas depois falhar. Para mais informações, consulte a política de nova tentativa do evento.

  • Ao usar o Workflows como destino para um acionador do Eventarc, eventos maiores que o tamanho máximo do argumento do Workflows não acionarão as execuções do fluxo de trabalho. Para mais informações, consulte Cotas e limites.

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 Criar um gatilho para fluxos de trabalho.

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 possa fazer solicitações à API Workflows:

    1. No Console do Cloud, acesse a página Contas de serviço.
      Acessar 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 que tenha 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.

    4. Clique em Criar e continuar.

    5. Conceda à sua nova conta de serviço o papel workflows.invoker para que a conta tenha permissão para acionar o seu fluxo de trabalho. Na lista Selecionar um papel, selecione Fluxos de trabalho > Invocador de fluxos de trabalho.

      Ao desenvolver um aplicativo 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.

    6. Clique em Concluído.

  3. Para permitir que o principal que executará os comandos do Eventarc possa atuar como uma conta de serviço do Gerenciamento de identidade e acesso (IAM), conceda um papel que permita que o principal represente 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 Cloud, acesse a página Fluxos de trabalho:
    Acessar o Workflows

  3. Na página "Fluxos de trabalho", 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. Digite um Nome de gatilho.

    Esse é o ID do gatilho e precisa começar com uma letra. Ele pode conter até 63 letras minúsculas, números ou hifens.

  7. Selecione um Provedor de eventos.

    Este é o serviço do Google Cloud que é a origem dos eventos. Por exemplo, selecione BigQuery.

  8. Selecione um evento.

    • Eventos personalizados: aplicam-se a um provedor de eventos do Cloud Pub/Sub
    • Eventos diretos: aplicável apenas a alguns provedores de eventos
    • Por meio dos eventos de registros de auditoria do Cloud: aplica-se a todos os provedores de eventos

    Personalizado

    As solicitações para seu serviço são acionadas quando uma mensagem é publicada em um tópico do Pub/Sub. Isso se aplica a um provedor de eventos do Cloud Pub/Sub.

    1. Nos eventos listados em Personalizado, selecione Tópico do Cloud Pub/Sub.

    2. Selecione um tópico existente ou aceite o padrão Nenhum para que um novo tópico seja criado para o gatilho.

      O tópico atual do Pub/Sub precisa estar no mesmo projeto que o gatilho.

      Por padrão, as assinaturas do Pub/Sub criadas para o Eventarc persistem independentemente da atividade e não expiram. Para alterar a duração da inatividade, consulte Como gerenciar assinaturas.

      Como prática recomendada, não reutilize o tópico do Pub/Sub criado por um gatilho porque a exclusão de um gatilho do Eventarc também exclui todos os tópicos do Pub/Sub criados. pelo gatilho.

    3. Selecione uma Região.

      Os gatilhos do Pub/Sub para o Eventarc estão disponíveis apenas em locais de região única. Não é possível criar um gatilho global do Eventarc.

    Direta

    Cloud Storage

    As solicitações para seu serviço são acionadas em resposta a um evento dentro de um bucket do Cloud Storage: criação de objetos, exclusão, arquivamento e atualizações de metadados. Isso se aplica a um provedor de eventos do Cloud Storage.

    1. Nos eventos listados em Nativo, selecione uma das seguintes opções:

      • google.cloud.storage.object.v1.archived: o evento é enviado quando uma versão ativa de um objeto é arquivada ou excluída. Este evento só é enviado para buckets com controle de versão.
      • google.cloud.storage.object.v1.delete: o evento é enviado quando um objeto é excluído permanentemente. Dependendo da configuração do controle de versão do objeto de um bucket isso significa:
        • Para buckets do controle de versões, ele só é enviado quando uma versão é excluída permanentemente (mas não quando um objeto é arquivado).
        • Para buckets sem controle de versões, ele é enviado quando um objeto é excluído ou substituído.
      • google.cloud.storage.object.v1.finalized: o evento é enviado quando um novo objeto é criado (ou um objeto existente é substituído e uma nova geração desse objeto é criado) no bucket
      • google.cloud.storage.object.v1.metadataUpdated: o evento é enviado quando os metadados de um objeto existente mudam.
    2. Especifique ou procure o identificador exclusivo global do bucket do Cloud Storage.

      O bucket do Cloud Storage precisa residir no mesmo projeto do Google Cloud e na região ou multirregião que o gatilho do Eventarc.

    3. Selecione uma Região.

      Os gatilhos do Cloud Storage para o Eventarc estão disponíveis em locais de região única, birregionais e multirregionais. Observação: o bucket do Cloud Storage precisa residir no mesmo projeto e região ou multirregião do Google Cloud que o gatilho do Eventarc.

    Os eventos são entregues usando notificações do Pub/Sub do Cloud Storage. A configuração de muitas notificações registradas no mesmo bucket pode esgotar o limite de notificações do bucket, conforme indicado pelo erro Cloud Storage bucket ...: Pub/Sub notification limit reached. É possível ter até 10 configurações de notificação definidas no bucket para acionar um determinado evento. Veja mais cotas e limitações na página Cotas e limites do Cloud Storage.

    Alertas do Firebase

    As solicitações para seu serviço são acionadas em resposta a um evento quando um alerta do Firebase é publicado por um serviço desse tipo.

    1. Nos eventos listados em Direto, selecione google.firebase.firebasealerts.alerts.v1.published.

    2. Na lista Região, selecione global (global).

      Saiba mais em Locais do Eventarc.

    3. Na seção Filtros, na lista alerttype, selecione uma das seguintes opções:

      • appDistribution.newTesterIosDevice: o evento é enviado quando um novo dispositivo iOS é registrado em determinado app
      • billing.planAutomatedUpdate: o evento é enviado quando o plano de faturamento de um projeto do Firebase é atualizado automaticamente. Por exemplo, quando é feito o downgrade de um plano devido a problemas de pagamento
      • billing.planUpdate: o evento é enviado quando o plano de faturamento de um projeto do Firebase é modificado por um usuário. por exemplo, quando uma conta de faturamento é anexada ou desanexada de um projeto
      • crashlytics.newAnrIssue: o evento é enviado quando um app tem um novo erro de "O app não está respondendo" (ANR, na sigla em inglês), e não a nenhum evento subsequente e idêntico.
      • crashlytics.newFatalIssue: o evento é enviado quando um app tem uma nova falha fatal (não para qualquer evento subsequente e idêntico).
      • crashlytics.newNonfatalIssue: o evento é enviado quando um app tem um novo erro não fatal (não para eventos idênticos e subsequentes).
      • crashlytics.regression: o evento é enviado quando ocorre uma falha no app devido a um problema marcado como fechado em uma versão anterior do app
      • crashlytics.stabilityDigest: o evento é enviado quando há uma notificação dos principais problemas em alta no Crashlytics.
      • crashlytics.velocity: o evento é enviado quando um único problema é responsável por causar uma falha em um número significativo de sessões do app.
    4. Se preferir, filtre eventos para um ID específico do app do Firebase. Clique em Adicionar filtro e especifique o appid.

      Precisa ser uma correspondência exata.

    Configuração remota do Firebase

    As solicitações para seu serviço são acionadas em resposta a um evento quando um modelo do Configuração remota é atualizado.

    1. Nos eventos listados em Direto, selecione google.firebase.remoteconfig.remoteConfig.v1.updated.

    2. Na lista Região, selecione global (global).

      Saiba mais em Locais do Eventarc.

    Firebase Test Lab

    As solicitações para seu serviço são acionadas em resposta a um evento quando uma TestMatrix é concluída.

    1. Nos eventos listados em Direto, selecione google.firebase.testlab.testMatrix.v1.completed.

    2. Na lista Região, selecione global (global).

      Saiba mais em Locais do Eventarc.

    Via Registros de auditoria do Cloud

    As solicitações para seu serviço são acionadas quando um registro de auditoria é criado e corresponde aos critérios de filtro do acionador. Esse tipo de evento se aplica a todos os provedores de eventos.

    1. Nos eventos listados em Por meio dos registros de auditoria do Cloud, selecione um.

    2. Selecione uma destas opções:

      • Qualquer recurso: este é o padrão e inclui recursos criados dinamicamente que têm identificadores gerados no momento da criação.

      • Recurso específico: é necessário fornecer o nome completo do recurso.

      • Padrão de caminho: é possível filtrar recursos usando um padrão de caminho. Por exemplo, digite projects/_/buckets/eventarc-bucket/objects/random.txt ou projects/_/buckets/**/r*.txt.

    3. Selecione uma Região.

      Os gatilhos dos Registros de auditoria do Cloud para o Eventarc estão disponíveis em regiões específicas e na região global, mas não em locais birregionais e multirregionais. Para evitar problemas de desempenho e de residência de dados causados por um gatilho global, recomendamos que o local corresponda ao do serviço do Google Cloud que está gerando eventos.

      Se você especificar o local global, receberá eventos de todos os locais aos quais os filtros de evento correspondem. Por exemplo, ao criar um gatilho global do Eventarc, é possível receber eventos de recursos nas multirregiões da UE e do EUA.

    Para mais informações sobre como capturar eventos acionados quando um registro de auditoria é criado e corresponde aos critérios do filtro, consulte Determinar filtros de evento para os registros de auditoria do Cloud.

  9. 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.

  10. Clique em Salvar acionador.

    Os gatilhos do Eventarc agora estão listados na guia Gatilhos da página Detalhes do fluxo de trabalho.

  11. 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, localize 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 do filtro do seu acionador.

A seguir