Snabbstart: Använd Azure CLI för att skapa ett Batch-konto och köra ett jobb

Den här snabbstarten visar hur du kommer igång med Azure Batch med hjälp av Azure CLI-kommandon och -skript för att skapa och hantera Batch-resurser. Du skapar ett Batch-konto som har en pool med virtuella datorer eller beräkningsnoder. Sedan skapar och kör du ett jobb med aktiviteter som körs på poolnoderna.

När du har slutfört den här snabbstarten förstår du de viktigaste begreppen i Batch-tjänsten och är redo att använda Batch med mer realistiska arbetsbelastningar i större skala.

Förutsättningar

  • Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

  • Azure Cloud Shell eller Azure CLI.

    Du kan köra Azure CLI-kommandona i den här snabbstarten interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloudshell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell inifrån Azure-portalen. Cloud Shell använder alltid den senaste versionen av Azure CLI.

    Du kan också installera Azure CLI lokalt för att köra kommandona. Stegen i den här artikeln kräver Azure CLI version 2.0.20 eller senare. Kör az version för att se din installerade version och beroende bibliotek och kör az upgrade to upgrade. Om du använder en lokal installation loggar du in på Azure med kommandot az login .

Kommentar

För vissa regioner och prenumerationstyper kan kvotbegränsningar leda till att Batch-kontot eller noden skapas misslyckas eller inte slutförs. I det här fallet kan du begära en kvotökning utan kostnad. Mer information finns i Batch-tjänstkvoter och -gränser.

Skapa en resursgrupp

Kör följande az group create-kommando för att skapa en Azure-resursgrupp med namnet qsBatch i Azure-regionen eastus2 . Resursgruppen är en logisk container som innehåller Azure-resurserna för den här snabbstarten.

az group create \
    --name qsBatch \
    --location eastus2

Skapa ett lagringskonto

Använd kommandot az storage account create för att skapa ett Azure Storage-konto för att länka till ditt Batch-konto. Även om den här snabbstarten inte använder lagringskontot använder de flesta verkliga Batch-arbetsbelastningar ett länkat lagringskonto för att distribuera program och lagra indata och utdata.

Kör följande kommando för att skapa ett Standard_LRS SKU-lagringskonto med namnet mybatchstorage i resursgruppen:

az storage account create \
    --resource-group qsBatch \
    --name mybatchstorage \
    --location eastus2 \
    --sku Standard_LRS

Skapa ett Batch-konto

Kör följande az batch account create-kommando för att skapa ett Batch-konto med namnet mybatchaccount i resursgruppen och länka det till lagringskontot mybatchstorage .

az batch account create \
    --name mybatchaccount \
    --storage-account mybatchstorage \
    --resource-group qsBatch \
    --location eastus2

Logga in på det nya Batch-kontot genom att köra kommandot az batch account login . När du har autentiserat ditt konto med Batch använder efterföljande az batch kommandon i den här sessionen den här kontokontexten.

az batch account login \
    --name mybatchaccount \
    --resource-group qsBatch \
    --shared-key-auth

Skapa en pool med beräkningsnoder

Kör kommandot az batch pool create för att skapa en pool med Linux-beräkningsnoder i ditt Batch-konto. I följande exempel skapas en pool med namnet myPool som består av två virtuella datorer av Standard_A1_v2 storlek som kör Ubuntu 20.04 LTS OS. Den här nodstorleken ger en bra balans mellan prestanda och kostnad för det här snabbstartsexemplet.

az batch pool create \
    --id myPool \
    --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

Batch skapar poolen omedelbart, men det tar några minuter att allokera och starta beräkningsnoderna. Om du vill se poolstatusen använder du kommandot az batch pool show . Det här kommandot visar alla egenskaper för poolen och du kan fråga efter specifika egenskaper. Följande kommando frågar efter poolallokeringstillståndet:

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

Medan Batch allokerar och startar noderna är poolen i tillståndet resizing . Du kan skapa ett jobb och aktiviteter medan pooltillståndet fortfarande resizingär . Poolen är redo att köra aktiviteter när allokeringstillståndet är steady och alla noderna körs.

Skapa ett jobb

Använd kommandot az batch job create för att skapa ett Batch-jobb som ska köras i poolen. Ett Batch-jobb är en logisk grupp med en eller flera aktiviteter. Jobbet innehåller inställningar som är gemensamma för aktiviteterna, till exempel poolen som ska köras på. I följande exempel skapas ett jobb som anropas myJobmyPool som ursprungligen inte har några uppgifter.

az batch job create \
    --id myJob \
    --pool-id myPool

Skapa jobbuppgifter

Batch tillhandahåller flera sätt att distribuera appar och skript till beräkningsnoder. Använd kommandot az batch task create för att skapa aktiviteter som ska köras i jobbet. Varje uppgift har en kommandorad som anger en app eller ett skript.

Följande Bash-skript skapar fyra identiska, parallella uppgifter som anropas myTask1 via myTask4. Aktivitetskommandoraden visar Batch-miljövariablerna på beräkningsnoden och väntar sedan 90 sekunder.

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

Kommandoutdata visar inställningarna för varje aktivitet. Batch distribuerar aktiviteterna till beräkningsnoderna.

Visa status för aktivitet

När du har skapat uppgiften köar Batch uppgiften som ska köras i poolen. När en nod är tillgänglig körs aktiviteten på noden.

Använd kommandot az batch task show för att visa status för Batch-uppgifter. I följande exempel visas information om statusen myTask1för :

az batch task show \
    --job-id myJob \
    --task-id myTask1

Kommandoutdata innehåller många detaljer. En av 0 anger till exempel exitCode att aktivitetskommandot har slutförts. nodeId Visar namnet på poolnoden som körde uppgiften.

Visa aktivitetens utdata

Använd kommandot az batch task file list för att visa en lista över filer som en uppgift har skapat på en nod. Följande kommando visar de filer som myTask1 skapades:

az batch task file list \
    --job-id myJob \
    --task-id myTask1 \
    --output table

Resultaten liknar följande utdata:

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

Kommandot az batch task file download laddar ned utdatafiler till en lokal katalog. Kör följande exempel för att ladda ned stdout.txt-filen :

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

Du kan visa innehållet i standardutdatafilen i en textredigerare. I följande exempel visas en typisk stdout.txt-fil . Standardutdata från den här uppgiften visar de Azure Batch-miljövariabler som har angetts på noden. Du kan referera till dessa miljövariabler i kommandoraderna för Batch-jobbaktiviteten och i apparna och skripten körs kommandoraderna.

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

Rensa resurser

Om du vill fortsätta med Batch-självstudier och exempel kan du använda Batch-kontot och det länkade lagringskontot som du skapade i den här snabbstarten. Det kostar ingenting för själva Batch-kontot.

Pooler och noder debiteras medan noderna körs, även om de inte kör jobb. När du inte längre behöver en pool använder du kommandot az batch pool delete för att ta bort den. Om du tar bort en pool tas alla aktivitetsutdata bort på noderna och själva noderna.

az batch pool delete --pool-id myPool

När du inte längre behöver någon av de resurser som du skapade för den här snabbstarten kan du använda kommandot az group delete för att ta bort resursgruppen och alla dess resurser. Kör följande kommando för att ta bort resursgruppen och lagringskontot, Batch-kontot, nodpoolerna och alla relaterade resurser:

az group delete --name qsBatch

Nästa steg

I den här snabbstarten skapade du ett Batch-konto och en pool, skapade och körde ett Batch-jobb och uppgifter och visade aktivitetsutdata från noderna. Nu när du förstår huvudbegreppen i Batch-tjänsten är du redo att använda Batch med mer realistiska arbetsbelastningar i större skala. Om du vill veta mer om Azure Batch ska du fortsätta med Azure Batch-självstudierna.