Partager via


BatchJobPreparationTask interface

Tâche de préparation du travail à exécuter avant toutes les tâches du travail sur un nœud de calcul donné. Vous pouvez utiliser la préparation du travail pour préparer un nœud afin d’exécuter des tâches pour le travail. Les activités couramment effectuées dans la préparation du travail sont les suivantes : téléchargement de fichiers de ressources courants utilisés par toutes les tâches du travail. La tâche de préparation du travail peut télécharger ces fichiers de ressources courants vers l’emplacement partagé sur le nœud. (AZ_BATCH_NODE_ROOT_DIR\shared) ou démarrer un service local sur le nœud afin que toutes les tâches de ce travail puissent communiquer avec elle. Si la tâche de préparation du travail échoue (autrement dit, épuise son nombre de nouvelles tentatives avant de quitter le code de sortie 0), Batch n’exécute pas les tâches de ce travail sur le nœud. Le nœud de calcul reste inéligible pour exécuter les tâches de ce travail jusqu’à ce qu’il soit réimagené. Le nœud de calcul reste actif et peut être utilisé pour d’autres travaux. La tâche de préparation du travail peut s’exécuter plusieurs fois sur le même nœud. Par conséquent, vous devez écrire la tâche de préparation du travail pour gérer la réexécution. Si le nœud est redémarré, la tâche de préparation du travail est réexécutée sur le nœud de calcul avant de planifier une autre tâche du travail, si la réexécuterOnNodeRebootAfterSuccess est vraie ou si la tâche de préparation du travail n’a pas terminé précédemment. Si le nœud est réimagené, la tâche de préparation du travail est réexécuter avant de planifier une tâche du travail. 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

commandLine

La ligne de commande de la tâche de préparation du poste. 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 de préparation à l’emploi.

containerSettings

Les paramètres du conteneur sous lequel s’exécute la tâche de préparation du travail. 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.

environmentSettings

Une liste des paramètres des variables d’environnement pour la tâche de préparation au poste.

id

Une chaîne qui identifie de manière unique la tâche de préparation au 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. Si vous ne spécifiez pas cette propriété, le service Batch attribue une valeur par défaut de « préparation au travail ». Aucune autre tâche dans le poste ne peut avoir le même ID que la tâche de préparation au poste. Si vous essayez de soumettre une tâche avec le même id, le service Batch rejette la requête avec le code d’erreur TaskIdSameAsJobPreparationTask ; si vous appelez directement l’API REST, le code d’état HTTP est 409 (Conflit).

rerunOnNodeRebootAfterSuccess

Si le service Batch doit relancer la tâche de préparation de la tâche après le redémarrage d’un nœud de calcul ? La tâche de préparation de la tâche est toujours réexécutée si un nœud de calcul est réimajé, ou si la tâche de préparation de la tâche n’a pas été terminée (par exemple parce que le redémarrage a eu lieu pendant que la tâche était en cours). Par conséquent, vous devez toujours écrire une tâche de préparation de tâche pour être idempotente et se comporter correctement si elle est exécutée plusieurs fois. La valeur par défaut est true.

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.

userIdentity

L’identité utilisateur sous laquelle la tâche de préparation de tâches s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administrateur unique à la tâche sur les nœuds de calcul Windows, ou en tant qu’utilisateur non administratif unique au pool sur les nœuds de calcul Linux.

waitForSuccess

Si le service Batch doit attendre que la tâche de préparation de la tâche soit terminée avec succès avant de planifier toute autre tâche de la tâche sur le nœud de calcul ? Une tâche de préparation de travail a été terminée avec succès si elle sort avec le code de sortie 0. Si c’est vrai et que la tâche de préparation de tâche échoue sur un nœud, le service batch réessaie la tâche de préparation de tâche jusqu’à son nombre maximal de réessays (comme spécifié dans l’élément contrainte). Si la tâche n’a toujours pas été achevée avec succès après toutes les tentatives, alors le service Batch ne programmera pas les tâches du travail au nœud. Le Nœud reste actif et éligible pour exécuter des tâches d’autres métiers. En cas de faux, le service Batch n’attendra pas que la tâche de préparation du travail soit terminée. Dans ce cas, les autres tâches du travail peuvent commencer à s’exécuter sur le nœud de calcul pendant que la tâche de préparation du travail est encore en cours ; et même si la tâche de préparation de tâche échoue, de nouvelles tâches continueront d’être planifiées sur le nœud de calcul. La valeur par défaut est true.

Détails de la propriété

commandLine

La ligne de commande de la tâche de préparation du poste. 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 de préparation à l’emploi.

constraints?: BatchTaskConstraints

Valeur de propriété

containerSettings

Les paramètres du conteneur sous lequel s’exécute la tâche de préparation du travail. 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é

environmentSettings

Une liste des paramètres des variables d’environnement pour la tâche de préparation au poste.

environmentSettings?: EnvironmentSetting[]

Valeur de propriété

id

Une chaîne qui identifie de manière unique la tâche de préparation au 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. Si vous ne spécifiez pas cette propriété, le service Batch attribue une valeur par défaut de « préparation au travail ». Aucune autre tâche dans le poste ne peut avoir le même ID que la tâche de préparation au poste. Si vous essayez de soumettre une tâche avec le même id, le service Batch rejette la requête avec le code d’erreur TaskIdSameAsJobPreparationTask ; si vous appelez directement l’API REST, le code d’état HTTP est 409 (Conflit).

id?: string

Valeur de propriété

string

rerunOnNodeRebootAfterSuccess

Si le service Batch doit relancer la tâche de préparation de la tâche après le redémarrage d’un nœud de calcul ? La tâche de préparation de la tâche est toujours réexécutée si un nœud de calcul est réimajé, ou si la tâche de préparation de la tâche n’a pas été terminée (par exemple parce que le redémarrage a eu lieu pendant que la tâche était en cours). Par conséquent, vous devez toujours écrire une tâche de préparation de tâche pour être idempotente et se comporter correctement si elle est exécutée plusieurs fois. La valeur par défaut est true.

rerunOnNodeRebootAfterSuccess?: boolean

Valeur de propriété

boolean

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é

userIdentity

L’identité utilisateur sous laquelle la tâche de préparation de tâches s’exécute. Si elle est omise, la tâche s’exécute en tant qu’utilisateur non administrateur unique à la tâche sur les nœuds de calcul Windows, ou en tant qu’utilisateur non administratif unique au pool sur les nœuds de calcul Linux.

userIdentity?: UserIdentity

Valeur de propriété

waitForSuccess

Si le service Batch doit attendre que la tâche de préparation de la tâche soit terminée avec succès avant de planifier toute autre tâche de la tâche sur le nœud de calcul ? Une tâche de préparation de travail a été terminée avec succès si elle sort avec le code de sortie 0. Si c’est vrai et que la tâche de préparation de tâche échoue sur un nœud, le service batch réessaie la tâche de préparation de tâche jusqu’à son nombre maximal de réessays (comme spécifié dans l’élément contrainte). Si la tâche n’a toujours pas été achevée avec succès après toutes les tentatives, alors le service Batch ne programmera pas les tâches du travail au nœud. Le Nœud reste actif et éligible pour exécuter des tâches d’autres métiers. En cas de faux, le service Batch n’attendra pas que la tâche de préparation du travail soit terminée. Dans ce cas, les autres tâches du travail peuvent commencer à s’exécuter sur le nœud de calcul pendant que la tâche de préparation du travail est encore en cours ; et même si la tâche de préparation de tâche échoue, de nouvelles tâches continueront d’être planifiées sur le nœud de calcul. La valeur par défaut est true.

waitForSuccess?: boolean

Valeur de propriété

boolean