Übung: Überwachen Ihres Azure Batch-Auftrags in der CLI

Abgeschlossen

Wenn Sie Azure Batch verwenden, um arbeitsintensive Aufgaben auszuführen, möchten Sie in der Regel über den Fortschritt der Aufgaben informiert werden.

Als Lösungsarchitekt:in der gemeinnützigen Organisation benötigen Sie Methoden, mit denen Sie feststellen können, was gerade in Azure Batch geschieht. Sie müssen auch herausfinden, ob die Knoten und Aufgaben funktionieren, wie weit sie fortgeschritten sind und ob sie Ausgabedateien generiert haben, die heruntergeladen werden können.

In dieser Lerneinheit erstellen Sie einen ähnlichen Auftrag wie den, den Sie in der vorherigen Lerneinheit erstellt haben, überwachen den Fortschritt seiner Aufgaben und laden die Dateien herunter, die die Aufgaben als Ausgabe generiert haben. Für all das verwenden Sie die Azure CLI.

Wichtig

Die Übungen in diesem Modul sind optional. Für diese Übungen benötigen Sie ein eigenes Azure-Abonnement.

Überwachen von Aufgaben mithilfe der CLI

Azure Batch übernimmt die komplette Erstellung und Verwaltung von Computeknoten sowie die Planung von Aufgaben, die auf diesen Knoten ausgeführt werden.

Wenn Sie in der vorherigen Lerneinheit Aufgaben erstellt haben, wurden diese von Azure Batch in die Warteschlange verschoben, um im Pool ausgeführt zu werden. Da bestimmt werden konnte, dass die Knoten über verfügbare Kapazität verfügen, plante Azure Batch die Ausführung der Aufgaben auf diesen Knoten.

Gegen Ende der vorherigen Lerneinheit haben Sie den Auftrag gelöscht, womit auch alle dazugehörigen Aufgaben gelöscht wurden. Jetzt erstellen wir einen neuen Auftrag und neue Aufgaben. Da das Löschen und erneute Erstellen von Aufgaben ein recht schneller Vorgang ist, können Sie verschiedene Experimente und Projekte in Azure Batch problemlos aussortieren. Dahingegen ist es zeitaufwendiger, Batchentitäten höherer Ebenen (z. B. Konten) zu löschen und neu zu erstellen, da der Batchpool neu erstellt und VMs zugewiesen werden müssen.

  1. Melden Sie sich beim Azure-Portal an.

  2. Öffnen Sie die Cloud Shell, indem Sie im oberen Menü das Symbol für die Cloud Shell (>_) auswählen.

  3. Führen Sie den folgenden Befehl in Cloud Shell aus, um einen neuen Batch-Auftrag zu erstellen:

    az batch job create \
     --id myjob2 \
     --pool-id mypool
    

    Wir haben einen anderen Namen gewählt, um jegliche Konflikte mit dem Auftrag der vorherigen Lerneinheit auszuschließen, dessen Löschung zwar bereits geplant, aber noch nicht zwingenderweise erfolgt ist.

  4. Führen Sie den folgenden Befehl aus, um Batch-Aufgaben in diesem neuen Auftrag zu erstellen:

    for i in {1..10}
    do
       az batch task create \
        --task-id mytask$i \
        --job-id myjob2 \
        --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'"
    done
    
  5. Führen Sie den folgenden Befehl in Cloud Shell aus, um den Status einer Aufgabe anzuzeigen, die Sie erstellt haben:

    az batch task show \
     --job-id myjob2 \
     --task-id mytask1
    

Herunterladen der Aufgabenausgabe über die CLI

Wenn Sie überprüfen möchten, ob der Batchauftrag ordnungsgemäß ausgeführt wurde, können Sie die von ihm erstellten Dateien herunterladen und untersuchen.

  1. Führen Sie den folgenden Befehl in Cloud Shell aus, um eine Tabelle aller Daten anzuzeigen, die durch eine von Ihnen erstellte Aufgabe erzeugt wurden:

    az batch task file list \
     --job-id myjob2 \
     --task-id mytask5 \
     --output table
    

    Hinweis

    Wenn die Fehlermeldung The files of the specified task cannot be accessed as the task state is still active angezeigt wird, warten Sie einige Minuten, und führen Sie den Befehl dann erneut aus.

  2. Führen Sie den folgenden Befehl in Cloud Shell aus, um ein dediziertes Verzeichnis für Aufgabenausgaben zu erstellen, und navigieren Sie zu dem Verzeichnis:

    mkdir taskoutputs && cd taskoutputs
    
  3. Führen Sie den folgenden Befehl in Cloud Shell aus, um die Daten herunterzuladen, die durch alle von Ihnen erstellten Aufgaben erzeugt wurden:

    for i in {1..10}
    do
    az batch task file download \
        --job-id myjob2 \
        --task-id mytask$i \
        --file-path stdout.txt \
        --destination ./stdout$i.txt
    done
    

    Aufgaben haben ein Standardarbeitsverzeichnis. Ihre Arbeit wird standardmäßig in stdout.txt gespeichert. Mithilfe einer Schleife kann stdout.txt in nummerierte Versionen von stdout.txt umgeleitet werden, in denen jeweils die Arbeit einer bestimmten Aufgabe angezeigt wird. Außerdem wird hier gezeigt, mit welchem Knoten sie ausgeführt wurde.

  4. Führen Sie den folgenden Befehl aus, um sich die Textinhalte einiger der generierten Beispieldateien anzusehen:

    cat stdout1.txt && cat stdout2.txt
    

    In dieser Ausgabe sehen Sie, dass verschiedene Aufgaben auf verschiedenen Knoten geplant werden, während der Batch-Scheduler sie verarbeitet.

    Wie vorhin werden Sie das Azure Batch-Konto und den Workerknotenpool für die nächste Lerneinheit wiederverwenden, den Batch-Auftrag jedoch löschen. Da ein Batch-Auftrag als Container für seine Batch-Aufgaben fungiert, werden diese Aufgaben ebenfalls gelöscht.

  5. Verwenden Sie den folgenden Befehl, um den Batchauftrag zu löschen:

    az batch job delete --job-id myjob2 -y