Gyakorlat – Azure Batch-feladat létrehozása a parancssori felületen párhuzamos tevékenység futtatásához

Befejeződött

Az Azure CLI lehetővé teszi az Azure Batch-erőforrás parancssorból történő létrehozását és üzembe helyezését.

A nonprofit szervezet megoldástervezőjeként először is hozzon létre egy Batch-megoldást az optikai karakterfelismerési (OCR-) forgatókönyvhöz az Azure-ban. Első lépésként egy Batch-fiók, egy feldolgozócsomópont-készlet, egy feladat és tevékenységek létrehozását fogja tesztelni, mindezt az Azure CLI használatával.

Az Azure CLI egy platformfüggetlen parancssor, amely Azure-erőforrások létrehozására és felügyeletére szolgál. Az Azure CLI egy konzisztens az noun verb --properties szintaxist használ. Az Azure Batchet felügyelő parancssori felületi parancsok követik ezt a mintát, ezért az összes parancs a következő formában jelenik meg: az batch verb --properties.

Fontos

A modulban található gyakorlatok opcionálisak. A gyakorlatok elvégzéséhez saját Azure-előfizetésre lesz szüksége.

Az Azure Batch-erőforrások létrehozása

Először is hozza létre az Azure Batch-fiókot és a munkavégző csomópontok készletét a forgatókönyv teszteléséhez. Ezután hozzon létre egy Batch-feladatot és -tevékenységeket a készletben történő futtatáshoz.

Új erőforráscsoport létrehozása

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza az Erőforráscsoportok lehetőséget a bal oldali menüben.

  3. Válassza a +Létrehozás lehetőséget.

  4. Töltse ki az űrlapot a gyakorlat új erőforráscsoportjának létrehozásához, és jegyezze fel a csoport nevét.

Az Azure Batch-fiók létrehozása

  1. A portálon nyissa meg a Cloud Shellt a felső menü Cloud Shell ikonjának (>_) kiválasztásával. A terminálablak tetején található legördülő menü segítségével győződjön meg arról, hogy a Bashben van.

  2. Hozzon létre környezeti változókat az erőforráscsoporthoz és a Batch-erőforráshoz.

    RESOURCE_GROUP=<your resource group>
    BATCH_ACCOUNT=batchaccount$RANDOM
    
  3. Futtassa a következő parancsot a Cloud Shellben az Azure Batch-fiók létrehozásához. Válassza ki az alábbi helyek egyikét:

    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. Futtassa a következő parancsot az Azure Batch-fiókba történő bejelentkezéshez:

    az batch account login \
     --name $BATCH_ACCOUNT \
     --resource-group $RESOURCE_GROUP \
     --shared-key-auth
    
  5. Hozzon létre egy készletet három, Ubuntu 18.04-et futtató Standard A1 v2 virtuális gépből:

    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. Futtassa a következő parancsot annak rendszeres időközönként történő megállapításához, hogy a csomópontok készen állnak-e:

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

    Ha ez a lekérdezés azt mutatja, hogy a csomópontok "stabilak", készen állnak a munkára. Amíg "átméretezésként" jelennek meg, valójában ki vannak építve. A felfelé mutató nyílbillentyű használatával megismételheti a legutóbbi parancsot a Cloud Shellben, ha többször szeretné lekérdezni a csomópontok állapotát.

  7. Futtassa a következő parancsot egy Batch-feladat létrehozásához, amely logikai csoportosítás a csomópontokon futtatandó összes tevékenységhez:

    az batch job create \
     --id myjob \
     --pool-id mypool
    
  8. A Batch-tevékenységek létrehozásához futtassa a következő parancsot:

    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
    

    Ez a hurok számozott Batch-tevékenységek sorozatát hozza létre, amelyek mindegyike visszaadja az érintett tevékenységazonosító és a csomópont-azonosító adatait. A történések alapos vizsgálatával megismerheti az Azure Batch működésének számos jellemzőjét. A rendszer automatikusan az elérhető kapacitással rendelkező csomópontokra ütemezi a tevékenységeket. Az általunk használt környezetiAZ_BATCH_TASK_ID változók (és AZ_BATCH_NODE_ID) azonban azt jelzik, hogy melyik tevékenység melyik csomóponton fut, és csak a tevékenységfelhasználó kontextusában érhetők el, amely az egyes csomópontokon létrehozott alapértelmezett fiók a feladatok futtatásához. --command-line Az argumentum nem közvetlenül a rendszerhéj alatt fut, ezért explicit módon kell meghívnia a rendszerhéjat /bin/bash -c az olyan parancsok használatához, mint printenv az ésgrep.

    Ezzel a hurokkal befejeződött az Azure Batch-feladat implementálása. Az Azure Batch-fiókot és a feldolgozó csomópontok készletét a következő modulban használjuk, de a Batch-feladatot töröljük. Mivel a Batch-feladat a Batch-tevékenységek tárolójaként működik, a tevékenységeket is törölni kell.

  9. Futtassa a következő parancsot a Cloud Shellben a Batch-feladat törléséhez:

    az batch job delete --job-id myjob -y