BatchJobManagerTask interface
Spécifie les détails d’une tâche du Gestionnaire de travaux. La tâche du Gestionnaire de travaux est automatiquement démarrée lors de la création du travail. Le service Batch tente de planifier la tâche du Gestionnaire de travaux avant toute autre tâche du travail. Lors de la réduction d’un pool, le service Batch tente de conserver les nœuds dans lesquels les tâches du Gestionnaire de travaux s’exécutent aussi longtemps que possible (autrement dit, les nœuds de calcul exécutant des tâches « normales » sont supprimées avant que les nœuds de calcul n’exécutent les tâches du Gestionnaire de travaux). Lorsqu’une tâche du Gestionnaire de travaux échoue et doit être redémarrée, le système tente de le planifier en priorité la plus élevée. S’il n’existe aucun nœud de calcul inactif disponible, le système peut mettre fin à l’une des tâches en cours d’exécution dans le pool et le retourner à la file d’attente pour que la tâche du Gestionnaire de travaux redémarre. Notez qu’une tâche du Gestionnaire de travaux dans un travail n’a pas de priorité sur les tâches dans d’autres travaux. Parmi les travaux, seules les priorités au niveau du travail sont observées. Par exemple, si un gestionnaire de travaux dans une priorité 0 travail doit être redémarré, il ne déplace pas les tâches d’un travail prioritaire 1. Batch réessaye les tâches lorsqu’une opération de récupération est déclenchée sur un nœud. Les exemples d’opérations de récupération incluent (mais ne sont pas limités) lorsqu’un nœud non sain est redémarré ou qu’un nœud de calcul a disparu en raison d’une défaillance de l’hôte. Les nouvelles tentatives en raison d’opérations de récupération sont indépendantes et ne sont pas comptabilisées par rapport au maxTaskRetryCount. Même si maxTaskRetryCount est 0, une nouvelle tentative interne en raison d’une opération de récupération peut se produire. En raison de cela, toutes les tâches doivent être idempotentes. Cela signifie que les tâches doivent tolérer l’interruption et le redémarrage sans provoquer d’altération ou de doublon des données. La meilleure pratique pour les tâches longues consiste à utiliser une forme de point de contrôle.
Propriétés
| allow |
Si la tâche du gestionnaire de tâches peut s’exécuter sur un nœud de calcul spot/faible priorité. La valeur par défaut est true. |
| application |
Une liste des paquets applicatifs que le service Batch déploiera sur le nœud de calcul avant d’exécuter la ligne de commande. Les packages d’applications sont téléchargés et déployés dans un répertoire partagé, et non dans le répertoire de travail Tâches. Par conséquent, si un application Package référencé est déjà sur le nœud de calcul et est à jour, il n’est pas retéléchargé ; la copie existante sur le nœud de calcul est utilisée. Si un paquet Application référencé ne peut pas être installé, par exemple parce qu’il a été supprimé ou parce que le téléchargement a échoué, la tâche échoue. |
| authentication |
Paramètres d’un jeton d’authentification que la tâche peut utiliser pour effectuer des opérations de service Batch. Si cette propriété est activée, le service Batch fournit à la tâche un jeton d’authentification qui peut être utilisé pour authentifier les opérations du service Batch sans nécessiter de clé d’accès au compte. Le jeton est fourni via la variable d’environnement AZ_BATCH_AUTHENTICATION_TOKEN. Les opérations que la tâche peut effectuer avec le jeton dépendent des réglages. Par exemple, une tâche peut demander des permissions de travail afin d’ajouter d’autres tâches à la tâche, ou vérifier le statut de la tâche ou d’autres tâches sous la tâche. |
| command |
La ligne de commande de la tâche du gestionnaire de tâches. 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’extension de variable 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. Si la ligne de commande fait référence à des chemins de fichier, elle doit utiliser un chemin relatif (par rapport au répertoire de travail de tâche) ou utiliser la variable d’environnement fournie par Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Contraintes qui s’appliquent à la tâche Gestionnaire de Job. |
| container |
Les paramètres du conteneur sous lequel s’exécute la tâche du gestionnaire de tâches. Si le pool qui exécutera cette tâche a containerConfiguration définie, cela doit aussi être configuré. Si le pool qui exécutera cette tâche n’a pas containerConfiguration défini, cela ne doit pas être défini. Lorsque cela est spécifié, tous les répertoires sous le 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 de l’environnement Tâche sont mappées dans le conteneur, et la ligne de commande Tâche est exécutée dans le conteneur. Les fichiers produits dans le conteneur en dehors de AZ_BATCH_NODE_ROOT_DIR peuvent ne pas être reflétés sur le disque hôte, ce qui signifie que les API de fichiers Batch ne pourront pas accéder à ces fichiers. |
| display |
Le nom affiché de la tâche Job Manager. Il n’a pas besoin d’être unique et peut contenir n’importe quel caractère Unicode jusqu’à une longueur maximale de 1024. |
| environment |
Une liste des paramètres des variables d’environnement pour la tâche Job Manager. |
| id | Une chaîne qui identifie de manière unique la tâche du gestionnaire de poste au sein du poste. L’ID peut contenir n’importe quelle combinaison de caractères alphanumériques, y compris les traits d’union et les soulignements, et ne peut pas contenir plus de 64 caractères. |
| kill |
Si la réalisation de la tâche de gestionnaire de poste signifie l’achèvement de l’ensemble du travail. Si c’est vrai, lorsque la tâche du gestionnaire de tâches est terminée, le service Batch marque le travail comme terminé. Si des tâches sont encore en cours à ce moment (à l’exception de la libération de poste), ces tâches sont terminées. Si c’est faux, l’accomplissement de la tâche du gestionnaire de tâches n’affecte pas le statut du poste. Dans ce cas, vous devriez soit utiliser l’attribut onAllTasksComplete pour terminer le Job, soit demander à un client ou utilisateur de mettre explicitement fin au Job. Un exemple est si le gestionnaire de tâches crée un ensemble de tâches mais ne joue plus aucun rôle dans leur exécution. La valeur par défaut est true. Si vous utilisez les attributs onAllTasksComplete et onTaskFailure pour contrôler la durée de vie du poste, et que vous utilisez la tâche du gestionnaire de tâches uniquement pour créer les tâches pour le poste (et non pour surveiller l’avancement), alors il est important de définir killJobOnCompletion sur false. |
| output |
Une liste de fichiers que le service Batch téléversera depuis le nœud de calcul après avoir lancé la ligne de commande. Pour les tâches multi-instances, les fichiers ne seront téléchargés que depuis le nœud de calcul sur lequel la tâche principale est exécutée. |
| required |
Le nombre de créneaux de planification que la tâche doit exécuter. La valeur par défaut est 1. Une tâche ne peut être programmée pour s’exécuter sur un nœud de calcul que si le nœud dispose de suffisamment de créneaux libres pour la planification disponible. Pour les tâches multi-instances, cette propriété n’est pas prise en charge et ne doit pas être spécifiée. |
| 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. Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche. Il existe une taille maximale pour la liste des fichiers de ressources. Lorsque la taille maximale est dépassée, la requête échoue et le code d’erreur de réponse est RequestEntityTooLarge. Si cela se produit, la collection de ResourceFiles doit être réduite en taille. Pour ce faire, vous pouvez utiliser des fichiers .zip, des packages d’application ou des conteneurs Docker. |
| run |
Si la tâche du gestionnaire de tâches nécessite l’utilisation exclusive du nœud de calcul où elle s’exécute. Si c’est vrai, aucune autre tâche ne s’exécutera sur le même nœud tant que le gestionnaire de tâches est en cours. En cas de faux, d’autres tâches peuvent s’exécuter simultanément avec le gestionnaire de tâches sur un nœud de calcul. La tâche du gestionnaire de tâches compte normalement dans la limite de tâches concurrentes du nœud de calcul, donc cela n’est pertinent que si le nœud de calcul permet plusieurs tâches simultanées. La valeur par défaut est true. |
| user |
L’identité utilisateur sous laquelle la tâche du gestionnaire de tâches s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche. |
Détails de la propriété
allowLowPriorityNode
Si la tâche du gestionnaire de tâches peut s’exécuter sur un nœud de calcul spot/faible priorité. La valeur par défaut est true.
allowLowPriorityNode?: boolean
Valeur de propriété
boolean
applicationPackageReferences
Une liste des paquets applicatifs que le service Batch déploiera sur le nœud de calcul avant d’exécuter la ligne de commande. Les packages d’applications sont téléchargés et déployés dans un répertoire partagé, et non dans le répertoire de travail Tâches. Par conséquent, si un application Package référencé est déjà sur le nœud de calcul et est à jour, il n’est pas retéléchargé ; la copie existante sur le nœud de calcul est utilisée. Si un paquet Application référencé ne peut pas être installé, par exemple parce qu’il a été supprimé ou parce que le téléchargement a échoué, la tâche échoue.
applicationPackageReferences?: BatchApplicationPackageReference[]
Valeur de propriété
authenticationTokenSettings
Paramètres d’un jeton d’authentification que la tâche peut utiliser pour effectuer des opérations de service Batch. Si cette propriété est activée, le service Batch fournit à la tâche un jeton d’authentification qui peut être utilisé pour authentifier les opérations du service Batch sans nécessiter de clé d’accès au compte. Le jeton est fourni via la variable d’environnement AZ_BATCH_AUTHENTICATION_TOKEN. Les opérations que la tâche peut effectuer avec le jeton dépendent des réglages. Par exemple, une tâche peut demander des permissions de travail afin d’ajouter d’autres tâches à la tâche, ou vérifier le statut de la tâche ou d’autres tâches sous la tâche.
authenticationTokenSettings?: AuthenticationTokenSettings
Valeur de propriété
commandLine
La ligne de commande de la tâche du gestionnaire de tâches. 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’extension de variable 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. Si la ligne de commande fait référence à des chemins de fichier, elle doit utiliser un chemin relatif (par rapport au répertoire de travail de tâche) ou utiliser la variable d’environnement fournie par Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valeur de propriété
string
constraints
Contraintes qui s’appliquent à la tâche Gestionnaire de Job.
constraints?: BatchTaskConstraints
Valeur de propriété
containerSettings
Les paramètres du conteneur sous lequel s’exécute la tâche du gestionnaire de tâches. Si le pool qui exécutera cette tâche a containerConfiguration définie, cela doit aussi être configuré. Si le pool qui exécutera cette tâche n’a pas containerConfiguration défini, cela ne doit pas être défini. Lorsque cela est spécifié, tous les répertoires sous le 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 de l’environnement Tâche sont mappées dans le conteneur, et la ligne de commande Tâche est exécutée dans le conteneur. Les fichiers produits dans le conteneur en dehors de AZ_BATCH_NODE_ROOT_DIR peuvent ne pas être reflétés sur le disque hôte, ce qui signifie que les API de fichiers Batch ne pourront pas accéder à ces fichiers.
containerSettings?: BatchTaskContainerSettings
Valeur de propriété
displayName
Le nom affiché de la tâche Job Manager. Il n’a pas besoin d’être unique et peut contenir n’importe quel caractère Unicode jusqu’à une longueur maximale de 1024.
displayName?: string
Valeur de propriété
string
environmentSettings
Une liste des paramètres des variables d’environnement pour la tâche Job Manager.
environmentSettings?: EnvironmentSetting[]
Valeur de propriété
id
Une chaîne qui identifie de manière unique la tâche du gestionnaire de poste au sein du poste. L’ID peut contenir n’importe quelle combinaison de caractères alphanumériques, y compris les traits d’union et les soulignements, et ne peut pas contenir plus de 64 caractères.
id: string
Valeur de propriété
string
killJobOnCompletion
Si la réalisation de la tâche de gestionnaire de poste signifie l’achèvement de l’ensemble du travail. Si c’est vrai, lorsque la tâche du gestionnaire de tâches est terminée, le service Batch marque le travail comme terminé. Si des tâches sont encore en cours à ce moment (à l’exception de la libération de poste), ces tâches sont terminées. Si c’est faux, l’accomplissement de la tâche du gestionnaire de tâches n’affecte pas le statut du poste. Dans ce cas, vous devriez soit utiliser l’attribut onAllTasksComplete pour terminer le Job, soit demander à un client ou utilisateur de mettre explicitement fin au Job. Un exemple est si le gestionnaire de tâches crée un ensemble de tâches mais ne joue plus aucun rôle dans leur exécution. La valeur par défaut est true. Si vous utilisez les attributs onAllTasksComplete et onTaskFailure pour contrôler la durée de vie du poste, et que vous utilisez la tâche du gestionnaire de tâches uniquement pour créer les tâches pour le poste (et non pour surveiller l’avancement), alors il est important de définir killJobOnCompletion sur false.
killJobOnCompletion?: boolean
Valeur de propriété
boolean
outputFiles
Une liste de fichiers que le service Batch téléversera depuis le nœud de calcul après avoir lancé la ligne de commande. Pour les tâches multi-instances, les fichiers ne seront téléchargés que depuis le nœud de calcul sur lequel la tâche principale est exécutée.
outputFiles?: OutputFile[]
Valeur de propriété
requiredSlots
Le nombre de créneaux de planification que la tâche doit exécuter. La valeur par défaut est 1. Une tâche ne peut être programmée pour s’exécuter sur un nœud de calcul que si le nœud dispose de suffisamment de créneaux libres pour la planification disponible. Pour les tâches multi-instances, cette propriété n’est pas prise en charge et ne doit pas être spécifiée.
requiredSlots?: 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. Les fichiers répertoriés sous cet élément se trouvent dans le répertoire de travail de la tâche. Il existe une taille maximale pour la liste des fichiers de ressources. Lorsque la taille maximale est dépassée, la requête échoue et le code d’erreur de réponse est RequestEntityTooLarge. Si cela se produit, la collection de ResourceFiles doit être réduite en taille. Pour ce faire, vous pouvez utiliser des fichiers .zip, des packages d’application ou des conteneurs Docker.
resourceFiles?: ResourceFile[]
Valeur de propriété
runExclusive
Si la tâche du gestionnaire de tâches nécessite l’utilisation exclusive du nœud de calcul où elle s’exécute. Si c’est vrai, aucune autre tâche ne s’exécutera sur le même nœud tant que le gestionnaire de tâches est en cours. En cas de faux, d’autres tâches peuvent s’exécuter simultanément avec le gestionnaire de tâches sur un nœud de calcul. La tâche du gestionnaire de tâches compte normalement dans la limite de tâches concurrentes du nœud de calcul, donc cela n’est pertinent que si le nœud de calcul permet plusieurs tâches simultanées. La valeur par défaut est true.
runExclusive?: boolean
Valeur de propriété
boolean
userIdentity
L’identité utilisateur sous laquelle la tâche du gestionnaire de tâches s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administratif unique à la tâche.
userIdentity?: UserIdentity