Cvičení – vytvoření úlohy Azure Batch v rozhraní příkazového řádku pro spuštění paralelní úlohy
Azure CLI umožňuje vytvářet a nasazovat prostředky Azure Batch z příkazového řádku.
Jako architekt řešení pro neziskové organizace chcete začít vytvářet řešení Batch pro scénář OCR v Azure. Jako první krok otestujete vytvoření účtu Batch, fondu výpočetních uzlů, úlohy a úkolů, a to vše za použití Azure CLI.
Azure CLI je multiplatformní příkazový řádek pro vytváření a správu prostředků Azure. Používá konzistentní syntaxi az noun verb --properties
. Příkazy rozhraní příkazového řádku pro správu služby Azure Batch dodržují tuto konvenci, takže všechny příkazy mají formu az batch verb --properties
.
Důležitý
Cvičení v tomto modulu jsou volitelná. K dokončení cvičení budete potřebovat vlastní předplatné Azure.
Vytvořte prostředky Azure Batch
Nejprve vytvoříte účet Azure Batch a fond pracovních uzlů pro váš testovací scénář. Pak vytvoříte úlohu Batch a úkoly, které se budou spouštět ve fondu.
Vytvoření nové skupiny prostředků
V nabídce vlevo vyberte skupiny prostředků.
Vyberte + Vytvořit.
Vyplňte formulář a vytvořte novou skupinu prostředků pro cvičení a poznamenejte si název.
Vytvoření účtu Azure Batch
Na portálu otevřete Cloud Shell výběrem ikony Cloud Shellu (>_) v horní nabídce. Pomocí rozevírací nabídky v horní části okna terminálu se ujistěte, že jste v Bash.
Vytvořte proměnné prostředí pro skupinu prostředků a dávkový prostředek.
RESOURCE_GROUP=<your resource group> BATCH_ACCOUNT=batchaccount$RANDOM
Spuštěním následujícího příkazu v Cloud Shellu vytvořte účet Azure Batch. Vyberte si z jednoho z následujících umístění:
westeurope,eastus,eastus2,westus,northcentralus,brazilsouth,northeurope,centralus,eastasia,japaneast,australiasoutheast,japanwest,koreasouth,koreacentral,southeastasia,southcentralus,australiaeast,southindia,centralindia,westindia,canadacentral,canadaeast,uksouth,ukwest,westcentralus,westus2,francecentral,southafricanorth
az batch account create \ --name $BATCH_ACCOUNT \ --resource-group $RESOURCE_GROUP \ --location <choose a location from the preceding list>
Spuštěním následujícího příkazu se přihlaste ke svému účtu Azure Batch:
az batch account login \ --name $BATCH_ACCOUNT \ --resource-group $RESOURCE_GROUP \ --shared-key-auth
Vytvořte fond tří virtuálních počítačů Standard A1 v2 s Ubuntu 18.04:
az batch pool create \ --id mypool --vm-size Standard_A1_v2 \ --target-dedicated-nodes 3 \ --image canonical:ubuntuserver:18.04-LTS \ --node-agent-sku-id "batch.node.ubuntu 18.04"
Spuštěním následujícího příkazu pravidelně určete, jestli jsou uzly připravené:
az batch pool show --pool-id mypool \ --query "allocationState"
Když tento dotaz ukazuje, že uzly jsou "stabilní", jsou připravené k práci. I když se zdá, že mění svoji velikost, ve skutečnosti probíhá jejich zřizování. Pomocí klávesy se šipkou nahoru můžete v Cloud Shellu opakovat poslední příkaz, pokud chcete dotazovat stav uzlů více než jednou.
Spuštěním následujícího příkazu vytvořte úlohu Batch, což je logické seskupení pro všechny úlohy, které se budou spouštět na uzlech:
az batch job create \ --id myjob \ --pool-id mypool
Spuštěním následujícího příkazu vytvořte úlohy Batch:
for i in {1..10} do az batch task create \ --task-id mytask$i \ --job-id myjob \ --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'" done
Tato smyčka vytvoří řadu číslovaných úkolů Batch, z nichž každý vypíše informace o ID úkolu a ID uzlu, které jsou zahrnuty. Prozkoumáním toho, co se tady děje, si můžete prohlédnout poměrně několik charakteristik fungování služby Azure Batch. Úkoly se automaticky plánují na uzly s dostupnou kapacitou. Proměnné prostředí, které používáme (
AZ_BATCH_TASK_ID
aAZ_BATCH_NODE_ID
), ale zobrazují informace o tom, na kterém uzlu se spouští, jsou k dispozici pouze v kontextu uživatele úkolu, výchozí účet vytvořený na každém uzlu, aby bylo možné spouštět úkoly. Také--command-line
argument neběží přímo pod prostředím, takže musíte prostředí explicitně vyvolat pomocí/bin/bash -c
, aby bylo možné použít příkazy, jako jsouprintenv
agrep
.Tato smyčka dokončí implementaci úlohy Azure Batch. Účet Azure Batch a fond pracovních uzlů ponecháme na místě pro použití v dalším modulu, ale úlohu Batch odstraníme. Vzhledem k tomu, že úloha Batch funguje jako kontejner pro úkoly služby Batch, odstraní se také úkoly.
Spuštěním následujícího příkazu v Cloud Shellu odstraňte úlohu Batch:
az batch job delete --job-id myjob -y