Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Ce guide de démarrage rapide vous montre comment démarrer avec Azure Batch à l’aide de commandes et de scripts Azure CLI pour créer et gérer des ressources Batch. Vous créez un compte Batch comportant un pool de machines virtuelles ou de nœuds de calcul. Vous créez et exécutez ensuite un travail avec des tâches qui s’exécutent sur les nœuds du pool.
À l’issue de ce guide de démarrage rapide, vous maîtriserez les concepts clés du service Batch et serez prêt à utiliser Batch avec des charges de travail plus réalistes à plus grande échelle.
Prérequis
-
Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Azure Cloud Shell ou Azure CLI.
Vous pouvez exécuter les commandes Azure CLI de ce démarrage rapide de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloudshell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell afin de l’exécuter. Vous pouvez exécuter Azure Cloud Shell à partir du Portail Azure. Cloud Shell utilise toujours la dernière version d’Azure CLI.
Vous pouvez également installer Azure CLI localement pour exécuter les commandes. Les étapes décrites dans cet article nécessitent la version 2.0.20 ou ultérieure de l’interface de ligne de commande Azure. Exécutez az version pour connaître votre version installée et les bibliothèques dépendantes, puis exécutez az upgrade pour effectuer une mise à niveau. Si vous utilisez une installation locale, connectez-vous à Azure à l’aide de la commande appropriée.
Remarque
Pour certaines régions et types d’abonnements, les restrictions de quota peuvent entraîner l’échec ou la fin de la création d’un compte Batch ou d’un nœud. Dans cette situation, vous pouvez demander une augmentation de quota sans frais. Pour plus d’informations, consultez Quotas et limites du service Batch.
Créer un groupe de ressources
Exécutez la commande az group create suivante pour créer un groupe de ressources Azure. Le groupe de ressources est un conteneur logique qui contient les ressources Azure requises pour ce démarrage rapide.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"
az group create \
--name $RESOURCE_GROUP \
--location $REGION
Résultats :
{
"id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
"location": "eastus2",
"managedBy": null,
"name": "qsBatchxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Créez un compte de stockage.
Utilisez la commande az storage account create pour créer un compte de stockage Azure à lier à votre compte Batch. Bien que ce guide de démarrage rapide n’utilise pas le compte de stockage, la plupart des charges de travail Batch réelles utilisent un compte de stockage lié pour déployer des applications et stocker les données d’entrée et de sortie.
Exécutez la commande suivante pour créer un compte de stockage de référence SKU Standard_LRS dans votre groupe de ressources :
export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"
az storage account create \
--resource-group $RESOURCE_GROUP \
--name $STORAGE_ACCOUNT \
--location $REGION \
--sku Standard_LRS
Création d’un compte Batch
Exécutez la commande az batch account create suivante pour créer un compte Batch dans votre groupe de ressources et liez-le avec le compte de stockage.
export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"
az batch account create \
--name $BATCH_ACCOUNT \
--storage-account $STORAGE_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--location $REGION
Connectez-vous au nouveau compte Batch en exécutant la commande az batch account login. Une fois que vous authentifiez votre compte avec Batch, les commandes suivantes az batch de cette session utilisent le contexte de ce compte.
az batch account login \
--name $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--shared-key-auth
Créer un pool de nœuds de calcul
Exécutez la commande az batch pool create pour créer un pool de nœuds de calcul Linux dans votre compte Batch. L’exemple suivant crée un pool constitué de deux machines virtuelles de taille Standard_A1_v2 exécutant le système d’exploitation Ubuntu 20.04 LTS. La taille de ce nœud offre un bon compromis entre performance et coût dans cet exemple de démarrage rapide.
export POOL_ID="myPool$RANDOM_SUFFIX"
az batch pool create \
--id $POOL_ID \
--image canonical:0001-com-ubuntu-server-focal:20_04-lts \
--node-agent-sku-id "batch.node.ubuntu 20.04" \
--target-dedicated-nodes 2 \
--vm-size Standard_A1_v2
Azure Batch crée le pool immédiatement, mais prend quelques minutes pour allouer et démarrer les nœuds de calcul. Pour afficher l’état du pool, exécutez la commande az batch pool show. Cette commande affiche toutes les propriétés du pool, vous pouvez également rechercher des propriétés spécifiques. La commande suivante interroge l’état d’allocation du pool :
az batch pool show --pool-id $POOL_ID \
--query "{allocationState: allocationState}"
Résultats :
{
"allocationState": "resizing"
}
Pendant que Batch alloue et démarre les nœuds, le pool est à l’état resizing. Vous pouvez créer un travail et des tâches pendant que l’état du pool est encore resizing. Le pool est prêt à exécuter des tâches lorsque l’état de l’allocation est steady et que tous les nœuds sont en cours d’exécution.
Créer un travail
Utilisez la commande az batch job create pour créer un travail Batch à exécuter sur votre pool. Un travail Batch est un groupe logique d’une ou de plusieurs tâches. Le travail inclut des paramètres communs aux tâches, comme le pool sur lequel elles doivent s’exécuter. L’exemple suivant crée un travail qui n’a initialement aucune tâche.
export JOB_ID="myJob$RANDOM_SUFFIX"
az batch job create \
--id $JOB_ID \
--pool-id $POOL_ID
Créer des tâches de travail
Azure Batch fournit plusieurs façons de déployer des applications et des scripts sur des nœuds de calcul. Utilisez maintenant la commande az batch task create pour créer des tâches à exécuter dans le travail. Chaque tâche a une ligne de commande qui spécifie une application ou un script.
Le script Bash suivant crée quatre tâches parallèles identiques appelées myTask1 via myTask4. Chaque tâche exécute une ligne de commande qui affiche les variables d’environnement Azure Batch sur le nœud de calcul, puis attend 90 secondes.
for i in {1..4}
do
az batch task create \
--task-id myTask$i \
--job-id $JOB_ID \
--command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done
Azure Batch distribue les tâches pour les nœuds de calcul.
Affichage de l’état de la tâche
Après avoir créé les tâches, Batch les met en file d’attente pour les exécuter sur le pool. Une fois qu’un nœud est disponible, une tâche s’exécute sur le nœud.
Utilisez la commande az batch task show pour afficher l’état des tâches Azure Batch. L’image exemple suivante montre des détails sur l’état de myTask1 :
az batch task show \
--job-id $JOB_ID \
--task-id myTask1
La sortie de la commande comprend de nombreux détails. Par exemple, un exitCode de 0 indique que la ligne de commande de la tâche s’est correctement effectuée. Le nodeId affiche le nom du nœud de pool qui a exécuté la tâche.
Afficher la sortie des tâches
Utilisez la commande az batch task file list pour répertorier les fichiers créés par une tâche sur un nœud. La commande suivante répertorie les fichiers créés par myTask1 :
# Wait for task to complete before downloading output
echo "Waiting for task to complete..."
while true; do
STATUS=$(az batch task show --job-id $JOB_ID --task-id myTask1 --query "state" -o tsv)
if [ "$STATUS" == "running" ]; then
break
fi
sleep 10
done
az batch task file list --job-id $JOB_ID --task-id myTask1 --output table
Les résultats sont similaires à ce qui suit :
Résultats :
Name URL Is Directory Content Length
---------- ---------------------------------------------------------------------------------------- -------------- ----------------
stdout.txt https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stdout.txt False 695
certs https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/certs True
wd https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/wd True
stderr.txt https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stderr.txt False 0
Pour télécharger un des fichiers de sortie dans un répertoire local, utilisez la commande az batch task file download. Exécutez l’exemple suivant pour télécharger le fichier stdout.txt :
az batch task file download \
--job-id $JOB_ID \
--task-id myTask1 \
--file-path stdout.txt \
--destination ./stdout.txt
Vous pouvez visualiser le contenu du fichier de sortie standard dans un éditeur de texte. L’exemple ci-dessous illustre un fichier stdout.txt classique. La sortie standard de cette tâche montre les variables d’environnement Azure Batch qui sont définies sur le nœud. Vous pouvez faire référence à ces variables d’environnement dans les lignes de commande de votre tâche Batch et dans les applications et les scripts que les lignes de commande exécutent.
AZ_BATCH_TASK_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1
AZ_BATCH_NODE_STARTUP_DIR=/mnt/batch/tasks/startup
AZ_BATCH_CERTIFICATES_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/certs
AZ_BATCH_ACCOUNT_URL=https://mybatchaccount.eastus2.batch.azure.com/
AZ_BATCH_TASK_WORKING_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/wd
AZ_BATCH_NODE_SHARED_DIR=/mnt/batch/tasks/shared
AZ_BATCH_TASK_USER=_azbatch
AZ_BATCH_NODE_ROOT_DIR=/mnt/batch/tasks
AZ_BATCH_JOB_ID=myJob
AZ_BATCH_NODE_IS_DEDICATED=true
AZ_BATCH_NODE_ID=tvm-257509324_2-20180703t215033z
AZ_BATCH_POOL_ID=myPool
AZ_BATCH_TASK_ID=myTask1
AZ_BATCH_ACCOUNT_NAME=mybatchaccount
AZ_BATCH_TASK_USER_IDENTITY=PoolNonAdmin
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez créé un compte et un pool Batch, vous avez créé et exécuté un travail et des tâches Batch, et vous avez consulté la sortie des nœuds pour les tâches. Maintenant que vous maîtrisez les concepts clés du service Batch, vous êtes prêt à utiliser Azure Batch avec des charges de travail plus réalistes à plus grande échelle. Pour plus d’informations sur Microsoft Azure Batch, consultez les didacticiels Azure Batch.