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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Eventarc APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Eventarc 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:
- Rotear eventos do Dataflow para o Cloud Run
- Rotear eventos do Dataflow para o Google Kubernetes Engine
- Encaminhar eventos do Dataflow para fluxos de trabalho
- Criar um gatilho para funções do Cloud Run
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: