Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
-
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
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 mit dem entsprechenden Befehl 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 zu erstellen. Die Ressourcengruppe ist ein logischer Container, der die Azure-Ressourcen für diese Schnellstartanleitung enthält.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"
az group create \
--name $RESOURCE_GROUP \
--location $REGION
Ergebnisse:
{
"id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
"location": "eastus2",
"managedBy": null,
"name": "qsBatchxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
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 Standard_LRS SKU-Speicherkonto in Ihrer Ressourcengruppe zu erstellen:
export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"
az storage account create \
--resource-group $RESOURCE_GROUP \
--name $STORAGE_ACCOUNT \
--location $REGION \
--sku Standard_LRS
Erstellen eines Batch-Kontos
Führen Sie den folgenden Befehl zum Erstellen eines Batchkontos aus, um ein Batchkonto in Ihrer Ressourcengruppe zu erstellen und mit dem Speicherkonto zu verknüpfen.
export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"
az batch account create \
--name $BATCH_ACCOUNT \
--storage-account $STORAGE_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--location $REGION
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 $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--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 erstellt, der aus zwei Standard_A1_v2 Größe VMs mit Ubuntu 20.04 LTS-Betriebssystem besteht. Diese Knotengröße bietet für dieses Schnellstartbeispiel ein gutes Preis-Leistungs-Verhältnis.
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
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 $POOL_ID \
--query "{allocationState: allocationState}"
Ergebnisse:
{
"allocationState": "resizing"
}
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. Im folgenden Beispiel wird ein Auftrag erstellt, der anfänglich keine Aufgaben enthält.
export JOB_ID="myJob$RANDOM_SUFFIX"
az batch job create \
--id $JOB_ID \
--pool-id $POOL_ID
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 $JOB_ID \
--command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done
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 eine 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 $JOB_ID \
--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:
# 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
Die Ergebnisse ähneln der folgenden Ausgabe:
Ergebnisse:
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 $JOB_ID \
--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
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.