Ce document explique comment créer et exécuter un job qui n'est planifié que lorsque des jobs spécifiques ont réussi ou échoué. Pour en savoir plus sur les états des tâches, consultez la section Présentation de la création et de l'exécution des tâches.
Si votre charge de travail présente des besoins en ressources variables, envisagez d'utiliser des tâches dépendantes pour créer une chaîne automatisée de tâches qui utilisent chacune des VM distinctes. Par exemple, séparez les types de VM utilisés pour les opérations à faible demande (comme la préparation des données) et les opérations gourmandes en calcul (comme le traitement des données). En utilisant des tâches dépendantes pour optimiser la consommation de ressources, vous pouvez réduire les coûts et l'utilisation des quotas.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour créer un job, demandez à votre administrateur de vous accorder 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
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
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 (
Restrictions
Les tâches dépendantes sont soumises aux restrictions suivantes:
Une tâche dépendante peut avoir jusqu'à quatre dépendances. Chaque dépendance doit contenir un nom de tâche unique et l'un des états obligatoires suivants:
SUCCEEDED
: réussiFAILED
: échecFINISHED
: succès ou échec
Lorsque vous créez une tâche dépendante, toutes ses tâches de dépendance doivent exister.
Une tâche dépendante ne peut pas passer à l'état planifié (
SCHEDULED
) tant que chaque tâche de dépendance n'a pas atteint l'état requis. Si une tâche de dépendance ne peut plus atteindre l'état requis, la tâche dépendante échoue immédiatement sans être planifiée.
Créer une tâche dépendante
Vous pouvez créer un job dépendant à l'aide des méthodes suivantes:
- Pour Google Cloud CLI, utilisez la commande
gcloud alpha batch jobs submit
. - Pour l'API Batch, utilisez la méthode
jobs.create
v1alpha.
Pour spécifier qu'une tâche est dépendante, incluez le champ dependencies[].items
, qui accepte une ou plusieurs dépendances spécifiées sous forme de paires clé-valeur, dans le corps principal du fichier JSON:
"dependencies": [
{
"items": {
"DEPENDENCY_JOB_NAME": "REQUIRED_STATE"
}
}
]
Remplacez les éléments suivants :
DEPENDENCY_JOB_NAME
: nom d'une tâche de dépendance, qui doit atteindre son état requis avant que cette tâche dépendante puisse être planifiée.REQUIRED_STATE
: état requis pour la tâche de dépendance correspondante, qui doit êtreSUCCEEDED
,FAILED
ouFINISHED
.
Par exemple, une tâche dépendante avec trois dépendances peut avoir un fichier de configuration JSON semblable à celui-ci:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX."
}
}
]
},
"taskCount": 3
}
],
"dependencies": [
{
"items": {
"DEPENDENCY_JOB_NAME_1": "REQUIRED_STATE_1",
"DEPENDENCY_JOB_NAME_2": "REQUIRED_STATE_2",
"DEPENDENCY_JOB_NAME_3": "REQUIRED_STATE_3"
}
}
]
}
Étape suivante
- Si vous rencontrez des difficultés pour créer ou exécuter une tâche, consultez la section Dépannage.
- Découvrez comment afficher les jobs et les tâches.
- Découvrez d'autres options de création de tâches.