Schnellstart: Verwenden der Azure CLI zum Erstellen eines Batch-Kontos und Ausführen eines Auftrags
In dieser Schnellstartanleitung erfahren Sie, wie Sie die ersten Schritte mit Azure Batch mithilfe von Azure CLI-Befehlen und -Skripts zum Erstellen und Verwalten von Batch-Ressourcen ausführen. Sie erstellen ein Batch-Konto mit einem Pool mit virtuellen Computern oder Compute-Knoten. Anschließend erstellen Sie einen Auftrag mit Aufgaben, die auf den Pool-Knoten ausgeführt werden, und führen diesen aus.
Nachdem Sie diese Schnellstartanleitung abgeschlossen haben, sind Sie mit den wichtigsten Konzepten des Batch-Diensts vertraut und verwenden Batch mit realistischeren, umfangreicheren Workloads.
Voraussetzungen
-
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Azure Cloud Shell oder Azure CLI.
Sie können die Azure CLI-Befehle in dieser Schnellstartanleitung interaktiv in Azure Cloud Shell ausführen. Um die Befehle in der Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren, und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Cloud Shell auch innerhalb des Azure-Portals ausführen. Cloud Shell verwendet immer die neueste Version der Azure CLI.
Alternativ können Sie die Azure CLI auch lokal installieren, um die Befehle auszuführen. Für die Schritte in diesem Artikel ist mindestens Version 2.0.20 der Azure CLI erforderlich. Führen Sie den Befehl az version aus, um die installierte Version und abhängige Bibliotheken anzuzeigen, und führen Sie den Befehl az upgrade aus, um ein Upgrade durchzuführen. Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei Azure an.
Hinweis
Für einige Regionen und Abonnementtypen können Kontingenteinschränkungen dazu führen, dass die Erstellung eines Batch-Kontos oder -Knotens fehlschlägt oder nicht abgeschlossen ist. In diesem Fall können Sie eine kostenlose Kontingenterhöhung anfordern. Weitere Informationen finden Sie im Artikel Batch-Dienst – Kontingente und Limits.
Erstellen einer Ressourcengruppe
Führen Sie den folgenden Befehl az group create aus, um eine Azure-Ressourcengruppe mit dem Namen qsBatch
in der Azure-Region eastus2
zu erstellen. Die Ressourcengruppe ist ein logischer Container, der die Azure-Ressourcen für diese Schnellstartanleitung enthält.
az group create \
--name qsBatch \
--location eastus2
Speicherkonto erstellen
Führen Sie den Befehl az storage account create aus, um ein Azure Storage-Konto zu erstellen, das mit Ihrem Batch-Konto verknüpft ist. Obwohl in dieser Schnellstartanleitung das Speicherkonto nicht verwendet wird, verwenden die meisten realen Batch-Workloads ein verknüpftes Speicherkonto, um Anwendungen bereitzustellen und Eingabe- und Ausgabedaten zu speichern.
Führen Sie den folgenden Befehl aus, um ein Speicherkonto der Standard_LRS-SKU mit dem Namen mybatchstorage
in Ihrer Ressourcengruppe zu erstellen:
az storage account create \
--resource-group qsBatch \
--name mybatchstorage \
--location eastus2 \
--sku Standard_LRS
Erstellen eines Batch-Kontos
Führen Sie den folgenden Befehl az batch account create aus, um ein Batch-Konto mit dem Namen mybatchaccount
in Ihrer Ressourcengruppe zu erstellen und es mit dem Speicherkonto mybatchstorage
zu verknüpfen.
az batch account create \
--name mybatchaccount \
--storage-account mybatchstorage \
--resource-group qsBatch \
--location eastus2
Melden Sie sich beim neuen Batch-Konto an, indem Sie den Befehl az batch account login ausführen. Nachdem Sie Ihr Konto mit Batch authentifiziert haben, verwenden nachfolgende az batch
-Befehle in dieser Sitzung diesen Kontokontext.
az batch account login \
--name mybatchaccount \
--resource-group qsBatch \
--shared-key-auth
Erstellen eines Pools mit Computeknoten
Führen Sie den Befehl az batch pool create aus, um einen Pool mit Linux-Compute-Knoten in Ihrem Batch-Konto zu erstellen. Im folgenden Beispiel wird ein Pool mit dem Namen myPool
erstellt, der zwei virtuelle Computer der Größe „Standard_A1_v2“ mit dem Betriebssystem Ubuntu 20.04 LTS enthält. Diese Knotengröße bietet für dieses Schnellstartbeispiel ein gutes Preis-Leistungs-Verhältnis.
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 erstellt den Pool sofort, aber es dauert einige Minuten, bis die Compute-Knoten zugeordnet und gestartet wurden. Führen Sie den Befehl az batch pool show aus, um den Pool-Status anzuzeigen. Mit diesem Befehl werden alle Eigenschaften des Pools angezeigt, und Sie können bestimmte Eigenschaften abfragen. Der folgende Befehl fragt den Zuordnungsstatus des Pools ab:
az batch pool show --pool-id myPool \
--query "allocationState"
Während Batch die Knoten zuordnet und startet, befindet sich der Pool im Status resizing
. Sie können einen Auftrag und Aufgaben erstellen, während sich der Pool weiterhin im Status resizing
befindet. Der Pool ist für die Durchführung von Aufgaben bereit, wenn der Zuweisungsstatus steady
lautet und alle Knoten ausgeführt werden.
Erstellen eines Auftrags
Führen Sie den Befehl az batch job create aus, um einen Batch-Auftrag für die Ausführung in Ihrem Pool zu erstellen. Ein Batchauftrag ist eine logische Gruppe für einen oder mehrere Tasks. Der Auftrag umfasst gemeinsame Einstellungen für die Aufgaben, z. B. den Pool zum Ausführen. Das folgende Beispiel erstellt einen Auftrag mit dem Namen myJob
im Pool myPool
, der anfänglich über keine Aufgaben verfügt.
az batch job create \
--id myJob \
--pool-id myPool
Erstellen von Auftragsaufgaben
In Batch gibt es mehrere Möglichkeiten, Apps und Skripts auf Computeknoten bereitzustellen. Führen Sie den Befehl az batch task create aus, um Aufgaben für die Ausführung im Auftrag zu erstellen. Jede Aufgabe verfügt über eine Befehlszeile, die eine App oder ein Skript angibt.
Das folgende Bash-Skript erstellt vier identische, parallele Aufgaben, die als myTask1
bis myTask4
bezeichnet werden. Die Befehlszeile für Aufgaben zeigt die Batch-Umgebungsvariablen auf dem Compute-Knoten an, und anschließend wird 90 Sekunden gewartet.
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 der Befehlsausgabe werden die Einstellungen für die einzelnen Aufgaben angezeigt. Batch verteilt die Aufgaben auf die Computeknoten.
Anzeigen des Aufgabenstatus
Nachdem Sie die Aufgabe erstellt haben, wird die Aufgabe von Batch zur Ausführung im Pool in die Warteschlange eingereiht. Sobald ein Knoten verfügbar ist, wird die Aufgabe auf dem Knoten ausgeführt.
Führen Sie den Befehl az batch task show aus, um den Status der Batch-Aufgaben anzuzeigen. Im folgenden Beispiel werden Details zum Status von myTask1
angezeigt:
az batch task show \
--job-id myJob \
--task-id myTask1
Die Befehlsausgabe umfasst viele Details. Ein exitCode
von 0
gibt beispielsweise an, dass der Aufgabenbefehl erfolgreich durchgeführt wurde. Die nodeId
zeigt den Namen des Pool-Knotens an, der die Aufgabe ausgeführt hat.
Anzeigen der Aufgabenausgabe
Führen Sie den Befehl az batch task file list aus, um die Dateien aufzulisten, die eine Aufgabe auf einem Knoten erstellt hat. Der folgende Befehl listet die Dateien auf, die von myTask1
erstellt wurden:
az batch task file list \
--job-id myJob \
--task-id myTask1 \
--output table
Die Ergebnisse ähneln der folgenden Ausgabe:
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
Mit dem Befehl az batch task file download werden Ausgabedateien in ein lokales Verzeichnis heruntergeladen. Führen Sie das folgende Beispiel aus, um die Datei stdout.txt herunterzuladen:
az batch task file download \
--job-id myJob \
--task-id myTask1 \
--file-path stdout.txt \
--destination ./stdout.txt
Sie können die Inhalte der standardmäßigen Ausgabedatei in einem Texteditor anzeigen. Das folgende Beispiel zeigt eine typische stdout.txt-Datei an. Die Standardausgabe dieser Aufgabe zeigt die Azure Batch-Umgebungsvariablen an, die auf dem Knoten festgelegt sind. Sie können in den Befehlszeilen Ihrer Batch-Auftragsaufgaben und in den Apps und Skripts, die die Befehlszeilen ausführen, auf diese Umgebungsvariablen verweisen.
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
Bereinigen von Ressourcen
Wenn Sie mit den Batch-Tutorials und -Beispielen fortfahren möchten, können Sie das Batch-Konto und das verknüpfte Speicherkonto, die sie in dieser Schnellstartanleitung erstellt haben, verwenden. Für das Batch-Konto selbst fallen keine Gebühren an.
Für Pools und Knoten fallen Gebühren an, während die Knoten ausgeführt werden, auch wenn sie keine Aufträge ausführen. Falls Sie einen Pool nicht mehr benötigen, führen Sie den Befehl az batch pool delete aus, um ihn zu löschen. Beim Löschen eines Pools werden alle Aufgabenausgaben auf den Knoten und die Knoten selbst gelöscht.
az batch pool delete --pool-id myPool
Wenn Sie keine der von Ihnen für diese Schnellstartanleitung erstellten Ressourcen mehr benötigen, führen Sie den Befehl az group delete aus, um die Ressourcengruppe und alle ihre Ressourcen zu löschen. Um die Ressourcengruppe, das Speicherkonto, das Batch-Konto, die Knoten-Pools und alle zugehörigen Ressourcen zu löschen, führen Sie den folgenden Befehl aus:
az group delete --name qsBatch
Nächste Schritte
In dieser Schnellstartanleitung haben Sie ein Batch-Konto und einen Batch-Pool erstellt, einen Batch-Auftrag und -Aufgaben erstellt und ausgeführt sowie die Aufgabenausgabe von den Knoten angezeigt. Da Sie sich jetzt mit den wichtigsten Konzepten des Batch-Diensts vertraut gemacht haben, können Sie Batch mit realistischeren, umfangreicheren Workloads verwenden. Weitere Informationen zu Azure Batch finden Sie in den Azure Batch-Tutorials.