Ce document explique comment surveiller les changements d'état d'une tâche à l'aide de notifications Pub/Sub et comment diffuser éventuellement ces notifications vers BigQuery.
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.
Rôles requis
-
Afin d'obtenir les autorisations nécessaires pour créer un sujet Pub/Sub, demandez à votre administrateur de vous attribuer le rôle IAM É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.
-
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.
-
Pour vous assurer que le compte de service Pub/Sub dispose des autorisations nécessaires pour diffuser des notifications Pub/Sub vers BigQuery, demandez à votre administrateur d'attribuer au compte de service Pub/Sub le rôle IAM Éditeur de données BigQuery (
roles/bigquery.dataEditor
) sur le projet.Pour en savoir plus sur l'attribution de ce rôle, consultez la section Attribuer des rôles BigQuery au compte de service Pub/Sub.
-
Pour obtenir les autorisations nécessaires pour interroger les notifications Pub/Sub dans BigQuery, demandez à votre administrateur de vous attribuer les rôles IAM suivants:
-
Utilisateur de tâche BigQuery (
roles/bigquery.jobUser
) sur le projet -
Lecteur de données BigQuery (
roles/bigquery.dataViewer
) sur votre table BigQuery
-
Utilisateur de tâche BigQuery (
Utiliser les notifications Pub/Sub avec Batch
Batch est compatible avec les notifications Pub/Sub sur les états des tâches et des tâches pour les alertes, l'observabilité ou une utilisation avec BigQuery.
Vous pouvez recevoir des notifications chaque fois que l'état d'une tâche change, ou vous pouvez filtrer les données en fonction des états d'une tâche ou d'une tâche spécifiés. Les attributs de notifications d'état de tâche sont appliqués pour toutes les tâches d'une tâche, et non pour des tâches spécifiques au sein d'une tâche. Pour en savoir plus sur les états des tâches et des tâches, consultez la page Cycle de vie des tâches.
Activer les notifications pour une tâche
Pour activer les notifications Pub/Sub pour une tâche, procédez comme suit:
- Créez un sujet Pub/Sub dans le projet dans lequel vous souhaitez exécuter votre job par lot.
- Vous pouvez également configurer Pub/Sub pour diffuser les notifications vers BigQuery.
- Créez une tâche qui envoie des notifications Pub/Sub.
Configurer Pub/Sub pour diffuser les notifications dans BigQuery
Si vous souhaitez conserver l'historique des changements d'état des tâches et que vous souhaitez interroger ces modifications, vous pouvez diffuser des notifications Pub/Sub vers BigQuery en procédant comme suit:
Si vous ne l'avez pas déjà fait, activez les notifications pour une tâche.
Si vous n'en avez pas encore, créez un ensemble de données BigQuery.
Créez une table BigQuery avec la définition de schéma suivante:
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
Créez un abonnement Pub/Sub qui diffuse des données vers BigQuery et spécifiez les éléments suivants:
- Topic (Sujet) : sélectionnez le sujet Pub/Sub que vous avez créé précédemment.
- Project (Projet) : sélectionnez le projet contenant votre table BigQuery.
- Ensemble de données: sélectionnez l'ensemble de données contenant votre table BigQuery.
- Table: sélectionnez la table que vous avez créée à l'étape précédente.
- Sélectionnez Use topic schema (Utiliser un schéma avec thèmes).
- Sélectionnez Écrire les métadonnées.
Lorsque la tâche par lot s'exécute, Pub/Sub diffuse les notifications vers BigQuery.
Analyser les notifications dans BigQuery
Analysez les notifications Pub/Sub dans BigQuery en exécutant une requête dans la colonne attributes
de la table BigQuery. Les attributs que vous pouvez interroger varient selon que vous avez configuré les notifications pour les tâches ou les tâches.
Vous pouvez interroger les attributs suivants des notifications de tâches:
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
Vous pouvez interroger les attributs de notifications de tâches suivants:
JobUID
JobName
NewJobState
Region
Type
Par exemple, la requête suivante affiche le JobUID
associé à chaque notification:
select attributes.JobUID from `example-table`
Étapes suivantes
- Apprenez à analyser une tâche à l'aide des journaux.