StartTask interface
Dans certains cas, la tâche de démarrage peut être réexécuter même si le nœud n’a pas été redémarré. Pour cette raison, les tâches de démarrage doivent être idempotentes et quitter correctement si la configuration qu’elles effectuent a déjà été effectuée. Une attention particulière doit être prise pour éviter les tâches de démarrage qui créent un processus d’interruption ou installent/lancent des services à partir du répertoire de travail de la tâche de démarrage, car cela empêchera Batch de pouvoir réexécuter la tâche de démarrage.
Propriétés
command |
La ligne de commande ne s’exécute pas sous un interpréteur de commandes et ne peut donc pas tirer parti des fonctionnalités de l’interpréteur de commandes telles que l’expansion des variables d’environnement. Si vous souhaitez tirer parti de ces fonctionnalités, vous devez appeler l’interpréteur de commandes dans la ligne de commande, par exemple en utilisant « cmd /c MyCommand » dans Windows ou « /bin/sh -c MyCommand » dans Linux. Obligatoire si d’autres propriétés de startTask sont spécifiées. |
container |
Lorsque cela est spécifié, tous les répertoires sous la AZ_BATCH_NODE_ROOT_DIR (la racine des répertoires Azure Batch sur le nœud) sont mappés dans le conteneur, toutes les variables d’environnement de tâche sont mappées dans le conteneur et la ligne de commande de la tâche est exécutée dans le conteneur. |
environment |
Liste des paramètres de variable d’environnement pour la tâche de démarrage. |
max |
Le service Batch retente une tâche si le code de sortie de celle-ci diffère de zéro. Notez que cette valeur contrôle spécifiquement le nombre de nouvelles tentatives. Le service Batch tente la tâche une fois et peut réessayer jusqu’à cette limite. Par exemple, si le nombre maximal de nouvelles tentatives est de 3, Batch tente la tâche jusqu’à 4 fois (une tentative initiale et 3 tentatives). Si le nombre maximal de nouvelles tentatives est 0, le service Batch ne réessaye pas la tâche. Si le nombre maximal de nouvelles tentatives est -1, le service Batch retente la tâche sans limite. La valeur par défaut est 0 |
resource |
Liste des fichiers que le service Batch télécharge sur le nœud de calcul avant d’exécuter la ligne de commande. |
user |
Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche. |
wait |
Si la valeur est true et que la tâche de démarrage échoue sur un nœud de calcul, le service Batch retente la tâche de démarrage jusqu’à son nombre maximal de nouvelles tentatives (maxTaskRetryCount). Si la tâche ne s’est toujours pas terminée correctement après toutes les nouvelles tentatives, le service Batch marque le nœud de calcul inutilisable et ne planifie pas les tâches. Cette condition peut être détectée via l’état du nœud et les détails de l’erreur de planification. Si la valeur est false, le service Batch n’attend pas la fin de la tâche de démarrage. Dans ce cas, d’autres tâches peuvent commencer à s’exécuter sur le nœud de calcul pendant que la tâche de démarrage est toujours en cours d’exécution ; et même si la tâche de démarrage échoue, de nouvelles tâches continueront d’être planifiées sur le nœud. La valeur par défaut est true. |
Détails de la propriété
commandLine
La ligne de commande ne s’exécute pas sous un interpréteur de commandes et ne peut donc pas tirer parti des fonctionnalités de l’interpréteur de commandes telles que l’expansion des variables d’environnement. Si vous souhaitez tirer parti de ces fonctionnalités, vous devez appeler l’interpréteur de commandes dans la ligne de commande, par exemple en utilisant « cmd /c MyCommand » dans Windows ou « /bin/sh -c MyCommand » dans Linux. Obligatoire si d’autres propriétés de startTask sont spécifiées.
commandLine?: string
Valeur de propriété
string
containerSettings
Lorsque cela est spécifié, tous les répertoires sous la AZ_BATCH_NODE_ROOT_DIR (la racine des répertoires Azure Batch sur le nœud) sont mappés dans le conteneur, toutes les variables d’environnement de tâche sont mappées dans le conteneur et la ligne de commande de la tâche est exécutée dans le conteneur.
containerSettings?: TaskContainerSettings
Valeur de propriété
environmentSettings
Liste des paramètres de variable d’environnement pour la tâche de démarrage.
environmentSettings?: EnvironmentSetting[]
Valeur de propriété
maxTaskRetryCount
Le service Batch retente une tâche si le code de sortie de celle-ci diffère de zéro. Notez que cette valeur contrôle spécifiquement le nombre de nouvelles tentatives. Le service Batch tente la tâche une fois et peut réessayer jusqu’à cette limite. Par exemple, si le nombre maximal de nouvelles tentatives est de 3, Batch tente la tâche jusqu’à 4 fois (une tentative initiale et 3 tentatives). Si le nombre maximal de nouvelles tentatives est 0, le service Batch ne réessaye pas la tâche. Si le nombre maximal de nouvelles tentatives est -1, le service Batch retente la tâche sans limite. La valeur par défaut est 0
maxTaskRetryCount?: number
Valeur de propriété
number
resourceFiles
Liste des fichiers que le service Batch télécharge sur le nœud de calcul avant d’exécuter la ligne de commande.
resourceFiles?: ResourceFile[]
Valeur de propriété
userIdentity
Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche.
userIdentity?: UserIdentity
Valeur de propriété
waitForSuccess
Si la valeur est true et que la tâche de démarrage échoue sur un nœud de calcul, le service Batch retente la tâche de démarrage jusqu’à son nombre maximal de nouvelles tentatives (maxTaskRetryCount). Si la tâche ne s’est toujours pas terminée correctement après toutes les nouvelles tentatives, le service Batch marque le nœud de calcul inutilisable et ne planifie pas les tâches. Cette condition peut être détectée via l’état du nœud et les détails de l’erreur de planification. Si la valeur est false, le service Batch n’attend pas la fin de la tâche de démarrage. Dans ce cas, d’autres tâches peuvent commencer à s’exécuter sur le nœud de calcul pendant que la tâche de démarrage est toujours en cours d’exécution ; et même si la tâche de démarrage échoue, de nouvelles tâches continueront d’être planifiées sur le nœud. La valeur par défaut est true.
waitForSuccess?: boolean
Valeur de propriété
boolean