Ce document explique comment créer un job par lot qui envoie des notifications Pub/Sub. Vous pouvez utiliser Pub/Sub pour recevoir des notifications lorsque l'état d'une tâche ou d'une tâche change, ou lorsqu'une tâche passe dans un état spécifique. Pour en savoir plus, consultez la page Surveiller les jobs à l'aide des notifications.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez la page Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations dont vous avez besoin pour créer et exécuter une tâche qui envoie des notifications, demandez à votre administrateur de vous attribuer les rôles IAM suivants:
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet. -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service de la tâche, qui est par défaut le compte de service Compute Engine par défaut -
Éditeur Pub/Sub (
roles/pubsub.editor
) sur le sujet ou le projet Pub/Sub
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de tâches par lot (
-
Pour vous assurer que le compte de service du job dispose des autorisations nécessaires pour publier des notifications Pub/Sub, demandez à votre administrateur d'accorder au compte de service du job le rôle IAM Éditeur Pub/Sub (
roles/pubsub.publisher
) sur votre sujet Pub/Sub.Par défaut, le compte de service de la tâche est le compte de service Compute Engine par défaut.
- Activez les notifications d'état Pub/Sub pour votre job.
- Vous pouvez également configurer Pub/Sub pour diffuser les notifications vers BigQuery.
Créer et exécuter un job qui envoie des notifications
Vous pouvez créer un job par lot qui envoie des notifications Pub/Sub en procédant comme suit:
Utilisez Google Cloud CLI ou l'API REST pour créer une tâche qui inclut le champ notifications
et un ou plusieurs objets jobNotification
dans le corps principal du fichier JSON:
"notifications": [
{
"pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
"message": {
ATTRIBUTES
}
},
]
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le sujet Pub/Sub.TOPIC_ID
: ID du sujet Pub/Sub que vous avez créé lors de l'activation des notifications Pub/Sub.ATTRIBUTES
: les attributs que vous spécifiez varient selon que vous souhaitez recevoir des notifications sur une tâche ou sur l'ensemble des tâches:Pour les notifications concernant tous les changements d'état d'un job, spécifiez les éléments suivants:
"type": "JOB_STATE_CHANGED"
Pour les notifications concernant un changement d'état de tâche spécifique, spécifiez les éléments suivants:
"type": "JOB_STATE_CHANGED", "newJobState": "JOB_STATE"
Remplacez
JOB_STATE
par l'un des états de tâche suivants:QUEUED
SCHEDULED
RUNNING
SUCCEEDED
FAILED
Pour en savoir plus sur les états des tâches, consultez la page Cycle de vie des tâches.
Pour les notifications concernant tous les changements d'état d'une tâche, spécifiez les éléments suivants:
"type": "TASK_STATE_CHANGED"
Pour les notifications concernant des changements d'état de tâches spécifiques, spécifiez les éléments suivants:
"type": "TASK_STATE_CHANGED", "newTaskState": "TASK_STATE"
Remplacez
TASK_STATE
par l'un des états de tâche suivants:PENDING
ASSIGNED
RUNNING
SUCCEEDED
FAILED
Pour en savoir plus sur les états des tâches, consultez la section Cycle de vie des tâches.
Par exemple, supposons que vous souhaitiez recevoir des notifications sur tous les changements d'état d'une tâche et chaque fois qu'une tâche échoue. Pour ce faire, vous devez ajouter les éléments suivants au fichier JSON de configuration de votre tâche:
"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"
}
}
]
Étapes suivantes
- Si vous rencontrez des problèmes pour créer ou exécuter un job, consultez la section Dépannage.
- Affichez les tâches et les tâches.
- En savoir plus sur les options de création de missions