Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu se dozvíte, jak začít se službou Azure Batch pomocí příkazů a skriptů Azure CLI k vytváření a správě prostředků Batch. Vytvoříte účet Batch, který má fond virtuálních počítačů nebo výpočetních uzlů. Poté vytvoříte a spustíte úkol obsahující úlohy, které běží na uzlech fondu.
Po dokončení tohoto rychlého startu rozumíte klíčovým konceptům služby Batch a jste připraveni službu Batch používat s realističtějšími a většími úlohami škálování.
Požadavky
-
Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
Azure Cloud Shell nebo Azure CLI.
Příkazy Azure CLI můžete v tomto rychlém startu spustit interaktivně v Azure Cloud Shellu. Pokud chcete příkazy spustit v Cloud Shellu, vyberte Otevřít CloudShell v pravém horním rohu bloku kódu. Vyberte Kopírovat pro zkopírování kódu, vložte ho do Cloud Shellu a spusťte ho. Cloud Shell můžete spustit také na webu Azure Portal. Cloud Shell vždy používá nejnovější verzi Azure CLI.
Případně můžete azure CLI nainstalovat místně a spouštět příkazy. Kroky v tomto článku vyžadují Azure CLI verze 2.0.20 nebo novější. Spusťte az version pro zobrazení nainstalované verze a závislých knihoven, a spusťte az upgrade k aktualizaci. Pokud používáte místní instalaci, přihlaste se k Azure pomocí příslušného příkazu.
Poznámka:
V některých oblastech a pro některé typy předplatného mohou omezení kvóty způsobit neúspěch nebo nedokončení vytváření účtu Batch nebo uzlu. V takovém případě můžete požádat o navýšení kvóty bez poplatků. Další informace najdete v tématu Kvóty a omezení služby Batch.
Vytvoření skupiny zdrojů
Spuštěním následujícího příkazu az group create vytvořte skupinu prostředků Azure. Skupina prostředků je logický kontejner, který obsahuje prostředky Azure pro účely tohoto rychlého startu.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"
az group create \
--name $RESOURCE_GROUP \
--location $REGION
Výsledky:
{
"id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
"location": "eastus2",
"managedBy": null,
"name": "qsBatchxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Vytvoření účtu úložiště
Pomocí příkazu az storage account create vytvořte účet Azure Storage pro propojení s vaším účtem Batch. I když tento rychlý start nepoužívá účet úložiště, většina úloh Batch z reálného světa používá propojený účet úložiště k nasazení aplikací a ukládání vstupních a výstupních dat.
Pro spuštění následujícího příkazu vytvořte účet úložiště SKU Standard_LRS ve skupině prostředků:
export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"
az storage account create \
--resource-group $RESOURCE_GROUP \
--name $STORAGE_ACCOUNT \
--location $REGION \
--sku Standard_LRS
Vytvoření účtu služby Batch
Spuštěním následujícího příkazu az batch account create vytvořte ve skupině prostředků účet Batch a propojte ho s účtem úložiště.
export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"
az batch account create \
--name $BATCH_ACCOUNT \
--storage-account $STORAGE_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--location $REGION
Přihlaste se k novému účtu Batch spuštěním příkazu az batch account login . Po ověření účtu pomocí služby Batch budou následující az batch příkazy v této relaci používat tento kontext účtu.
az batch account login \
--name $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--shared-key-auth
Vytvoření fondu výpočetních uzlů
Spuštěním příkazu az batch pool create vytvořte ve svém účtu Batch fond výpočetních uzlů s Linuxem. Následující příklad vytvoří fond, který se skládá ze dvou virtuálních počítačů velikosti Standard_A1_v2, běžících na operačním systému Ubuntu 20.04 LTS. Tato velikost uzlu nabízí dobrou rovnováhu mezi výkonem a náklady v tomto příkladu rychlého startu.
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
Služba Batch vytvoří fond okamžitě, ale přidělení a spuštění výpočetních uzlů trvá několik minut. Pro zobrazení stavu fondu použijte příkaz az batch pool show. Tento příkaz zobrazí všechny vlastnosti fondu a můžete zadat dotaz na specifické vlastnosti. Následující příkaz se dotazuje na stav přidělení fondu:
az batch pool show --pool-id $POOL_ID \
--query "{allocationState: allocationState}"
Výsledky:
{
"allocationState": "resizing"
}
Zatímco služba Batch přiděluje a spouští uzly, fond je ve stavu resizing. Můžete vytvořit práci a úkoly, zatímco stav fondu je pořád resizing. Pool je připravený k vykonávání úkolů, když je stav přidělení steady a všechny uzly jsou aktivní.
Vytvořte úlohu
Pomocí příkazu az batch job create vytvořte úlohu pro službu Batch, která se spustí ve vašem fondu. Úloha Batch je logická skupina jednoho nebo více úkolů. Práce zahrnuje nastavení společná pro úkoly, jako je například fond, na kterém má běžet. Následující příklad vytvoří úlohu, která zpočátku nemá žádné úkoly.
export JOB_ID="myJob$RANDOM_SUFFIX"
az batch job create \
--id $JOB_ID \
--pool-id $POOL_ID
Vytváření pracovních úkolů
Služba Batch nabízí několik způsobů nasazení aplikací a skriptů do výpočetních uzlů. Pomocí příkazu az batch task create vytvořte úlohy, které se mají v úloze spouštět. Každý úkol má příkazový řádek, který určuje aplikaci nebo skript.
Následující skript Bash vytvoří čtyři identické paralelní úlohy volané myTask1 prostřednictvím myTask4. Příkazový řádek úkolu zobrazí proměnné prostředí Batch na výpočetním uzlu a pak počká 90 sekund.
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
Služba Batch distribuuje tyto úkoly na výpočetní uzly.
Zobrazení stavu úkolů
Po vytvoření úkolů je Batch zařadí do fronty, aby se spustily ve fondu. Jakmile je uzel k dispozici, úloha se spustí na uzlu.
Pomocí příkazu az batch task show zobrazte stav úkolů služby Batch. Následující příklad ukazuje podrobnosti o stavu myTask1:
az batch task show \
--job-id $JOB_ID \
--task-id myTask1
Výstup příkazu obsahuje mnoho podrobností. Například hodnota exitCode0 indikuje, že příkaz úkolu byl úspěšně dokončen. Element nodeId zobrazuje název uzlu fondu, který spustil úlohu.
Zobrazení výstupu úkolu
Pomocí příkazu az batch task file list zobrazte seznam souborů, které úloha vytvořila na uzlu. Následující příkaz zobrazí soubory, které myTask1 vytvořil:
# 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
Výsledky se podobají následujícímu výstupu:
Výsledky:
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
Příkaz az batch task file download stáhne výstupní soubory do místního adresáře. Spuštěním následujícího příkladu stáhněte soubor stdout.txt :
az batch task file download \
--job-id $JOB_ID \
--task-id myTask1 \
--file-path stdout.txt \
--destination ./stdout.txt
Obsah standardního výstupního souboru můžete zobrazit v textovém editoru. Následující příklad ukazuje typický stdout.txt soubor. Standardní výstup z této úlohy ukazuje proměnné prostředí Azure Batch, které jsou nastavené na uzlu. Na tyto proměnné prostředí můžete odkazovat v příkazových řádcích úlohy Batch a v aplikacích a skriptech, které příkazové řádky spouští.
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
Další kroky
V tomto rychlém startu jste vytvořili účet Batch a fond, vytvořili a spustili úlohu a úkoly Batch a zobrazili výstup úkolů z uzlů. Teď, když rozumíte klíčovým konceptům služby Batch, jste připraveni službu Batch používat s realističtějšími a většími škálovacími úlohami. Další informace o službě Azure Batch najdete v dalších kurzech o službě Azure Batch.