Megosztás a következőn keresztül:


Rövid útmutató: Batch-fiók létrehozása és feladat futtatása az Azure CLI használatával

Ez a rövid útmutató bemutatja, hogyan kezdheti el az Azure Batch használatát Azure CLI-parancsokkal és szkriptekkel Batch-erőforrások létrehozásához és kezeléséhez. Létrehozhat egy Batch-fiókot, amely virtuális gépek vagy számítási csomópontok készletével rendelkezik. Ezután létrehozhat és futtathat egy munkát a készlethez tartozó csomópontokon futó feladatokkal.

A rövid útmutató elvégzése után megismerheti a Batch szolgáltatás alapvető fogalmait, és készen áll a Batch reálisabb, nagyobb méretű számítási feladatok használatára.

Előfeltételek

  • Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

  • Azure Cloud Shell vagy Azure CLI.

    Ebben a rövid útmutatóban interaktívan futtathatja az Azure CLI-parancsokat az Azure Cloud Shellben. A Cloud Shell parancsainak futtatásához válassza a Kódblokk jobb felső sarkában található Open CloudShell lehetőséget . Válassza a Másolás lehetőséget a kód másolásához, majd illessze be a Cloud Shellbe a futtatáshoz. A Cloud Shellt az Azure Portalon is futtathatja. A Cloud Shell mindig az Azure CLI legújabb verzióját használja.

    Másik lehetőségként helyileg is telepítheti az Azure CLI-t a parancsok futtatásához. A cikkben ismertetett lépésekhez az Azure CLI 2.0.20-s vagy újabb verziója szükséges. Futtassa az az verziót a telepített verzió és a függő kódtárak megtekintéséhez, és futtassa az az upgrade-t a frissítéshez. Ha helyi telepítést használ, jelentkezzen be az Azure-ba a megfelelő paranccsal.

Feljegyzés

Egyes régiók és előfizetéstípusok esetében a kvótakorlátozások miatt a Batch-fiók vagy a csomópont létrehozása meghiúsulhat, vagy nem fejeződhet be. Ebben az esetben díjmentesen kérheti a kvótanövelést. További információ: Batch szolgáltatáskvóták és korlátok.

Erőforráscsoport létrehozása

Azure-erőforráscsoport létrehozásához futtassa az alábbi az group create parancsot. Az erőforráscsoport egy logikai tároló, amely az Azure-erőforrásokat tartalmazza ehhez a rövid útmutatóhoz.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"

az group create \
    --name $RESOURCE_GROUP \
    --location $REGION

Eredmények:

{
    "id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
    "location": "eastus2",
    "managedBy": null,
    "name": "qsBatchxxx",
    "properties": {
         "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.Resources/resourceGroups"
}

Tárfiók létrehozása

Az storage account create parancsot használja, hogy hozzon létre egy Azure Storage-fiókot, amelyet a Batch-fiókhoz kapcsolhat. Bár ez a rövid útmutató nem használja a tárfiókot, a legtöbb valós Batch-számítási feladat egy társított tárfiókot használ az alkalmazások üzembe helyezéséhez, valamint a bemeneti és kimeneti adatok tárolásához.

Futtassa a következő parancsot egy Standard_LRS termékváltozat tárfiókjának létrehozásához az erőforráscsoportban:

export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"

az storage account create \
    --resource-group $RESOURCE_GROUP \
    --name $STORAGE_ACCOUNT \
    --location $REGION \
    --sku Standard_LRS

Batch-fiók létrehozása

Futtassa az alábbi az batch account create parancsot egy Batch-fiók létrehozásához az erőforráscsoportban, és kapcsolja össze a tárfiókkal.

export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"

az batch account create \
    --name $BATCH_ACCOUNT \
    --storage-account $STORAGE_ACCOUNT \
    --resource-group $RESOURCE_GROUP \
    --location $REGION

Jelentkezzen be az új Batch-fiókba a az batch account login parancs futtatásával. Miután hitelesítette a fiókját a Batch használatával, a munkamenet későbbi az batch parancsai ezt a fiókkörnyezetet használják.

az batch account login \
    --name $BATCH_ACCOUNT \
    --resource-group $RESOURCE_GROUP \
    --shared-key-auth

Számításicsomópont-készlet létrehozása

Futtassa az az batch pool create parancsot linuxos számítási csomópontok készletének létrehozásához a Batch-fiókban. Az alábbi példa létrehoz egy készletet, amely két Standard_A1_v2 méretű, Ubuntu 20.04 LTS operációs rendszert futtató virtuális gépből áll. Ez a csomópontméret a teljesítmény és a költségek jó egyensúlyát kínálja ebben a rövid útmutatóban.

export POOL_ID="myPool$RANDOM_SUFFIX"

az batch pool create \
    --id $POOL_ID \
    --image canonical:0001-com-ubuntu-server-focal:20_04-lts \
    --node-agent-sku-id "batch.node.ubuntu 20.04" \
    --target-dedicated-nodes 2 \
    --vm-size Standard_A1_v2

A Batch azonnal létrehozza a kapacitást, de a számítási csomópontok kiosztása és elindítása néhány percet vesz igénybe. A készlet állapotának megtekintéséhez használja a az batch pool show parancsot. Ez a parancs a készlet összes tulajdonságát megjeleníti, és lehetővé teszi konkrét tulajdonságok lekérdezését. A következő parancs lekérdezi a készletfoglalási állapotot:

az batch pool show --pool-id $POOL_ID \
    --query "{allocationState: allocationState}"

Eredmények:

{
    "allocationState": "resizing"
}

Bár a Batch lefoglalja és elindítja a csomópontokat, a resizing állapotban van a készlet. Létrehozhat munkát és feladatokat, amíg a készlet állapota még resizing. A pool akkor áll készen tevékenységek futtatására, amikor a kiosztási állapota steady értékre vált, és minden csomópont fut.

Feladat létrehozása

Az batch job create paranccsal hozzon létre egy Batch-feladatot a saját fürtjén való futtatáshoz. A Batch-feladatok egy vagy több tevékenység logikai csoportja. A munka tartalmazza a tevékenységek gyakori beállításait, mint például az erőforráskészlet, amelyen futtatni kell. Az alábbi példa egy olyan feladatot hoz létre, amely kezdetben nem rendelkezik feladatokkal.

export JOB_ID="myJob$RANDOM_SUFFIX"

az batch job create \
    --id $JOB_ID \
    --pool-id $POOL_ID

Feladatfeladatok létrehozása

A Batch többféleképpen is üzembe helyezhet alkalmazásokat és szkripteket a számítási csomópontokon. A feladatban futtatandó feladatok létrehozásához használja az az batch task create parancsot. Minden feladathoz tartozik egy parancssor, amely egy alkalmazást vagy szkriptet határoz meg.

A következő Bash-szkript négy azonos, párhuzamos feladatot myTask1myTask4hoz létre. A feladat parancssora megjeleníti a Batch környezeti változóit a számítási csomóponton, majd 90 másodpercet vár.

for i in {1..4}
do
   az batch task create \
    --task-id myTask$i \
    --job-id $JOB_ID \
    --command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done

A Batch kiosztja a feladatokat a számítási csomópontoknak.

Tevékenységek állapotának megtekintése

A feladatok létrehozása után a Batch várólistára állítja őket a csomópontokon való futtatásra. Miután egy csomópont elérhetővé válik, egy feladat fut a csomóponton.

A Batch-tevékenységek állapotának megtekintéséhez használja az az batch task show parancsot. Az alábbi példa a(z) myTask1 állapotának részleteit mutatja be.

az batch task show \
    --job-id $JOB_ID \
    --task-id myTask1

A parancs kimenete számos részletet tartalmaz. Például egy exitCode0 azt jelzi, hogy a feladatparancs sikeresen befejeződött. A nodeId a feladatot futtató készletcsomópont nevét mutatja.

A tevékenység kimenetének megtekintése

A batch task file list paranccsal listázhatja a feladat által egy csomóponton létrehozott fájlokat. A következő parancs felsorolja a létrehozott fájlokat myTask1 :

# Wait for task to complete before downloading output
echo "Waiting for task to complete..."
while true; do
    STATUS=$(az batch task show --job-id $JOB_ID --task-id myTask1 --query "state" -o tsv)
    if [ "$STATUS" == "running" ]; then
        break
    fi
    sleep 10
done

az batch task file list --job-id $JOB_ID --task-id myTask1 --output table

Az eredmények a következő kimenethez hasonlóak:

Eredmények:

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

Az az batch task file download parancs letölti a kimeneti fájlokat egy helyi könyvtárba. Futtassa az alábbi példát a stdout.txt fájl letöltéséhez:

az batch task file download \
    --job-id $JOB_ID \
    --task-id myTask1 \
    --file-path stdout.txt \
    --destination ./stdout.txt

A szabványos kimeneti fájl tartalmát egy szövegszerkesztőben tekintheti meg. Az alábbi példa egy tipikus stdout.txt fájlt mutat be. A feladat standard kimenete a csomóponton beállított Azure Batch környezeti változókat jeleníti meg. Ezekre a környezeti változókra hivatkozhat a Batch-feladat parancssorokban, valamint az alkalmazásokban és szkriptekben, amelyeket a parancssorok futtatnak.

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=myJob
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

Következő lépések

Ebben a gyors kezdési útmutatóban létrehozott egy Batch-fiókot és egy készletet, létrehozott és futtatott egy Batch-munkát, valamint feladatokat, és megtekintette a csomópontok feladatkimenetét. Most, hogy megismerte a Batch szolgáltatás főbb fogalmait, készen áll a Batch reálisabb, nagyobb méretű számítási feladatok használatára. Az Azure Batchről további információt az Azure Batch-oktatóanyagokban találhat.