Usa Eventarc para administrar trabajos de Dataflow

En este documento, se describe cómo crear flujos de trabajo basados en eventos y activados por cambios de estado en tus trabajos de Dataflow.

Por ejemplo, tu flujo de trabajo podría hacer lo siguiente:

  • Enviar una alerta a un ingeniero de guardia si falla un trabajo esencial
  • Notificar a los usuarios cuando se complete un trabajo por lotes o se inicie otro trabajo de Dataflow
  • Liberar los recursos que usa un trabajo, como los buckets de Cloud Storage

Descripción general

Eventarc es un servicio de Google Cloud que puede escuchar eventos de otros servicios y enrutarlos a varios destinos.

Cuando ejecutas un trabajo de Dataflow, este pasa por varios estados, como JOB_STATE_QUEUED, JOB_STATE_RUNNING y JOB_STATE_DONE. La integración de Dataflow con Eventarc te permite activar una acción cuando un trabajo cambia de estado.

Debido a que Eventarc es un servicio administrado, no necesitas aprovisionar ni administrar la infraestructura subyacente.

Antes de comenzar

  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 la API de Eventarc, el proyecto debe tener suficiente cuota. Además, la cuenta de servicio asociada con el activador de Eventarc debe tener los permisos adecuados.

Elige el destino de un evento

Elige un destino de evento para recibirlo. El destino determina el siguiente paso en tu flujo de trabajo.

Por ejemplo:

  • Para enviar una alerta por SMS, puedes usar las funciones de Cloud Run para crear un activador HTTP independiente.
  • Para un flujo de trabajo más complejo, puedes usar Workflows.
  • Si tu canalización de Dataflow es parte de una solución más grande que se ejecuta en Google Kubernetes Engine, el activador puede enrutar el evento a un servicio de GKE que se ejecuta en tu clúster.

Para obtener más información sobre este estilo de arquitectura, consulta Arquitecturas controladas por eventos en la documentación de Eventarc.

Crear un activador

Si quieres crear un activador de Eventarc para los cambios de estado de trabajos de Dataflow, consulta uno de los siguientes documentos:

De manera opcional, puedes filtrar eventos por ID de trabajo de Dataflow. Por ejemplo, puedes seleccionar los IDs de trabajo que coincidan con una expresión regular. Para obtener más información, consulta Información sobre los patrones de ruta de acceso.

Procesa eventos

Los datos del evento describen el trabajo de Dataflow en el momento en que se activó el evento. La carga útil es similar al tipo de recurso Job, con los campos steps, pipeline_description y transform_name_mapping omitidos. Además, según el estado del trabajo, es posible que algunos campos no estén presentes.

A continuación, se muestra una carga útil de ejemplo:

{
  "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 obtener más información sobre los estados de trabajo, consulta los siguientes temas:

¿Qué sigue?