Übung: Überwachen Ihres Azure Batch-Auftrags in der CLI
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.
Melden Sie sich beim Azure-Portal an.
Öffnen Sie die Cloud Shell, indem Sie im oberen Menü das Symbol für die Cloud Shell (>_) auswählen.
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.
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
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.
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.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
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 kannstdout.txt
in nummerierte Versionen vonstdout.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.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.
Verwenden Sie den folgenden Befehl, um den Batchauftrag zu löschen:
az batch job delete --job-id myjob2 -y