Cvičení – vytvoření úlohy Azure Batch v rozhraní příkazového řádku ke spuštění paralelního úkolu

Dokončeno

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ů

  1. Přihlaste se k webu Azure Portal.

  2. V nabídce vlevo vyberte skupiny prostředků.

  3. Vyberte + Vytvořit.

  4. 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

  1. 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.

  2. Vytvořte pro skupinu prostředků a prostředek dávky proměnné prostředí.

    RESOURCE_GROUP=<your resource group>
    BATCH_ACCOUNT=batchaccount$RANDOM
    
  3. 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>
    
  4. 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
    
  5. 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"  
    
  6. 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.

  7. 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
    
  8. 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 a AZ_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 jako printenv a grep.

    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ů.

  9. 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