创建并运行发送 Pub/Sub 状态通知的作业

本文档介绍如何创建发送 Pub/Sub 通知的批处理作业。您可以使用 Pub/Sub 在作业或任务状态发生变化时或者作业或任务进入特定状态时接收通知。如需了解详情,请参阅使用通知监控作业

准备工作

创建并运行可发送通知的作业

您可以执行以下操作,创建发送 Pub/Sub 通知的批处理作业:

使用 Google Cloud CLI 或 REST API 创建一个作业,在 JSON 文件的正文中包含 notifications 字段以及一个或多个 jobNotification 对象

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

替换以下内容:

  • PROJECT_ID:包含 Pub/Sub 主题的项目的 ID。
  • TOPIC_ID:您在启用 Pub/Sub 通知时创建的主题的 Pub/Sub 主题 ID。
  • ATTRIBUTES:您指定的属性取决于您是想要接收有关作业的通知,还是要接收有关作业中所有任务的通知:

    • 对于有关所有作业状态更改的通知,请指定以下内容:

      "type": "JOB_STATE_CHANGED"
      
    • 对于有关特定作业状态更改的通知,请指定以下内容:

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

      JOB_STATE 替换为以下作业状态之一:

      • QUEUED
      • SCHEDULED
      • RUNNING
      • SUCCEEDED
      • FAILED

      如需详细了解作业状态,请参阅作业生命周期

    • 对于有关所有任务状态更改的通知,请指定以下内容:

      "type": "TASK_STATE_CHANGED"
      
    • 对于有关特定任务状态更改的通知,请指定以下内容:

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

      TASK_STATE 替换为以下任务状态之一:

      • PENDING
      • ASSIGNED
      • RUNNING
      • SUCCEEDED
      • FAILED

      如需详细了解任务状态,请参阅作业生命周期

例如,假设您希望在任务失败时接收有关所有作业状态更改的通知。为此,您需要将以下内容添加到作业的配置 JSON 文件中:

  "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"
      }
    }
  ]

后续步骤