Quickstart: De Azure CLI gebruiken om een Batch-account te maken en een taak uit te voeren

In deze quickstart ziet u hoe u aan de slag gaat met Azure Batch met behulp van Azure CLI-opdrachten en -scripts voor het maken en beheren van Batch-resources. U maakt een Batch-account met een groep virtuele machines of rekenknooppunten. Vervolgens maakt en voert u een taak uit met taken die worden uitgevoerd op de poolknooppunten.

Nadat u deze quickstart hebt voltooid, begrijpt u de belangrijkste concepten van de Batch-service en kunt u Batch gebruiken met realistischere, grotere workloads.

Vereisten

  • Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

  • Azure Cloud Shell of Azure CLI.

    U kunt de Azure CLI-opdrachten in deze quickstart interactief uitvoeren in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u CloudShell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal. Cloud Shell maakt altijd gebruik van de nieuwste versie van de Azure CLI.

    U kunt azure CLI ook lokaal installeren om de opdrachten uit te voeren. Voor de stappen in dit artikel is Azure CLI versie 2.0.20 of hoger vereist. Voer az version uit om uw geïnstalleerde versie en afhankelijke bibliotheken te zien en voer az upgrade uit om een upgrade uit te voeren. Als u een lokale installatie gebruikt, meldt u zich aan bij Azure met behulp van de opdracht az login .

Notitie

Voor sommige regio's en abonnementstypen kunnen quotumbeperkingen ertoe leiden dat het maken van een Batch-account of knooppunt mislukt of niet is voltooid. In dit geval kunt u zonder kosten een quotumverhoging aanvragen. Zie Quota en limieten voor Batch-services voor meer informatie.

Een brongroep maken

Voer de volgende opdracht az group create uit om een Azure-resourcegroep te maken met de naam qsBatch in de eastus2 Azure-regio. De resourcegroep is een logische container die de Azure-resources voor deze quickstart bevat.

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

Een opslagaccount maken

Gebruik de opdracht az storage account create om een Azure Storage-account te maken om een koppeling naar uw Batch-account te maken. Hoewel deze quickstart geen gebruik maakt van het opslagaccount, gebruiken de meeste echte Batch-workloads een gekoppeld opslagaccount om toepassingen te implementeren en invoer- en uitvoergegevens op te slaan.

Voer de volgende opdracht uit om een Standard_LRS SKU-opslagaccount met de naam mybatchstorage in uw resourcegroep te maken:

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

Een Batch-account maken

Voer de volgende opdracht az batch account create uit om een Batch-account te maken met de naam mybatchaccount in uw resourcegroep en koppel het aan het mybatchstorage opslagaccount.

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

Meld u aan bij het nieuwe Batch-account door de opdracht az batch account login uit te voeren. Zodra u uw account met Batch hebt geverifieerd, gebruiken volgende az batch opdrachten in deze sessie deze accountcontext.

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

Een pool met rekenknooppunten maken

Voer de opdracht az batch pool create uit om een pool met Linux-rekenknooppunten in uw Batch-account te maken. In het volgende voorbeeld wordt een pool gemaakt met de naam myPool die bestaat uit twee vm's met Standard_A1_v2 grootte waarop het Ubuntu 20.04 LTS-besturingssysteem wordt uitgevoerd. Deze knooppuntgrootte biedt een goede balans tussen prestaties en kosten voor dit quickstart-voorbeeld.

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 maakt de pool onmiddellijk, maar het duurt enkele minuten om de rekenknooppunten toe te wijzen en te starten. Gebruik de opdracht az batch pool show om de poolstatus te zien . Met deze opdracht worden alle eigenschappen van de pool weergegeven en kunt u zoeken naar specifieke eigenschappen. De volgende opdracht voert query's uit voor de pooltoewijzingsstatus:

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

Terwijl Batch de knooppunten toewijst en start, heeft de pool de resizing status. U kunt een taak en taken maken terwijl de poolstatus nog steeds resizingis. De pool is gereed voor het uitvoeren van taken als de toewijzingsstatus steady is en alle knooppunten worden uitgevoerd.

Een taak maken

Gebruik de opdracht az batch job create om een Batch-taak te maken die in uw pool kan worden uitgevoerd. Een Batch-taak is een logische groep van een of meer taken. De taak bevat instellingen die gebruikelijk zijn voor de taken, zoals de pool waarop moet worden uitgevoerd. In het volgende voorbeeld wordt een taak myJobmyPool gemaakt die in eerste instantie geen taken bevat.

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

Taaktaken maken

Batch biedt verschillende manieren om apps en scripts te implementeren op rekenknooppunten. Gebruik de opdracht az batch task create om taken te maken die in de taak moeten worden uitgevoerd. Elke taak heeft een opdrachtregel waarmee een app of script wordt opgegeven.

Met het volgende Bash-script worden vier identieke, parallelle taken gemaakt die worden aangeroepenmyTask1.myTask4 De opdrachtregel van de taak geeft de Batch-omgevingsvariabelen op het rekenknooppunt weer en wacht vervolgens 90 seconden.

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

In de uitvoer van de opdracht worden de instellingen voor elke taak weergegeven. De taken worden met Batch naar de rekenknooppunten gedistribueerd.

Taakstatus weergeven

Nadat u de taak hebt gemaakt, wordt de taak in Batch in de wachtrij geplaatst om uit te voeren in de pool. Zodra een knooppunt beschikbaar is, wordt de taak uitgevoerd op het knooppunt.

Gebruik de opdracht az batch task show om de status van Batch-taken weer te geven. In het volgende voorbeeld ziet u details over de status van myTask1:

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

De uitvoer van de opdracht bevat veel details. Een van 0 geeft bijvoorbeeld exitCode aan dat de taakopdracht is voltooid. Hier nodeId ziet u de naam van het poolknooppunt waarop de taak is uitgevoerd.

Taakuitvoer weergeven

Gebruik de opdracht az batch task file list om de bestanden weer te geven die een taak op een knooppunt heeft gemaakt. Met de volgende opdracht worden de bestanden weergegeven die myTask1 zijn gemaakt:

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

De resultaten zijn vergelijkbaar met de volgende uitvoer:

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

Met de opdracht az batch task file download downloadt u uitvoerbestanden naar een lokale map. Voer het volgende voorbeeld uit om het bestand stdout.txt te downloaden:

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

U kunt de inhoud van het standaarduitvoerbestand weergeven in een teksteditor. In het volgende voorbeeld ziet u een typisch stdout.txt-bestand . In de standaarduitvoer van deze taak ziet u de Omgevingsvariabelen van Azure Batch die zijn ingesteld op het knooppunt. U kunt deze omgevingsvariabelen raadplegen in de opdrachtregels van uw Batch-taaktaak en in de apps en scripts die door de opdrachtregels worden uitgevoerd.

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

Resources opschonen

Als u wilt doorgaan met Batch-zelfstudies en -voorbeelden, kunt u het Batch-account en het gekoppelde opslagaccount gebruiken dat u in deze quickstart hebt gemaakt. Er worden geen kosten in rekening gebracht voor het Batch-account zelf.

Pools en knooppunten brengen kosten in rekening terwijl de knooppunten worden uitgevoerd, zelfs als ze geen taken uitvoeren. Wanneer u een pool niet meer nodig hebt, gebruikt u de opdracht az batch pool delete om deze te verwijderen. Als u een pool verwijdert, worden alle taakuitvoer op de knooppunten en de knooppunten zelf verwijderd.

az batch pool delete --pool-id myPool

Wanneer u geen resources meer nodig hebt die u voor deze quickstart hebt gemaakt, kunt u de opdracht az group delete gebruiken om de resourcegroep en alle bijbehorende resources te verwijderen. Als u de resourcegroep en het opslagaccount, het Batch-account, de knooppuntgroepen en alle gerelateerde resources wilt verwijderen, voert u de volgende opdracht uit:

az group delete --name qsBatch

Volgende stappen

In deze quickstart hebt u een Batch-account en -pool gemaakt en uitgevoerd, een Batch-taak en -taken gemaakt en uitgevoerd, en de taakuitvoer van de knooppunten bekeken. Nu u de belangrijkste concepten van de Batch-service begrijpt, bent u klaar om Batch te gebruiken met realistischere, grotere workloads. Voor meer informatie over Azure Batch gaat u naar de Azure Batch-zelfstudies.