Pub/Sub ステータス通知を送信するジョブを作成して実行する

このドキュメントでは、Pub/Sub 通知を送信する Batch ジョブを作成する方法について説明します。Pub/Sub を使用して、ジョブやタスクの状態が変更されたときや、ジョブまたはタスクが特定の状態になったときに通知を受け取ることができます。詳細については、通知を使用してジョブをモニタリングするをご覧ください。

準備

通知を送信するジョブを作成して実行する

次の手順を行って、Pub/Sub 通知を送信する Batch ジョブを作成できます。

Google Cloud CLI または REST API を使用して、JSON ファイルの本文に notifications フィールドと 1 つ以上の 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"
      }
    }
  ]

次のステップ