BatchJobManagerTask interface

Gibt Details einer Auftrags-Manager-Aufgabe an. Die Auftrags-Manager-Aufgabe wird automatisch gestartet, wenn der Auftrag erstellt wird. Der Batchdienst versucht, die Auftrags-Manager-Aufgabe vor anderen Vorgängen im Auftrag zu planen. Beim Verkleinern eines Pools versucht der Batchdienst, Knoten beizubehalten, in denen Job-Manager-Aufgaben so lange wie möglich ausgeführt werden (d. a. Computeknoten, auf denen "normale" Aufgaben ausgeführt werden, werden entfernt, bevor Computeknoten ausgeführt werden, die Job Manager-Aufgaben ausführen). Wenn ein Auftrags-Manager-Vorgang fehlschlägt und neu gestartet werden muss, versucht das System, sie mit der höchsten Priorität zu planen. Wenn keine Computeknoten im Leerlauf verfügbar sind, kann das System eine der ausgeführten Aufgaben im Pool beenden und zur Warteschlange zurückkehren, um Platz für den Neustart der Auftrags-Manager-Aufgabe zu schaffen. Beachten Sie, dass eine Auftrags-Manager-Aufgabe in einem Auftrag keine Priorität gegenüber Vorgängen in anderen Aufträgen hat. In allen Aufträgen werden nur Prioritäten auf Jobebene beobachtet. Wenn z. B. ein Auftragsmanager in einer Priorität 0 Auftrag neu gestartet werden muss, werden Aufgaben einer Priorität 1 Auftrag nicht aufgehoben. Batch wiederholt Aufgaben, wenn ein Wiederherstellungsvorgang auf einem Knoten ausgelöst wird. Beispiele für Wiederherstellungsvorgänge sind (aber nicht beschränkt darauf), wenn ein fehlerhafter Knoten neu gestartet wird oder ein Computeknoten aufgrund eines Hostfehlers verschwunden ist. Wiederholungen aufgrund von Wiederherstellungsvorgängen sind unabhängig von und werden nicht für das maxTaskRetryCount gezählt. Auch wenn das maxTaskRetryCount 0 ist, kann ein interner Wiederholungsversuch aufgrund eines Wiederherstellungsvorgangs auftreten. Aus diesem Gründen sollten alle Aufgaben idempotent sein. Dies bedeutet, dass Aufgaben unterbrochen und neu gestartet werden müssen, ohne dass Beschädigte oder doppelte Daten verursacht werden. Die bewährte Methode für lange ausgeführte Aufgaben besteht darin, eine Form der Prüfpunkterstellung zu verwenden.

Eigenschaften

allowLowPriorityNode

Ob die Jobmanager-Aufgabe auf einem Spot-/Low-Priority-Compute-Knoten ausgeführt werden kann. Der Standardwert lautet „true“.

applicationPackageReferences

Eine Liste von Anwendungspaketen, die der Batch-Service vor dem Ausführen der Kommandozeile an den Compute Node ausliefert. Anwendungspakete werden in einem gemeinsamen Verzeichnis heruntergeladen und bereitgestellt, nicht im Arbeitsverzeichnis Task. Daher wird ein referenziertes Anwendungspaket, das bereits auf dem Rechenknoten ist und aktuell ist, nicht erneut heruntergeladen; die vorhandene Kopie auf dem Compute-Node wird verwendet. Wenn ein referenziertes Anwendungspaket nicht installiert werden kann, zum Beispiel weil das Paket gelöscht wurde oder der Download fehlgeschlagen ist, schlägt die Aufgabe fehl.

commandLine

Die Befehlszeile der Aufgabe Job Manager. Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher nicht von Shellfeatures wie der Erweiterung der Umgebungsvariablen profitieren. Wenn du solche Funktionen nutzen möchtest, solltest du die Shell in der Befehlszeile aufrufen, zum Beispiel mit "cmd /c MyCommand" in Windows oder "/bin/sh -c MyCommand" unter Linux. Wenn sich die Befehlszeile auf Dateipfade bezieht, sollte sie einen relativen Pfad (relativ zum Arbeitsverzeichnis "Aufgabe") verwenden oder die vom Batch bereitgestellte Umgebungsvariable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables) verwenden.

constraints

Einschränkungen, die auf die Aufgabe Jobmanager angewendet werden.

containerSettings

Die Einstellungen für den Container, unter dem der Job Manager Task ausgeführt wird. Wenn der Pool, der diese Aufgabe ausführen wird, containerConfiguration gesetzt hat, muss dies ebenfalls gesetzt werden. Wenn der Pool, der diese Aufgabe ausführen soll, keine containerConfiguration gesetzt hat, darf dies nicht gesetzt werden. Wenn dies angegeben ist, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (der Wurzel Azure Batch Verzeichnisse auf dem Knoten) in den Container abgebildet, alle Task-Umgebungsvariablen werden in den Container abgebildet und die Task-Befehlszeile wird im Container ausgeführt. Dateien, die außerhalb AZ_BATCH_NODE_ROOT_DIR im Container erzeugt werden, werden möglicherweise nicht auf die Host-Festplatte zurückgewiesen, was bedeutet, dass Batch-Datei-APIs nicht auf diese Dateien zugreifen können.

displayName

Der Anzeigename der Aufgabe Job Manager. Es muss nicht eindeutig sein und kann beliebige Unicode-Zeichen bis zu einer maximalen Länge von 1024 enthalten.

environmentSettings

Eine Liste von Umgebungsvariablen-Einstellungen für die Aufgabe Jobmanager.

id

Ein String, der die Job Manager Task innerhalb des Jobs eindeutig identifiziert. Die ID kann jede Kombination alphanumerischer Zeichen enthalten, einschließlich Bindestrichen und Unterstrichen, und darf nicht mehr als 64 Zeichen enthalten.

killJobOnCompletion

Ob der Abschluss der Aufgabe Job Manager bedeutet, dass der gesamte Job abgeschlossen ist. Wenn zutreffend, markiert der Batch-Service den Job nach Abschluss der Jobmanager-Aufgabe als abgeschlossen. Wenn zu diesem Zeitpunkt noch Aufgaben laufen (außer Job Release), werden diese Tasks beendet. Falls falsch, beeinflusst das Abschließen der Aufgabe Job Manager den Status des Jobs nicht. In diesem Fall sollten Sie entweder das Attribut onAllTasksComplete verwenden, um den Job zu beenden, oder einen Client oder Benutzer den Job explizit beenden lassen. Ein Beispiel dafür ist, wenn der Jobmanager eine Menge von Aufgaben erstellt, aber dann keine weitere Rolle bei deren Ausführung übernimmt. Der Standardwert lautet „true“. Wenn Sie die Attribute onAllTasksComplete und onTaskFailure verwenden, um die Lebensdauer des Jobs zu steuern, und die Job Manager Task nur zur Erstellung der Aufgaben für den Job verwenden (nicht um den Fortschritt zu überwachen), ist es wichtig, killJobOnCompletion auf false zu setzen.

outputFiles

Eine Liste von Dateien, die der Batch-Service nach Ausführung der Kommandozeile vom Compute Node hochlädt. Bei Mehrinstanz-Aufgaben werden die Dateien nur vom Rechenknoten hochgeladen, auf dem die Hauptaufgabe ausgeführt wird.

requiredSlots

Die Anzahl der Planungsplätze, die die Aufgabe benötigt, um ausgeführt zu werden. Die Standardeinstellung ist 1. Eine Aufgabe kann nur dann auf einem Rechenknoten ausgeführt werden, wenn dieser genügend freie Planungsplätze zur Verfügung hat. Für Aufgaben mit mehreren Instanzen wird diese Eigenschaft nicht unterstützt und darf nicht spezifiziert werden.

resourceFiles

Eine Liste der Dateien, die der Batchdienst vor dem Ausführen der Befehlszeile auf den Computeknoten herunterladen wird. Unter diesem Element aufgelistete Dateien befinden sich im Arbeitsverzeichnis der Aufgabe. Es gibt eine maximale Größe für die Liste der Ressourcendateien. Wenn die maximale Größe überschritten wird, schlägt die Anforderung fehl, und der Antwortfehlercode lautet "RequestEntityTooLarge". Wenn dies der Fall ist, muss die Sammlung von ResourceFiles in der Größe reduziert werden. Dies kann mithilfe von .zip Dateien, Anwendungspaketen oder Docker-Containern erreicht werden.

runExclusive

Ob die Jobmanager-Aufgabe ausschließlich die Nutzung des Compute-Knotens erfordert, in dem sie ausgeführt wird. Wenn zutreffend, werden keine anderen Aufgaben auf demselben Knoten laufen, solange der Jobmanager läuft. Wenn falsch, können andere Aufgaben gleichzeitig mit dem Jobmanager auf einem Rechenknoten ausgeführt werden. Die Job Manager Task zählt normalerweise gegen das gleichzeitige Task-Limit des Compute Node, daher ist dies nur relevant, wenn der Compute Node mehrere gleichzeitige Aufgaben zulässt. Der Standardwert lautet „true“.

userIdentity

Die Benutzeridentität, unter der die Aufgabe Job Manager ausgeführt wird. Wenn sie weggelassen wird, läuft die Aufgabe als nicht-administrativer Benutzer, der einzigartig für die Aufgabe ist.

Details zur Eigenschaft

allowLowPriorityNode

Ob die Jobmanager-Aufgabe auf einem Spot-/Low-Priority-Compute-Knoten ausgeführt werden kann. Der Standardwert lautet „true“.

allowLowPriorityNode?: boolean

Eigenschaftswert

boolean

applicationPackageReferences

Eine Liste von Anwendungspaketen, die der Batch-Service vor dem Ausführen der Kommandozeile an den Compute Node ausliefert. Anwendungspakete werden in einem gemeinsamen Verzeichnis heruntergeladen und bereitgestellt, nicht im Arbeitsverzeichnis Task. Daher wird ein referenziertes Anwendungspaket, das bereits auf dem Rechenknoten ist und aktuell ist, nicht erneut heruntergeladen; die vorhandene Kopie auf dem Compute-Node wird verwendet. Wenn ein referenziertes Anwendungspaket nicht installiert werden kann, zum Beispiel weil das Paket gelöscht wurde oder der Download fehlgeschlagen ist, schlägt die Aufgabe fehl.

applicationPackageReferences?: BatchApplicationPackageReference[]

Eigenschaftswert

commandLine

Die Befehlszeile der Aufgabe Job Manager. Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher nicht von Shellfeatures wie der Erweiterung der Umgebungsvariablen profitieren. Wenn du solche Funktionen nutzen möchtest, solltest du die Shell in der Befehlszeile aufrufen, zum Beispiel mit "cmd /c MyCommand" in Windows oder "/bin/sh -c MyCommand" unter Linux. Wenn sich die Befehlszeile auf Dateipfade bezieht, sollte sie einen relativen Pfad (relativ zum Arbeitsverzeichnis "Aufgabe") verwenden oder die vom Batch bereitgestellte Umgebungsvariable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables) verwenden.

commandLine: string

Eigenschaftswert

string

constraints

Einschränkungen, die auf die Aufgabe Jobmanager angewendet werden.

constraints?: BatchTaskConstraints

Eigenschaftswert

containerSettings

Die Einstellungen für den Container, unter dem der Job Manager Task ausgeführt wird. Wenn der Pool, der diese Aufgabe ausführen wird, containerConfiguration gesetzt hat, muss dies ebenfalls gesetzt werden. Wenn der Pool, der diese Aufgabe ausführen soll, keine containerConfiguration gesetzt hat, darf dies nicht gesetzt werden. Wenn dies angegeben ist, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (der Wurzel Azure Batch Verzeichnisse auf dem Knoten) in den Container abgebildet, alle Task-Umgebungsvariablen werden in den Container abgebildet und die Task-Befehlszeile wird im Container ausgeführt. Dateien, die außerhalb AZ_BATCH_NODE_ROOT_DIR im Container erzeugt werden, werden möglicherweise nicht auf die Host-Festplatte zurückgewiesen, was bedeutet, dass Batch-Datei-APIs nicht auf diese Dateien zugreifen können.

containerSettings?: BatchTaskContainerSettings

Eigenschaftswert

displayName

Der Anzeigename der Aufgabe Job Manager. Es muss nicht eindeutig sein und kann beliebige Unicode-Zeichen bis zu einer maximalen Länge von 1024 enthalten.

displayName?: string

Eigenschaftswert

string

environmentSettings

Eine Liste von Umgebungsvariablen-Einstellungen für die Aufgabe Jobmanager.

environmentSettings?: EnvironmentSetting[]

Eigenschaftswert

id

Ein String, der die Job Manager Task innerhalb des Jobs eindeutig identifiziert. Die ID kann jede Kombination alphanumerischer Zeichen enthalten, einschließlich Bindestrichen und Unterstrichen, und darf nicht mehr als 64 Zeichen enthalten.

id: string

Eigenschaftswert

string

killJobOnCompletion

Ob der Abschluss der Aufgabe Job Manager bedeutet, dass der gesamte Job abgeschlossen ist. Wenn zutreffend, markiert der Batch-Service den Job nach Abschluss der Jobmanager-Aufgabe als abgeschlossen. Wenn zu diesem Zeitpunkt noch Aufgaben laufen (außer Job Release), werden diese Tasks beendet. Falls falsch, beeinflusst das Abschließen der Aufgabe Job Manager den Status des Jobs nicht. In diesem Fall sollten Sie entweder das Attribut onAllTasksComplete verwenden, um den Job zu beenden, oder einen Client oder Benutzer den Job explizit beenden lassen. Ein Beispiel dafür ist, wenn der Jobmanager eine Menge von Aufgaben erstellt, aber dann keine weitere Rolle bei deren Ausführung übernimmt. Der Standardwert lautet „true“. Wenn Sie die Attribute onAllTasksComplete und onTaskFailure verwenden, um die Lebensdauer des Jobs zu steuern, und die Job Manager Task nur zur Erstellung der Aufgaben für den Job verwenden (nicht um den Fortschritt zu überwachen), ist es wichtig, killJobOnCompletion auf false zu setzen.

killJobOnCompletion?: boolean

Eigenschaftswert

boolean

outputFiles

Eine Liste von Dateien, die der Batch-Service nach Ausführung der Kommandozeile vom Compute Node hochlädt. Bei Mehrinstanz-Aufgaben werden die Dateien nur vom Rechenknoten hochgeladen, auf dem die Hauptaufgabe ausgeführt wird.

outputFiles?: OutputFile[]

Eigenschaftswert

requiredSlots

Die Anzahl der Planungsplätze, die die Aufgabe benötigt, um ausgeführt zu werden. Die Standardeinstellung ist 1. Eine Aufgabe kann nur dann auf einem Rechenknoten ausgeführt werden, wenn dieser genügend freie Planungsplätze zur Verfügung hat. Für Aufgaben mit mehreren Instanzen wird diese Eigenschaft nicht unterstützt und darf nicht spezifiziert werden.

requiredSlots?: number

Eigenschaftswert

number

resourceFiles

Eine Liste der Dateien, die der Batchdienst vor dem Ausführen der Befehlszeile auf den Computeknoten herunterladen wird. Unter diesem Element aufgelistete Dateien befinden sich im Arbeitsverzeichnis der Aufgabe. Es gibt eine maximale Größe für die Liste der Ressourcendateien. Wenn die maximale Größe überschritten wird, schlägt die Anforderung fehl, und der Antwortfehlercode lautet "RequestEntityTooLarge". Wenn dies der Fall ist, muss die Sammlung von ResourceFiles in der Größe reduziert werden. Dies kann mithilfe von .zip Dateien, Anwendungspaketen oder Docker-Containern erreicht werden.

resourceFiles?: ResourceFile[]

Eigenschaftswert

runExclusive

Ob die Jobmanager-Aufgabe ausschließlich die Nutzung des Compute-Knotens erfordert, in dem sie ausgeführt wird. Wenn zutreffend, werden keine anderen Aufgaben auf demselben Knoten laufen, solange der Jobmanager läuft. Wenn falsch, können andere Aufgaben gleichzeitig mit dem Jobmanager auf einem Rechenknoten ausgeführt werden. Die Job Manager Task zählt normalerweise gegen das gleichzeitige Task-Limit des Compute Node, daher ist dies nur relevant, wenn der Compute Node mehrere gleichzeitige Aufgaben zulässt. Der Standardwert lautet „true“.

runExclusive?: boolean

Eigenschaftswert

boolean

userIdentity

Die Benutzeridentität, unter der die Aufgabe Job Manager ausgeführt wird. Wenn sie weggelassen wird, läuft die Aufgabe als nicht-administrativer Benutzer, der einzigartig für die Aufgabe ist.

userIdentity?: UserIdentity

Eigenschaftswert