Job erstellen und ausführen, der Pub/Sub-Statusbenachrichtigungen sendet

In diesem Dokument wird erläutert, wie Sie einen Batchjob erstellen, der Pub/Sub-Benachrichtigungen Sie können Pub/Sub verwenden, um Benachrichtigungen zu erhalten, wenn ein Job- oder Aufgabenstatus oder wenn ein Job oder eine Aufgabe in einen bestimmten Status wechselt. Weitere Informationen Siehe Jobs mithilfe von Benachrichtigungen überwachen.

Hinweise

Erforderliche Rollen

  • So erhalten Sie die Berechtigungen, die Sie zum Erstellen und Ausführen eines Jobs zum Senden von Benachrichtigungen benötigen: bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  • Es sei denn, Sie verwenden die Standardkonfiguration für über das Dienstkonto des Jobs ob sie die erforderlichen Berechtigungen hat.

    Um sicherzustellen, dass das Dienstkonto des Auftrags die erforderlichen zum Veröffentlichen von Pub/Sub-Benachrichtigungen, Bitten Sie Ihren Administrator, dem Dienstkonto des Auftrags die Berechtigung IAM-Rolle Pub/Sub-Publisher (roles/pubsub.publisher) für Ihr Pub/Sub-Thema

  • Wenn Sie möchten, dass ein Job Benachrichtigungen in einem Pub/Sub-Thema veröffentlicht, sich in einem anderen Projekt befindet als der Job, Batch-Dienst-Agent für das Projekt des Jobs muss die Berechtigung zum Veröffentlichen in diesem Thema gewährt werden.

    Damit der Batch-Dienst-Agent für das Projekt des Jobs die erforderlichen Berechtigungen zum Veröffentlichen von Pub/Sub-Benachrichtigungen in einem Pub/Sub-Thema in einem anderen Projekt, Bitten Sie Ihren Administrator, dem Batch-Dienst-Agent für das Projekt des Jobs die IAM-Rolle Pub/Sub-Publisher (roles/pubsub.publisher) für das Pub/Sub-Thema

Job erstellen und ausführen, der Benachrichtigungen sendet

Sie können einen Batchjob erstellen, der Pub/Sub-Benachrichtigungen sendet Dazu gehen Sie so vor:

Verwenden Sie die Google Cloud CLI oder REST API, um einen Job erstellen, der enthält das Feld notifications und mindestens eins jobNotification Objekte im Haupttext der JSON-Datei:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID des Projekts, das enthält das Pub/Sub-Thema.
  • TOPIC_ID: die Pub/Sub-Themen-ID des Themas die Sie erstellt haben, als Sie Pub/Sub-Benachrichtigungen aktiviert.
  • ATTRIBUTES: Geben Sie mindestens eine der folgenden Optionen an. Attribute, mit denen Sie jeweils Benachrichtigungen über den Status der Job oder allen zugehörigen Aufgaben.

    • Geben Sie für Benachrichtigungen zu allen Jobstatusänderungen Folgendes an:

      "type": "JOB_STATE_CHANGED"
      
    • Geben Sie für Benachrichtigungen über eine bestimmte Änderung des Jobstatus Folgendes an:

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

      Ersetzen Sie JOB_STATE durch einen der folgenden Jobs Bundesländer:

      • QUEUED
      • SCHEDULED
      • RUNNING
      • SUCCEEDED
      • FAILED

      Weitere Informationen zum Jobstatus finden Sie unter Joblebenszyklus.

    • Geben Sie für Benachrichtigungen über alle Änderungen des Aufgabenstatus Folgendes an:

      "type": "TASK_STATE_CHANGED"
      
    • Geben Sie für Benachrichtigungen zu bestimmten Aufgabenstatusänderungen Folgendes an:

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

      Ersetzen Sie TASK_STATE durch einen der folgenden Werte: Aufgabenstatus:

      • PENDING
      • ASSIGNED
      • RUNNING
      • SUCCEEDED
      • FAILED

      Weitere Informationen zum Aufgabenstatus finden Sie unter Joblebenszyklus.

Angenommen, Sie möchten Benachrichtigungen über den gesamten Jobstatus erhalten. und wann immer eine Aufgabe fehlschlägt. Dazu können Sie eine JSON-Datei verwenden, die in etwa so aussieht:

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello World! This is task $BATCH_TASK_INDEX."
            }
          }
        ]
      },
      "taskCount": 3,
    }
  ],
  "logsPolicy": {
      "destination": "CLOUD_LOGGING"
  },
  "notifications": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "message": {
        "type": "JOB_STATE_CHANGED"
      }
    },
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "message": {
        "type": "TASK_STATE_CHANGED",
        "newTaskState": "FAILED"
      }
    }
  ]
}

Nachdem der Job gestartet wurde, können Sie die zugehörigen Benachrichtigungen verwenden. Beispiel: Das Pub/Sub-Thema für Ihren Job hat ein Abo. die Benachrichtigungen an BigQuery sendet, können Sie Pub/Sub-Benachrichtigungen in BigQuery analysieren

Nächste Schritte