BatchTask interface
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
| affinity |
Un indice de localité qui peut être utilisé par le service Batch pour sélectionner un nœud de calcul sur lequel commencer la nouvelle tâche. |
| application |
Une liste des paquets que le service Batch déploiera sur le nœud de calcul avant d’exécuter la ligne de commande. Les packages applicatifs sont téléchargés et déployés dans un répertoire partagé, et non dans le répertoire de travail Task. Par conséquent, si un paquet référencé est déjà sur le nœud 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 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. Pour les tâches multi-instances, la ligne de commande est exécutée comme tâche principale, après que la tâche principale et toutes les sous-tâches ont terminé l’exécution de la ligne de commande de coordination. 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 | Les contraintes d’exécution qui s’appliquent à cette tâche. |
| container |
Les paramètres du conteneur sous lequel la tâche s’exécute. 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. |
| creation |
Le moment de création de la Tâche. |
| depends |
Les tâches dont cette tâche dépend. Cette tâche ne sera pas programmée tant que toutes les tâches dont elle dépend n’auront pas été achevées avec succès. Si l’une de ces tâches échoue et épuise son nombre de réessays, cette tâche ne sera jamais programmée. |
| display |
Un nom d’affichage pour la Tâche. Le nom complet n’a pas besoin d’être unique et peut contenir des caractères Unicode pouvant atteindre une longueur maximale de 1024. |
| environment |
Une liste des paramètres des variables d’environnement pour la tâche. |
| e |
L’ETag de la tâche. Il s’agit d’une chaîne opaque. Vous pouvez l’utiliser pour détecter si la tâche a changé entre les requêtes. En particulier, vous pouvez passer l’ETag lors de la mise à jour d’une tâche pour spécifier que vos modifications ne doivent prendre effet que si personne d’autre n’a modifié la tâche entre-temps. |
| execution |
Informations sur l’exécution de la Tâche. |
| exit |
Comment le service Batch devrait réagir à la fin de la Tâche. |
| id | Une chaîne qui identifie de manière unique la Tâche au sein du Job. L’ID peut contenir n’importe quelle combinaison de caractères alphanumériques, y compris des traits d’union et des traits de soulignement, et ne peut pas contenir plus de 64 caractères. |
| last |
Le dernier temps modifié de la Tâche. |
| multi |
Un objet qui indique que la tâche est une tâche multi-instances, et contient des informations sur la manière d’exécuter la tâche multi-instances. |
| node |
Informations sur le nœud de calcul sur lequel la tâche s’exécutait. |
| 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. |
| previous |
L’état précédent de la Tâche. Cette propriété n’est pas définie si la tâche est dans son état actif initial. |
| previous |
Le moment où la Tâche est entrée dans son état antérieur. Cette propriété n’est pas définie si la tâche est dans son état actif initial. |
| 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, cela doit être 1. |
| 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. Pour les tâches multi-instances, les fichiers de ressources ne seront téléchargés que vers le nœud de calcul sur lequel la tâche principale est exécutée. 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. |
| state | L’état actuel de la Tâche. |
| state |
Le moment où la Tâche est entrée dans son état actuel. |
| task |
Statistiques d’utilisation des ressources pour la tâche. |
| url | L’URL de la tâche. |
| user |
L’identité utilisateur sous laquelle la tâche 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é
affinityInfo
Un indice de localité qui peut être utilisé par le service Batch pour sélectionner un nœud de calcul sur lequel commencer la nouvelle tâche.
affinityInfo?: BatchAffinityInfo
Valeur de propriété
applicationPackageReferences
Une liste des paquets que le service Batch déploiera sur le nœud de calcul avant d’exécuter la ligne de commande. Les packages applicatifs sont téléchargés et déployés dans un répertoire partagé, et non dans le répertoire de travail Task. Par conséquent, si un paquet référencé est déjà sur le nœud 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 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. Pour les tâches multi-instances, la ligne de commande est exécutée comme tâche principale, après que la tâche principale et toutes les sous-tâches ont terminé l’exécution de la ligne de commande de coordination. 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
Les contraintes d’exécution qui s’appliquent à cette tâche.
constraints?: BatchTaskConstraints
Valeur de propriété
containerSettings
Les paramètres du conteneur sous lequel la tâche s’exécute. 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é
creationTime
Le moment de création de la Tâche.
creationTime: Date
Valeur de propriété
Date
dependsOn
Les tâches dont cette tâche dépend. Cette tâche ne sera pas programmée tant que toutes les tâches dont elle dépend n’auront pas été achevées avec succès. Si l’une de ces tâches échoue et épuise son nombre de réessays, cette tâche ne sera jamais programmée.
dependsOn?: BatchTaskDependencies
Valeur de propriété
displayName
Un nom d’affichage pour la Tâche. Le nom complet n’a pas besoin d’être unique et peut contenir des caractères Unicode pouvant atteindre 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.
environmentSettings?: EnvironmentSetting[]
Valeur de propriété
eTag
L’ETag de la tâche. Il s’agit d’une chaîne opaque. Vous pouvez l’utiliser pour détecter si la tâche a changé entre les requêtes. En particulier, vous pouvez passer l’ETag lors de la mise à jour d’une tâche pour spécifier que vos modifications ne doivent prendre effet que si personne d’autre n’a modifié la tâche entre-temps.
eTag: string
Valeur de propriété
string
executionInfo
Informations sur l’exécution de la Tâche.
executionInfo?: BatchTaskExecutionInfo
Valeur de propriété
exitConditions
Comment le service Batch devrait réagir à la fin de la Tâche.
exitConditions?: ExitConditions
Valeur de propriété
id
Une chaîne qui identifie de manière unique la Tâche au sein du Job. L’ID peut contenir n’importe quelle combinaison de caractères alphanumériques, y compris des traits d’union et des traits de soulignement, et ne peut pas contenir plus de 64 caractères.
id: string
Valeur de propriété
string
lastModified
Le dernier temps modifié de la Tâche.
lastModified: Date
Valeur de propriété
Date
multiInstanceSettings
Un objet qui indique que la tâche est une tâche multi-instances, et contient des informations sur la manière d’exécuter la tâche multi-instances.
multiInstanceSettings?: MultiInstanceSettings
Valeur de propriété
nodeInfo
Informations sur le nœud de calcul sur lequel la tâche s’exécutait.
nodeInfo?: BatchNodeInfo
Valeur de propriété
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é
previousState
L’état précédent de la Tâche. Cette propriété n’est pas définie si la tâche est dans son état actif initial.
previousState?: BatchTaskState
Valeur de propriété
previousStateTransitionTime
Le moment où la Tâche est entrée dans son état antérieur. Cette propriété n’est pas définie si la tâche est dans son état actif initial.
previousStateTransitionTime?: Date
Valeur de propriété
Date
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, cela doit être 1.
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. Pour les tâches multi-instances, les fichiers de ressources ne seront téléchargés que vers le nœud de calcul sur lequel la tâche principale est exécutée. 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é
state
stateTransitionTime
Le moment où la Tâche est entrée dans son état actuel.
stateTransitionTime: Date
Valeur de propriété
Date
taskStatistics
Statistiques d’utilisation des ressources pour la tâche.
taskStatistics?: BatchTaskStatistics
Valeur de propriété
url
L’URL de la tâche.
url: string
Valeur de propriété
string
userIdentity
L’identité utilisateur sous laquelle la tâche 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