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 resizing
is. 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 myJob
myPool
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.