Crea y ejecuta un trabajo que envíe notificaciones del estado de Pub/Sub

En este documento, se explica cómo crear un trabajo por lotes que envíe notificaciones de Pub/Sub. Puedes usar Pub/Sub para recibir notificaciones cuando cambie el estado de un trabajo o una tarea, o cuando un trabajo o una tarea entren en un estado específico. Para obtener más información, consulta Supervisa trabajos mediante notificaciones.

Antes de comenzar

Crea y ejecuta un trabajo que envíe notificaciones

Puedes crear un trabajo por lotes que envíe notificaciones de Pub/Sub de la siguiente manera:

Usa Google Cloud CLI o la API de REST para crear un trabajo que incluya el campo notifications y uno o más objetos jobNotification en el cuerpo principal del archivo JSON:

  "notifications": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "message": {
        ATTRIBUTES
      }
    },
  ]

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto que contiene el tema de Pub/Sub.
  • TOPIC_ID: Es el ID del tema de Pub/Sub del tema que creaste cuando habilitaste las notificaciones de Pub/Sub.
  • ATTRIBUTES: Los atributos que especificas dependen de si deseas recibir notificaciones sobre un trabajo o todas las tareas del trabajo:

    • Para las notificaciones sobre todos los cambios de estado de trabajos, especifica lo siguiente:

      "type": "JOB_STATE_CHANGED"
      
    • Para las notificaciones sobre un cambio de estado de trabajo específico, especifica lo siguiente:

      "type": "JOB_STATE_CHANGED",
      "newJobState": "JOB_STATE"
      

      Reemplaza JOB_STATE por uno de los siguientes estados de trabajo:

      • QUEUED
      • SCHEDULED
      • RUNNING
      • SUCCEEDED
      • FAILED

      Para obtener más información sobre los estados de los trabajos, consulta Ciclo de vida del trabajo.

    • Para las notificaciones sobre todos los cambios de estado de las tareas, especifica lo siguiente:

      "type": "TASK_STATE_CHANGED"
      
    • Para las notificaciones sobre cambios en el estado de tareas específicas, especifica lo siguiente:

      "type": "TASK_STATE_CHANGED",
      "newTaskState": "TASK_STATE"
      

      Reemplaza TASK_STATE por uno de los siguientes estados de tarea:

      • PENDING
      • ASSIGNED
      • RUNNING
      • SUCCEEDED
      • FAILED

      Para obtener más información sobre los estados de las tareas, consulta Ciclo de vida de los trabajos.

Por ejemplo, supongamos que deseas recibir notificaciones sobre todos los cambios de estado de los trabajos y cada vez que una tarea falla. Para hacerlo, agrega lo siguiente al archivo de configuración JSON de tu trabajo:

  "notifications": [
    {
      "pubsubTopic": "projects/example-projecet/topics/example-topic",
      "message": {
        "type": "JOB_STATE_CHANGED"
      }
    },
    {
      "pubsubTopic": "projects/example-project/topics/example-topic",
      "message": {
        "type": "TASK_STATE_CHANGED",
        "newTaskState": "FAILED"
      }
    }
  ]

¿Qué sigue?