Usa Eventarc para administrar trabajos de Dataflow

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

Por ejemplo, el flujo de trabajo podría ser el siguiente:

  • Envía una alerta a un ingeniero de guardia si falla un trabajo esencial.
  • Notifica a los usuarios cuando se completa un trabajo por lotes o inicia otro trabajo de Dataflow.
  • Limpia 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. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Eventarc.

    Habilita las API

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

    Go to project selector

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de Eventarc.

    Habilita las API

Para usar la API de Eventarc, tu proyecto debe tener una cuota suficiente. Además, la cuenta de servicio asociada con el activador de Eventarc debe tener los permisos adecuados.

Elige un destino de 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 Cloud Functions a fin de crear un activador HTTP independiente.
  • Para un flujo de trabajo más complejo, puedes usar flujos de trabajo.
  • 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

A fin de crear un activador de Eventarc para los cambios de estado del trabajo 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 un ejemplo de carga útil:

{
  "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 un trabajo, consulta los siguientes temas:

¿Qué sigue?