Freigeben über


CLI-Beispiel: Ausführen eines Auftrags und von Aufgaben mit Azure Batch

Dieses Skript erstellt einen Batch-Auftrag und fügt eine Reihe von Aufgaben zum Auftrag hinzu. Außerdem wird die Überwachung eines Auftrags und seiner Aufgaben veranschaulicht.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Beispielskript

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einem separaten Browsertab starten, indem Sie zu https://shell.azure.com navigieren.

Überprüfen Sie nach dem Öffnen von Cloud Shell, ob Bash für Ihre Umgebung ausgewählt ist. In den folgenden Sitzungen wird die Azure CLI in einer Bash-Umgebung verwendet. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie sie in Cloud Shell ein, und drücken Sie die EINGABETASTE, um sie auszuführen.

Anmelden bei Azure

Cloud Shell wird automatisch unter dem Konto authentifiziert, mit dem die Anmeldung anfänglich erfolgt ist. Verwenden Sie das folgende Skript, um sich mit einem anderen Abonnement anzumelden, und ersetzen Sie subscriptionId durch Ihre Azure-Abonnement-ID.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

Weitere Informationen finden Sie unter Festlegen des aktiven Abonnements oder unter Interaktives Anmelden.

Erstellen eines Batch-Kontos im Modus „Batch-Dienst“

# Run a job and tasks with Azure Batch

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
[[ "$RESOURCE_GROUP" == '' ]] && resourceGroup="msdocs-batch-rg-$randomIdentifier" || resourceGroup="${RESOURCE_GROUP}"
tag="run-job"
storageAccount="msdocsstorage$randomIdentifier"
batchAccount="msdocsbatch$randomIdentifier"

# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag

# Create a general-purpose storage account in your resource group.
echo "Creating $storageAccount"
az storage account create --resource-group $resourceGroup --name $storageAccount --location "$location" --sku Standard_LRS

# Create a Batch account.
echo "Creating $batchAccount"
az batch account create --name $batchAccount --storage-account $storageAccount --resource-group $resourceGroup --location "$location"

# Authenticate against the account directly for further CLI interaction.
az batch account login --name $batchAccount --resource-group $resourceGroup --shared-key-auth

# Create a new Linux pool with a virtual machine configuration. 
az batch pool create --id mypool --vm-size Standard_A1 --target-dedicated 2 --image canonical:ubuntuserver:18_04-lts-gen2 --node-agent-sku-id "batch.node.ubuntu 18.04"

# Create a new job to encapsulate the tasks that are added.
az batch job create --id myjob --pool-id mypool

# Add tasks to the job. Here the task is a basic shell command.
az batch task create --job-id myjob --task-id task1 --command-line "/bin/bash -c 'printenv AZ_BATCH_TASK_WORKING_DIR'"

So fügen Sie viele Aufgaben gleichzeitig hinzu

Wenn Sie viele Aufgaben gleichzeitig hinzufügen möchten, geben Sie die Aufgaben in einer JSON-Datei an, und übergeben sie diese an den Befehl. Informationen zum Format finden Sie unter https://github.com/Azure/azure-docs-cli-python-samples/blob/master/batch/run-job/tasks.json. Geben Sie den absoluten Pfad zur JSON-Datei an. Eine JSON-Beispieldatei finden Sie unter https://github.com/Azure-Samples/azure-cli-samples/blob/master/batch/run-job/tasks.json.

az batch task create \
    --job-id myjob \
    --json-file tasks.json

So aktualisieren Sie den Auftrag

Aktualisieren Sie den Auftrag so, dass er automatisch als erledigt markiert wird, sobald alle Aufgaben abgeschlossen sind.

az batch job set \
--job-id myjob \
--on-all-tasks-complete terminatejob

So überwachen Sie den Status des Auftrags

az batch job show --job-id myjob

So überwachen Sie den Status einer Aufgabe

az batch task show \
    --job-id myjob \
    --task-id task1

Bereinigen von Ressourcen

Verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle zugehörigen Ressourcen mit dem Befehl az group delete zu entfernen, es sei denn, Sie benötigen diese Ressourcen weiterhin. Bei einigen dieser Ressourcen kann das Erstellen wie auch das Löschen eine Weile dauern.

az group delete --name $resourceGroup

Beispielreferenz

Das Skript verwendet die folgenden Befehle. Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.

Befehl Notizen
az group create Erstellt eine Ressourcengruppe, in der alle Ressourcen gespeichert sind.
az batch account create Erstellt das Batch-Konto.
az batch account login Authentifiziert das angegebene Batch-Konto zur weiteren CLI-Interaktion.
az batch pool create Erstellt einen Pool mit Computeknoten.
az batch job create Erstellt einen Batch-Auftrag.
az batch task create Fügt eine Aufgabe zum angegebenen Batch-Auftrag hinzu.
az batch job set Aktualisiert die Eigenschaften eines Batch-Auftrags.
az batch job show Ruft Details eines angegebenen Batch-Auftrags ab.
az batch task show Ruft die Details einer Aufgabe aus dem angegebenen Batch-Auftrag ab.
az group delete Löscht eine Ressourcengruppe einschließlich aller geschachtelten Ressourcen.

Nächste Schritte

Weitere Informationen zur Azure CLI finden Sie in der Azure CLI-Dokumentation.