Exercice : Superviser votre travail Azure Batch dans l’interface CLI
Si vous utilisez Azure Batch pour exécuter des tâches intensives, vous voulez souvent savoir comment les tâches progressent.
En tant qu’architecte de solution de l’association, vous avez besoin de moyens permettant d’accéder à ce qui se passe dans Azure Batch. Vous devez également déterminer si les nœuds et les tâches fonctionnent, leur état d’avancement et s’ils ont produit des fichiers de sortie téléchargeables.
Dans cette unité, vous allez créer un travail similaire à celui de l’unité précédente, superviser la progression de ses tâches et télécharger les fichiers produits en sortie par les tâches, tout cela en utilisant Azure CLI.
Important
Les exercices de ce module sont facultatifs. Pour effectuer les exercices, vous aurez besoin de votre propre abonnement Azure.
Superviser des tâches avec l’interface CLI
Azure Batch prend en charge tous les détails de la création et de la gestion des nœuds de calcul, et de la planification des travaux à exécuter sur ces nœuds.
Quand vous avez créé des tâches dans la dernière unité, Azure Batch les a placés en file d’attente pour une exécution dans le pool. Comme il a été déterminé que ces nœuds avaient des capacités disponibles, Azure Batch a planifié l’exécution de ces tâches sur ces nœuds.
À la fin de la dernière unité, nous avons supprimé le travail, ce qui a eu pour effet de supprimer toutes ses tâches. Nous allons maintenant créer un travail et des tâches. Il est important de noter que la suppression et la recréation des tâches est une opération relativement rapide, qui vous permet de séparer facilement les différentes expériences et projets dans Azure Batch. En revanche, la suppression et la recréation d’entités Batch de plus haut niveau (telles que des comptes) prend davantage de temps, car le pool Batch doit être recréé et des machines virtuelles doivent être allouées.
Connectez-vous au portail Azure.
Ouvrez Cloud Shell en sélectionnant l’icône Cloud Shell (>_) dans le menu du haut.
Exécutez la commande suivante dans Cloud Shell pour créer un travail Batch :
az batch job create \ --id myjob2 \ --pool-id mypool
Nous le nommons différemment afin d’éviter tout conflit avec le travail de l’unité précédente, dont la suppression a été planifiée, mais qui n’est pas forcément déjà supprimé.
Exécutez la commande suivante pour créer des tâches Batch au sein de ce nouveau travail :
for i in {1..10} do az batch task create \ --task-id mytask$i \ --job-id myjob2 \ --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'" done
Exécutez la commande suivante dans Cloud Shell pour voir l’état d’une des tâches que vous avez créées :
az batch task show \ --job-id myjob2 \ --task-id mytask1
Télécharger la sortie d’une tâche avec l’interface CLI
Pour vérifier que le travail Batch a été exécuté correctement, vous pouvez télécharger et examiner les fichiers qu’il a créés.
Exécutez la commande suivante dans Cloud Shell pour afficher un tableau de tous les fichiers générés par une des tâches que vous avez créées :
az batch task file list \ --job-id myjob2 \ --task-id mytask5 \ --output table
Remarque
Si vous voyez un message d’erreur
The files of the specified task cannot be accessed as the task state is still active
, attendez quelques minutes, puis réexécutez la commande.Exécutez la commande suivante dans Cloud Shell pour créer un répertoire dédié pour les sorties des tâches et pour y accéder :
mkdir taskoutputs && cd taskoutputs
Exécutez la commande suivante dans Cloud Shell pour télécharger les fichiers générés par toutes les tâches que vous avez créées :
for i in {1..10} do az batch task file download \ --job-id myjob2 \ --task-id mytask$i \ --file-path stdout.txt \ --destination ./stdout$i.txt done
Les tâches ont un répertoire de travail par défaut et leur travail est dirigé par défaut vers
stdout.txt
. La diffusion en boucle nous permet de redirigerstdout.txt
vers des versions numérotées destdout.txt
, chacune montrant le travail d’une tâche donnée et le nœud qui a été utilisé pour l’exécuter.Exécutez la commande suivante pour afficher le contenu texte de quelques exemples de fichiers générés :
cat stdout1.txt && cat stdout2.txt
Cette sortie montre différentes tâches qui ont été planifiées sur des nœuds différents, comme cela a été traité par le planificateur Batch.
Là encore, nous allons laisser en place le compte Azure Batch et le pool de nœuds Worker pour les utiliser dans l’unité suivante, mais nous allons supprimer le travail Batch. Comme le travail Batch agit comme un conteneur pour ses tâches Batch, ces tâches sont également supprimées.
Utilisez la commande suivante pour supprimer le travail Batch :
az batch job delete --job-id myjob2 -y