Cvičení – vytvoření úlohy Azure Batch v rozhraní příkazového řádku ke spuštění paralelního úkolu
Azure CLI umožňuje vytvořit a nasadit prostředky Azure Batch z příkazového řádku.
Jako architekt řešení pro neziskovou organizaci začnete v Azure vytvářet řešení Batch pro svůj scénář zahrnující technologii OCR. Nejdřív otestujete vytvoření účtu Batch, fondu pracovních uzlů, úlohy a úkolů – vše pomocí Azure CLI.
Azure CLI je příkazový řádek pro vytváření a správu prostředků Azure, který je určený pro různé platformy. Používá konzistentní syntaxi az noun verb --properties
. Příkazy rozhraní příkazového řádku ke správě služby Azure Batch se řídí touto konvencí, proto jsou všechny příkazy ve tvaru az batch verb --properties
.
Důležité
Praktická cvičení v tomto modulu jsou nepovinná. K dokončení cvičení budete potřebovat vlastní předplatné Azure.
Vytvoření prostředků Azure Batch
Nejdřív pro svůj testovací scénář vytvoříte účet a fond pracovních uzlů Azure Batch. Pak vytvoříte úlohu a úkoly Batch, které se mají v tomto fondu spustit.
Vytvoření nové skupiny prostředků
Přihlaste se k webu Azure Portal.
V nabídce vlevo vyberte skupiny prostředků.
Vyberte + Vytvořit.
Vyplněním formuláře vytvořte pro toto cvičení novou skupinu prostředků 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 Bashu.
Vytvořte pro skupinu prostředků a prostředek dávky proměnné prostředí.
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 jednu z následujících oblastí:
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 k úč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 nastavte pravidelné zjišťování, zda 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 zobrazují jako změna velikosti, ve skutečnosti se zřizují. Chcete-li stav uzlů ověřovat průběžně, můžete šipkou nahoru zopakovat poslední příkaz v Cloud Shellu.
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 úkoly 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 příslušného uzlu. Když tento proces prozkoumáte podrobněji, objevíte několik základních principů fungování Azure Batch. Úkoly jsou automaticky plánovány na uzly s dostupnou kapacitou. Proměnné prostředí, které používáme (
AZ_BATCH_TASK_ID
aAZ_BATCH_NODE_ID
) ale k zobrazení informací 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.--command-line
Také 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 jakoprintenv
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. Protože úloha Batch slouží jako kontejner pro úkoly Batch, dojde i k odstranění jejích úkolů.
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