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
- Wenn Sie Batch zum ersten Mal verwenden, lesen Sie Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie den Voraussetzungen für Projekte und Nutzer.
- Erstellen oder identifizieren Sie ein Pub/Sub-Thema für Batch-Benachrichtigungen.
- Konfigurieren Sie ein Abo, um Benachrichtigungen zu erhalten und zu verwenden.
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:
-
Batch-Job-Editor (
roles/batch.jobsEditor
) für das Projekt. -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist. -
Pub/Sub-Editor (
roles/pubsub.editor
) für das Pub/Sub-Thema oder -Projekt.
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.
-
Batch-Job-Editor (
-
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
- Weitere Informationen zur Jobstatus mit Pub/Sub-Benachrichtigungen und BigQuery überwachen
- Wenn beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Abschnitt Fehlerbehebung.
- Aufträge und Aufgaben ansehen
- Weitere Informationen zu Optionen für die Joberstellung