Rychlý start: Spuštění první úlohy služby Batch pomocí rozhraní příkazového řádku AzureQuickstart: Run your first Batch job with the Azure CLI

Začněte s Azure Batch pomocí rozhraní příkazového řádku Azure CLI a vytvořte účet Batch, fond výpočetních uzlů (virtuálních počítačů) a úlohu, která spouští úlohy ve fondu.Get started with Azure Batch by using the Azure CLI to to create a Batch account, a pool of compute nodes (virtual machines), and a job that runs tasks on the pool. Každý ukázkový úkol spustí základní příkaz na jednom z uzlů fondu.Each sample task runs a basic command on one of the pool nodes.

Azure CLI slouží k vytváření a správě prostředků Azure z příkazového řádku nebo ve skriptech.The Azure CLI is used to create and manage Azure resources from the command line or in scripts. Po dokončení tohoto rychlého startu budete rozumět klíčovým konceptům služby Batch a budete moct službu Batch vyzkoušet ve větším měřítku s úlohami, které víc odpovídají realitě.After completing this quickstart, you will understand the key concepts of the Batch service and be ready to try Batch with more realistic workloads at larger scale.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.If you don't have an Azure subscription, create a free account before you begin.

PožadavkyPrerequisites

  • Použijte prostředí bash v Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.

    Spuštění služby Cloud Shell v novém okněLaunch Cloud Shell in a new window

  • Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.If you prefer, install the Azure CLI to run CLI reference commands.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu.To finish the authentication process, follow the steps displayed in your terminal. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.

    • Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití.When you're prompted, install Azure CLI extensions on first use. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.For more information about extensions, see Use extensions with the Azure CLI.

    • Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované.Run az version to find the version and dependent libraries that are installed. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.To upgrade to the latest version, run az upgrade.

  • V tomto rychlém startu se vyžaduje verze Azure CLI 2.0.20 nebo novější.This quickstart requires version 2.0.20 or later of the Azure CLI. Pokud používáte Azure Cloud Shell, nejnovější verze je už nainstalovaná.If using Azure Cloud Shell, the latest version is already installed.

Vytvoření skupiny prostředkůCreate a resource group

Vytvořte skupinu prostředků pomocí příkazu az group create.Create a resource group with the az group create command. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.An Azure resource group is a logical container into which Azure resources are deployed and managed.

Následující příklad vytvoří skupinu prostředků s názvem QuickstartBatch-RG v umístění eastus2 .The following example creates a resource group named QuickstartBatch-rg in the eastus2 location.

az group create \
    --name QuickstartBatch-rg \
    --location eastus2

Vytvoření účtu úložištěCreate a storage account

Účet Batch můžete propojit s účtem Azure Storage.You can link an Azure Storage account with your Batch account. I když to k tomuto rychlému startu není nutné, účet úložiště je užitečný při nasazování aplikací a ukládání vstupních a výstupních dat ve většině reálných způsobů využití.Although not required for this quickstart, the storage account is useful to deploy applications and store input and output data for most real-world workloads. Ve vaší skupině prostředků vytvořte účet úložiště pomocí příkazu az storage account create.Create a storage account in your resource group with the az storage account create command.

az storage account create \
    --resource-group QuickstartBatch-rg \
    --name mystorageaccount \
    --location eastus2 \
    --sku Standard_LRS

Vytvoření účtu BatchCreate a Batch account

K vytvoření účtu Batch použijte příkaz az batch account create.Create a Batch account with the az batch account create command. Účet potřebujete pro vytvoření výpočetních prostředků (fondy výpočetních uzlů) a úloh služby Batch.You need an account to create compute resources (pools of compute nodes) and Batch jobs.

Následující příklad vytvoří účet Batch s názvem mybatchaccount v QuickstartBatch-RG a propojí účet úložiště, který jste vytvořili.The following example creates a Batch account named mybatchaccount in QuickstartBatch-rg, and links the storage account you created.

az batch account create \
    --name mybatchaccount \
    --storage-account mystorageaccount \
    --resource-group QuickstartBatch-rg \
    --location eastus2

K vytváření a správě výpočetních fondů a úloh musíte využít ověřování pomocí služby Batch.To create and manage compute pools and jobs, you need to authenticate with Batch. Přihlaste se k účtu pomocí příkazu az batch account login.Log in to the account with the az batch account login command. Po přihlášení budou příkazy az batch používat kontext tohoto účtu.After you log in, your az batch commands use this account context.

az batch account login \
    --name mybatchaccount \
    --resource-group QuickstartBatch-rg \
    --shared-key-auth

Vytvořte fond výpočetních uzlů.Create a pool of compute nodes

Teď, když máte účet služby Batch, vytvořte ukázkový fond linuxových výpočetních uzlů pomocí příkazu az batch pool create.Now that you have a Batch account, create a sample pool of Linux compute nodes using the az batch pool create command. Následující příkaz vytvoří fond nazvaný mypool se 2 uzly velikosti Standard_A1_v2, na kterých běží Ubuntu 16.04 LTS.The following example creates a pool named mypool of 2 size Standard_A1_v2 nodes running Ubuntu 16.04 LTS. Navržená velikost uzlu nabízí pro tento rychlý příklad dobrou rovnováhu mezi výkonem a náklady.The suggested node size offers a good balance of performance versus cost for this quick example.

az batch pool create \
    --id mypool --vm-size Standard_A1_v2 \
    --target-dedicated-nodes 2 \
    --image canonical:ubuntuserver:16.04-LTS \
    --node-agent-sku-id "batch.node.ubuntu 16.04"

Služba Batch vytvoří fond okamžitě, ale přidělení a spuštění uzlů úložiště bude několik minut trvat.Batch creates the pool immediately, but it takes a few minutes to allocate and start the compute nodes. Během této doby je fond ve stavu resizing.During this time, the pool is in the resizing state. K zobrazení stavu fondu můžete použít příkaz az batch pool show.To see the status of the pool, run the az batch pool show command. Tento příkaz zobrazí všechny vlastnosti fondu a můžete zadat dotaz na specifické vlastnosti.This command shows all the properties of the pool, and you can query for specific properties. Následující příkaz zobrazí stav přidělení fondu:The following command gets the allocation state of the pool:

az batch pool show --pool-id mypool \
    --query "allocationState"

Dokud se stav fondu mění, pokračujte v následujících krocích pro vytváření úloh a úkolů.Continue the following steps to create a job and tasks while the pool state is changing. 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é.The pool is ready to run tasks when the allocation state is steady and all the nodes are running.

Vytvoření úlohyCreate a job

Teď máte vytvořený fond a můžete vytvořit úlohu, která se v něm bude spouštět.Now that you have a pool, create a job to run on it. Úloha služby Batch je logická skupina jednoho nebo víc úkolů.A Batch job is a logical group for one or more tasks. Úloha zahrnuje nastavení společná všem úkolům, jako je priorita a fond, ve kterém se mají úkoly spouštět.A job includes settings common to the tasks, such as priority and the pool to run tasks on. Vytvořte úlohu služby Batch pomocí příkazu az batch job create.Create a Batch job by using the az batch job create command. Následující příkaz vytvoří úlohu myjob ve fondu mypool.The following example creates a job myjob on the pool mypool. Na začátku úloha neobsahuje žádné úkoly.Initially the job has no tasks.

az batch job create \
    --id myjob \
    --pool-id mypool

Vytváření úlohCreate tasks

Teď použijte příkaz az batch task create pro vytvoření úkolů ke spuštění v této úloze.Now use the az batch task create command to create some tasks to run in the job. V tomto příkladu vytvoříte čtyři stejné úkoly.In this example, you create four identical tasks. Každý úkol spustí command-line, kde se zobrazí proměnné prostředí služby Batch ve výpočetním uzlu, a potom 90 sekund čeká.Each task runs a command-line to display the Batch environment variables on a compute node, and then waits 90 seconds. Při použití služby Batch se aplikace nebo skript zadávají právě na příkazovém řádku.When you use Batch, this command line is where you specify your app or script. Služba Batch poskytuje několik způsobů, jak nasazovat aplikace a skripty do výpočetních uzlů.Batch provides a number of ways to deploy apps and scripts to compute nodes.

Následující skript Bash vytvoří 4 paralelní úkoly (mytask1mytask4).The following Bash script creates 4 parallel tasks (mytask1 to mytask4).

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 ukazuje nastavení pro jednotlivé úkoly.The command output shows settings for each of the tasks. Služba Batch distribuuje tyto úkoly na výpočetní uzly.Batch distributes the tasks to the compute nodes.

Zobrazení stavu úkolůView task status

Po vytvoření služba Batch zařadí úkol do fronty pro spuštění ve fondu.After you create a task, Batch queues it to run on the pool. Jakmile bude dostupný uzel, který ho bude moct spustit, úkol se spustí.Once a node is available to run it, the task runs.

K zobrazení stavu úkolů služby Batch použijte příkaz az batch task show.Use the az batch task show command to view the status of the Batch tasks. Následující příklad ukazuje údaje o úkolu mytask1 spuštěném v jednom z uzlů fondu.The following example shows details about mytask1 running on one of the pool nodes.

az batch task show \
    --job-id myjob \
    --task-id mytask1

Výstup tohoto příkazu obsahuje řadu podrobností, ale poznamenejte si exitCode příkazového řádku úkolu a nodeId.The command output includes many details, but take note of the exitCode of the task command line and the nodeId. Hodnota exitCode rovná 0 indikuje, že se příkazový řádek úkolu úspěšně dokončil.An exitCode of 0 indicates that the task command line completed successfully. Hodnota nodeId udává ID uzlu fondu, ve kterém se úkol spustil.The nodeId indicates the ID of the pool node on which the task ran.

Zobrazení výstupu úkoluView task output

K zobrazení seznamu souborů, které úkol vytvořil ve výpočetním uzlu, použijte příkaz az batch task file list.To list the files created by a task on a compute node, use the az batch task file list command. Následující příkaz zobrazí seznam souborů, které vytvořil úkol mytask1:The following command lists the files created by mytask1:

az batch task file list \
    --job-id myjob \
    --task-id mytask1 \
    --output table

Výstup je podobný tomuto:Output is similar to the following:

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

Pokud chcete některý z výstupních souborů stáhnout do místního adresáře, použijte příkaz az batch task file download.To download one of the output files to a local directory, use the az batch task file download command. V tomto příkladu je výstup úkolu v souboru stdout.txt.In this example, task output is in stdout.txt.

az batch task file download \
    --job-id myjob \
    --task-id mytask1 \
    --file-path stdout.txt \
    --destination ./stdout.txt

Obsah souboru stdout.txt můžete zobrazit v textovém editoru.You can view the contents of stdout.txt in a text editor. Obsah zahrnuje proměnné prostředí služby Azure Batch nastavené v uzlu.The contents show the Azure Batch environment variables that are set on the node. Při vytváření vlastních úloh služby Batch můžete na tyto proměnné prostředí odkazovat na příkazových řádcích úkolů a v aplikacích a skriptech spouštěných těmito příkazovými řádky.When you create your own Batch jobs, you can reference these environment variables in task command lines, and in the apps and scripts run by the command lines. Příklad:For example:

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ůClean up resources

Pokud chcete pokračovat v prohlížení kurzů a ukázek služby Batch, použijte účet Batch a propojený účet úložiště, které jste vytvořili v tomto rychlém startu.If you want to continue with Batch tutorials and samples, use the Batch account and linked storage account created in this quickstart. Za samotný účet Batch se neúčtují žádné poplatky.There is no charge for the Batch account itself.

Poplatky se účtují za fondy, ve kterých jsou spuštěné uzly, i když nejsou naplánované žádné úlohy.You are charged for pools while the nodes are running, even if no jobs are scheduled. Pokud nějaký fond už nepotřebujete, odstraňte ho pomocí příkazu az batch pool delete.When you no longer need a pool, delete it with the az batch pool delete command. Při odstranění fondu se odstraní veškeré výstupy úkolů v uzlech.When you delete the pool, all task output on the nodes is deleted.

az batch pool delete --pool-id mypool

Pokud už je nepotřebujete, můžete k odebrání skupiny prostředků, účtu Batch, fondů a všech souvisejících prostředků použít příkaz az group delete.When no longer needed, you can use the az group delete command to remove the resource group, Batch account, pools, and all related resources. Prostředky odstraňte následujícím způsobem:Delete the resources as follows:

az group delete --name QuickstartBatch-rg

Další krokyNext steps

V tomto rychlém startu jste vytvořili účet Batch, fond služby Batch a úlohu služby Batch.In this quickstart, you created a Batch account, a Batch pool, and a Batch job. Úloha spustila ukázkové úkoly a prohlédli jste si výstup vytvořený v jednom z uzlů.The job ran sample tasks, and you viewed output created on one of the nodes. Teď chápete klíčové koncepty služby Batch a můžete službu Batch vyzkoušet ve větším měřítku s úlohami, které víc odpovídají realitě.Now that you understand the key concepts of the Batch service, you are ready to try Batch with more realistic workloads at larger scale. Další informace o službě Azure Batch najdete v dalších kurzech o službě Azure Batch.To learn more about Azure Batch, continue to the Azure Batch tutorials.