Freigeben über


BatchJobManagerTaskOutput 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

Gibt an, ob die Auftrags-Manager-Aufgabe auf einem Computeknoten mit niedriger Priorität ausgeführt werden kann. Der Standardwert ist true.

applicationPackageReferences

Eine Liste der Anwendungspakete, die der Batchdienst vor dem Ausführen der Befehlszeile auf dem Computeknoten bereitstellen wird. Anwendungspakete werden heruntergeladen und in einem freigegebenen Verzeichnis bereitgestellt, nicht im Arbeitsverzeichnis "Aufgabe". Wenn sich daher bereits ein referenziertes Anwendungspaket auf dem Computeknoten befindet und auf dem neuesten Stand ist, wird es nicht erneut heruntergeladen. die vorhandene Kopie auf dem Computeknoten verwendet wird. Wenn ein referenziertes Anwendungspaket nicht installiert werden kann, z. B. weil das Paket gelöscht wurde oder weil der Download fehlgeschlagen ist, schlägt die Aufgabe fehl.

authenticationTokenSettings

Die Einstellungen für ein Authentifizierungstoken, das von der Aufgabe zum Ausführen von Batchdienstvorgängen verwendet werden kann. Wenn diese Eigenschaft festgelegt ist, stellt der Batchdienst die Aufgabe mit einem Authentifizierungstoken bereit, das zum Authentifizieren von Batchdienstvorgängen verwendet werden kann, ohne dass ein Kontozugriffsschlüssel erforderlich ist. Das Token wird über die AZ_BATCH_AUTHENTICATION_TOKEN Umgebungsvariable bereitgestellt. Die Vorgänge, die die Aufgabe mit dem Token ausführen kann, sind von den Einstellungen abhängig. Beispielsweise kann eine Aufgabe Auftragsberechtigungen anfordern, um dem Auftrag weitere Aufgaben hinzuzufügen, oder den Status des Auftrags oder anderer Aufgaben unter dem Auftrag zu überprüfen.

commandLine

Die Befehlszeile der Auftrags-Manager-Aufgabe. Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher nicht von Shellfeatures wie der Erweiterung der Umgebungsvariablen profitieren. Wenn Sie diese Features nutzen möchten, sollten Sie die Shell in der Befehlszeile aufrufen, z. B. mit "cmd /c MyCommand" in Windows oder "/bin/sh -c MyCommand" in 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 für den Auftrags-Manager-Vorgang gelten.

containerSettings

Die Einstellungen für den Container, unter dem die Auftrags-Manager-Aufgabe ausgeführt wird. Wenn der Pool, der diese Aufgabe ausführt, containerConfiguration festgelegt ist, muss dies ebenfalls festgelegt werden. Wenn der Pool, der diese Aufgabe ausführt, keinen containerConfiguration-Satz aufweist, darf dies nicht festgelegt werden. Wenn dies angegeben wird, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (der Stamm von Azure Batchverzeichnissen auf dem Knoten) dem Container zugeordnet, alle Taskumgebungsvariablen werden dem Container zugeordnet, und die Task-Befehlszeile wird im Container ausgeführt. Dateien, die im Container außerhalb von AZ_BATCH_NODE_ROOT_DIR erstellt wurden, werden möglicherweise nicht auf den Hostdatenträger wiedergegeben, was bedeutet, dass Batchdatei-APIs nicht auf diese Dateien zugreifen können.

displayName

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

environmentSettings

Eine Liste der Umgebungsvariableneinstellungen für die Auftrags-Manager-Aufgabe.

id

Eine Zeichenfolge, die die Auftrags-Manager-Aufgabe innerhalb des Auftrags eindeutig identifiziert. Die ID kann eine beliebige Kombination aus alphanumerischen Zeichen einschließlich Bindestrichen und Unterstrichen enthalten und darf nicht mehr als 64 Zeichen enthalten.

killJobOnCompletion

Gibt an, ob der Abschluss der Auftrags-Manager-Aufgabe den Abschluss des gesamten Auftrags bedeutet. Wenn true, wenn die Aufgabe des Auftrags-Managers abgeschlossen ist, markiert der Batchdienst den Auftrag als abgeschlossen. Wenn aufgaben zurzeit noch ausgeführt werden (außer Job Release), werden diese Aufgaben beendet. Wenn falsch, hat der Abschluss der Auftrags-Manager-Aufgabe keinen Einfluss auf den Auftragsstatus. In diesem Fall sollten Sie entweder das onAllTasksComplete-Attribut verwenden, um den Auftrag zu beenden, oder einen Client oder Benutzer den Auftrag explizit beenden lassen. Ein Beispiel hierfür ist, wenn der Auftrags-Manager eine Reihe von Aufgaben erstellt, aber dann keine weitere Rolle bei der Ausführung übernimmt. Der Standardwert ist true. Wenn Sie die Attribute "onAllTasksComplete" und "onTaskFailure" zum Steuern der Auftragslebensdauer verwenden und die Aufgabe "Auftrags-Manager" nur zum Erstellen der Aufgaben für den Auftrag (nicht zum Überwachen des Status) verwenden, ist es wichtig, killJobOnCompletion auf "false" festzulegen.

outputFiles

Eine Liste der Dateien, die der Batchdienst nach dem Ausführen der Befehlszeile vom Computeknoten hochladen wird. Bei Aufgaben mit mehreren Instanzen werden die Dateien nur aus dem Computeknoten hochgeladen, auf dem die primäre Aufgabe ausgeführt wird.

requiredSlots

Die Anzahl der Zeitplanungsplätze, die der Vorgang ausführen muss. Der Standardwert ist 1. Eine Aufgabe kann nur für die Ausführung auf einem Computeknoten geplant werden, wenn der Knoten über genügend freie Planungsplätze verfügt. Bei Aufgaben mit mehreren Instanzen wird diese Eigenschaft nicht unterstützt und darf nicht angegeben 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

Gibt an, ob für die Auftrags-Manager-Aufgabe die exklusive Verwendung des Computeknotens erforderlich ist, in dem er ausgeführt wird. Wenn true, werden keine anderen Aufgaben auf demselben Knoten ausgeführt, solange der Auftrags-Manager ausgeführt wird. Wenn "false" ist, können andere Aufgaben gleichzeitig mit dem Auftrags-Manager auf einem Computeknoten ausgeführt werden. Die Auftrags-Manager-Aufgabe zählt normalerweise mit dem Gleichzeitigen Vorgangslimit des Computeknotens, sodass dies nur relevant ist, wenn der Computeknoten mehrere gleichzeitige Aufgaben zulässt. Der Standardwert ist true.

userIdentity

Die Benutzeridentität, unter der die Auftrags-Manager-Aufgabe ausgeführt wird. Wenn dies nicht angegeben wird, wird die Aufgabe als nicht administrativer Benutzer ausgeführt, der für die Aufgabe eindeutig ist.

Details zur Eigenschaft

allowLowPriorityNode

Gibt an, ob die Auftrags-Manager-Aufgabe auf einem Computeknoten mit niedriger Priorität ausgeführt werden kann. Der Standardwert ist true.

allowLowPriorityNode?: boolean

Eigenschaftswert

boolean

applicationPackageReferences

Eine Liste der Anwendungspakete, die der Batchdienst vor dem Ausführen der Befehlszeile auf dem Computeknoten bereitstellen wird. Anwendungspakete werden heruntergeladen und in einem freigegebenen Verzeichnis bereitgestellt, nicht im Arbeitsverzeichnis "Aufgabe". Wenn sich daher bereits ein referenziertes Anwendungspaket auf dem Computeknoten befindet und auf dem neuesten Stand ist, wird es nicht erneut heruntergeladen. die vorhandene Kopie auf dem Computeknoten verwendet wird. Wenn ein referenziertes Anwendungspaket nicht installiert werden kann, z. B. weil das Paket gelöscht wurde oder weil der Download fehlgeschlagen ist, schlägt die Aufgabe fehl.

applicationPackageReferences?: BatchApplicationPackageReferenceOutput[]

Eigenschaftswert

authenticationTokenSettings

Die Einstellungen für ein Authentifizierungstoken, das von der Aufgabe zum Ausführen von Batchdienstvorgängen verwendet werden kann. Wenn diese Eigenschaft festgelegt ist, stellt der Batchdienst die Aufgabe mit einem Authentifizierungstoken bereit, das zum Authentifizieren von Batchdienstvorgängen verwendet werden kann, ohne dass ein Kontozugriffsschlüssel erforderlich ist. Das Token wird über die AZ_BATCH_AUTHENTICATION_TOKEN Umgebungsvariable bereitgestellt. Die Vorgänge, die die Aufgabe mit dem Token ausführen kann, sind von den Einstellungen abhängig. Beispielsweise kann eine Aufgabe Auftragsberechtigungen anfordern, um dem Auftrag weitere Aufgaben hinzuzufügen, oder den Status des Auftrags oder anderer Aufgaben unter dem Auftrag zu überprüfen.

authenticationTokenSettings?: AuthenticationTokenSettingsOutput

Eigenschaftswert

commandLine

Die Befehlszeile der Auftrags-Manager-Aufgabe. Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher nicht von Shellfeatures wie der Erweiterung der Umgebungsvariablen profitieren. Wenn Sie diese Features nutzen möchten, sollten Sie die Shell in der Befehlszeile aufrufen, z. B. mit "cmd /c MyCommand" in Windows oder "/bin/sh -c MyCommand" in 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 für den Auftrags-Manager-Vorgang gelten.

constraints?: BatchTaskConstraintsOutput

Eigenschaftswert

containerSettings

Die Einstellungen für den Container, unter dem die Auftrags-Manager-Aufgabe ausgeführt wird. Wenn der Pool, der diese Aufgabe ausführt, containerConfiguration festgelegt ist, muss dies ebenfalls festgelegt werden. Wenn der Pool, der diese Aufgabe ausführt, keinen containerConfiguration-Satz aufweist, darf dies nicht festgelegt werden. Wenn dies angegeben wird, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (der Stamm von Azure Batchverzeichnissen auf dem Knoten) dem Container zugeordnet, alle Taskumgebungsvariablen werden dem Container zugeordnet, und die Task-Befehlszeile wird im Container ausgeführt. Dateien, die im Container außerhalb von AZ_BATCH_NODE_ROOT_DIR erstellt wurden, werden möglicherweise nicht auf den Hostdatenträger wiedergegeben, was bedeutet, dass Batchdatei-APIs nicht auf diese Dateien zugreifen können.

containerSettings?: BatchTaskContainerSettingsOutput

Eigenschaftswert

displayName

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

displayName?: string

Eigenschaftswert

string

environmentSettings

Eine Liste der Umgebungsvariableneinstellungen für die Auftrags-Manager-Aufgabe.

environmentSettings?: EnvironmentSettingOutput[]

Eigenschaftswert

id

Eine Zeichenfolge, die die Auftrags-Manager-Aufgabe innerhalb des Auftrags eindeutig identifiziert. Die ID kann eine beliebige Kombination aus alphanumerischen Zeichen einschließlich Bindestrichen und Unterstrichen enthalten und darf nicht mehr als 64 Zeichen enthalten.

id: string

Eigenschaftswert

string

killJobOnCompletion

Gibt an, ob der Abschluss der Auftrags-Manager-Aufgabe den Abschluss des gesamten Auftrags bedeutet. Wenn true, wenn die Aufgabe des Auftrags-Managers abgeschlossen ist, markiert der Batchdienst den Auftrag als abgeschlossen. Wenn aufgaben zurzeit noch ausgeführt werden (außer Job Release), werden diese Aufgaben beendet. Wenn falsch, hat der Abschluss der Auftrags-Manager-Aufgabe keinen Einfluss auf den Auftragsstatus. In diesem Fall sollten Sie entweder das onAllTasksComplete-Attribut verwenden, um den Auftrag zu beenden, oder einen Client oder Benutzer den Auftrag explizit beenden lassen. Ein Beispiel hierfür ist, wenn der Auftrags-Manager eine Reihe von Aufgaben erstellt, aber dann keine weitere Rolle bei der Ausführung übernimmt. Der Standardwert ist true. Wenn Sie die Attribute "onAllTasksComplete" und "onTaskFailure" zum Steuern der Auftragslebensdauer verwenden und die Aufgabe "Auftrags-Manager" nur zum Erstellen der Aufgaben für den Auftrag (nicht zum Überwachen des Status) verwenden, ist es wichtig, killJobOnCompletion auf "false" festzulegen.

killJobOnCompletion?: boolean

Eigenschaftswert

boolean

outputFiles

Eine Liste der Dateien, die der Batchdienst nach dem Ausführen der Befehlszeile vom Computeknoten hochladen wird. Bei Aufgaben mit mehreren Instanzen werden die Dateien nur aus dem Computeknoten hochgeladen, auf dem die primäre Aufgabe ausgeführt wird.

outputFiles?: OutputFileOutput[]

Eigenschaftswert

requiredSlots

Die Anzahl der Zeitplanungsplätze, die der Vorgang ausführen muss. Der Standardwert ist 1. Eine Aufgabe kann nur für die Ausführung auf einem Computeknoten geplant werden, wenn der Knoten über genügend freie Planungsplätze verfügt. Bei Aufgaben mit mehreren Instanzen wird diese Eigenschaft nicht unterstützt und darf nicht angegeben 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?: ResourceFileOutput[]

Eigenschaftswert

runExclusive

Gibt an, ob für die Auftrags-Manager-Aufgabe die exklusive Verwendung des Computeknotens erforderlich ist, in dem er ausgeführt wird. Wenn true, werden keine anderen Aufgaben auf demselben Knoten ausgeführt, solange der Auftrags-Manager ausgeführt wird. Wenn "false" ist, können andere Aufgaben gleichzeitig mit dem Auftrags-Manager auf einem Computeknoten ausgeführt werden. Die Auftrags-Manager-Aufgabe zählt normalerweise mit dem Gleichzeitigen Vorgangslimit des Computeknotens, sodass dies nur relevant ist, wenn der Computeknoten mehrere gleichzeitige Aufgaben zulässt. Der Standardwert ist true.

runExclusive?: boolean

Eigenschaftswert

boolean

userIdentity

Die Benutzeridentität, unter der die Auftrags-Manager-Aufgabe ausgeführt wird. Wenn dies nicht angegeben wird, wird die Aufgabe als nicht administrativer Benutzer ausgeführt, der für die Aufgabe eindeutig ist.

userIdentity?: UserIdentityOutput

Eigenschaftswert