Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.