Usar o Eventarc para gerenciar jobs do Dataflow

Neste documento, descrevemos como criar fluxos de trabalho orientados por eventos acionados por alterações de estado nos jobs do Dataflow.

Por exemplo, seu fluxo de trabalho pode:

  • Enviar um alerta para um engenheiro de plantão se um job crítico falhar.
  • Notifique os usuários quando um job em lote for concluído ou inicie outro job do Dataflow.
  • Limpar recursos usados por um job, como buckets do Cloud Storage.

Visão geral

O Eventarc é um serviço do Google Cloud que pode detectar eventos de outros serviços e roteá-los para vários destinos.

Quando você executa um job do Dataflow, ele passa por vários estados, como JOB_STATE_QUEUED, JOB_STATE_RUNNING e JOB_STATE_DONE. A integração do Dataflow com o Eventarc permite que você acione uma ação quando um job mudar de estado.

Como o Eventarc é um serviço gerenciado, você não precisa provisionar ou gerenciar a infraestrutura subjacente.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Eventarc APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Eventarc APIs.

    Enable the APIs

Para usar a API Eventarc, seu projeto precisa ter cota suficiente. Além disso, a conta de serviço associada ao acionador do Eventarc precisa ter as permissões apropriadas.

Escolha um destino para o evento

Escolha um destino de evento para receber o evento. O destino determina a próxima etapa no seu fluxo de trabalho.

Por exemplo:

  • Para enviar um alerta por SMS, você pode usar as funções do Cloud Run para criar um acionador HTTP autônomo.
  • Para um fluxo de trabalho mais complexo, use fluxos de trabalho.
  • Se o pipeline do Dataflow fizer parte de uma solução maior executada no Google Kubernetes Engine, o gatilho poderá rotear o evento para um serviço do GKE em execução no cluster.

Para mais informações sobre esse estilo de arquitetura, consulte Arquiteturas orientadas a eventos na documentação do Eventarc.

Criar um gatilho

Para criar um gatilho do Eventarc para alterações de estado do job do Dataflow, consulte um dos seguintes documentos:

Opcionalmente, é possível filtrar eventos por ID do job do Dataflow. Por exemplo, selecione códigos de job que correspondam a uma expressão regular. Para mais informações, consulte Entender os padrões de caminho.

Processar eventos

Os dados do evento descrevem o job do Dataflow no momento em que o evento foi acionado. O payload é semelhante ao tipo de recurso Job, com os campos steps, pipeline_description e transform_name_mapping omitidos. Além disso, dependendo do estado do job, alguns campos podem não estar presentes.

Veja a seguir um exemplo de payload:

{
  "id":"2023-04-13_16_28_37-12345678",
  "projectId":"my-project",
  "name":"job1",
  "currentState":"JOB_STATE_QUEUED",
  "currentStateTime":"2023-04-13T23:28:37.437622Z",
  "createTime":"2023-04-13T23:28:37.437622Z",
  "location":"us-central1",
  "startTime":"2023-04-13T23:28:37.437622Z"
}

Para mais informações sobre estados de jobs, consulte os seguintes tópicos:

A seguir