Rychlý start: Použití Azure CLI k vytvoření účtu Batch a spuštění úlohy

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ů. Pak vytvoříte a spustíte úlohu s úlohami, 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í.

Předpoklady

  • Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure 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. Výběrem možnosti Kopírovat zkopírujte kód a 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ší. Spuštěním příkazu az version zobrazte nainstalovanou verzi a závislé knihovny a spusťte az upgrade . Pokud používáte místní instalaci, přihlaste se k Azure pomocí příkazu az login .

Poznámka:

U některých oblastí a typů předplatného můžou omezení kvóty způsobit selhání nebo dokonč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 s názvem qsBatch v eastus2 oblasti Azure. Skupina prostředků je logický kontejner, který obsahuje prostředky Azure pro účely tohoto rychlého startu.

az group create \
    --name qsBatch \
    --location eastus2

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.

Spuštěním následujícího příkazu vytvořte účet úložiště Standard_LRS skladové položky s názvem mybatchstorage ve vaší skupině prostředků:

az storage account create \
    --resource-group qsBatch \
    --name mybatchstorage \
    --location eastus2 \
    --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 účet Batch pojmenovaný mybatchaccount ve vaší skupině prostředků a propojte ho s účtem mybatchstorage úložiště.

az batch account create \
    --name mybatchaccount \
    --storage-account mybatchstorage \
    --resource-group qsBatch \
    --location eastus2

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 použijí následující az batch příkazy v této relaci tento kontext účtu.

az batch account login \
    --name mybatchaccount \
    --resource-group qsBatch \
    --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 s názvem myPool , který se skládá ze dvou Standard_A1_v2 velikost virtuálních počítačů s Ubuntu 20.04 LTS OS. Tato velikost uzlu nabízí dobrou rovnováhu mezi výkonem a náklady v tomto příkladu rychlého startu.

az batch pool create \
    --id myPool \
    --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 fond vytvoří okamžitě, ale přidělení a spuštění výpočetních uzlů trvá několik minut. Pokud chcete zobrazit stav 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 myPool \
    --query "allocationState"

Zatímco služba Batch přiděluje a spouští uzly, fond je ve resizing stavu. Můžete vytvořit úlohu a úkoly, zatímco stav fondu je stále resizing. Fond je připravený ke spuštění úkolů v okamžiku, kdy stav přidělení je steady a všechny uzly jsou spuštěné.

Vytvoření úlohy

Pomocí příkazu az batch job create vytvořte úlohu Batch, která se spustí ve fondu. Úloha Batch je logická skupina jednoho nebo více úkolů. Úloha zahrnuje nastavení společná pro úkoly, jako je například fond, na který se má spustit. Následující příklad vytvoří úlohu volanou myJob na myPool začátku, která nemá žádné úkoly.

az batch job create \
    --id myJob \
    --pool-id myPool

Vytváření úkolů úloh

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 myJob \
    --command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done

Výstup příkazu zobrazuje nastavení pro jednotlivé úlohy. Služba Batch distribuuje tyto úkoly na výpočetní uzly.

Zobrazení stavu úkolů

Po vytvoření úkolu služba Batch zařadí úlohu do fronty, aby se spustila 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 myJob \
    --task-id myTask1

Výstup příkazu obsahuje mnoho podrobností. Například hodnota exitCode0 indikuje, že příkaz úkolu byl úspěšně dokončen. Zobrazuje nodeId 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řená na uzlu. Následující příkaz zobrazí seznam souborů, které myTask1 se vytvořily:

az batch task file list \
    --job-id myJob \
    --task-id myTask1 \
    --output table

Výsledky se podobají následujícímu výstupu:

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 myJob \
    --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ý soubor stdout.txt . 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=myJobl
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

Vyčištění prostředků

Pokud chcete pokračovat v kurzech a ukázkách služby Batch, můžete použít účet Batch a propojený účet úložiště, který jste vytvořili v tomto rychlém startu. Za samotný účet Batch se neúčtují žádné poplatky.

Za spuštěné uzly a fondy se účtují poplatky, i když nejsou spuštěné úlohy. Pokud už fond nepotřebujete, odstraňte ho pomocí příkazu az batch pool delete . Odstraněním fondu se odstraní všechny výstupy úkolů na uzlech a samotné uzly.

az batch pool delete --pool-id myPool

Pokud už pro účely tohoto rychlého startu nepotřebujete žádné prostředky, které jste vytvořili, můžete k odstranění skupiny prostředků a všech jejích prostředků použít příkaz az group delete . Pokud chcete odstranit skupinu prostředků a účet úložiště, účet Batch, fondy uzlů a všechny související prostředky, spusťte následující příkaz:

az group delete --name qsBatch

Další kroky

V tomto rychlém startu jste vytvořili účet Batch a fond, vytvořili a spustili úlohu a úkoly Batch a zobrazili jste výstup úkolu 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.