BatchJobManagerTask interface

指定作業管理員工作的詳細數據。 作業管理員工作會在建立作業時自動啟動。 Batch 服務會嘗試在作業的任何其他工作之前排程作業管理員工作。 壓縮集區時,Batch 服務會嘗試保留作業管理員工作儘可能長時間執行的節點(也就是在執行作業管理員工作的計算節點之前,會移除執行「一般」工作的計算節點)。 當作業管理員工作失敗且需要重新啟動時,系統會嘗試以最高優先順序排程它。 如果沒有可用的閑置計算節點,系統可能會終止集區中其中一個執行中的工作,並將它傳回佇列,以便讓作業管理員工作能夠重新啟動。 請注意,一個作業中的作業管理員工作不會優先於其他作業中的工作。 跨作業,只會觀察到作業層級優先順序。 例如,如果優先順序為 0 作業的作業管理員需要重新啟動,則不會取代優先順序 1 作業的工作。 批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括當狀況不良的節點重新啟動或計算節點因主機失敗而消失時,包括 (但不限於) 。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 是 0,由於復原作業,可能會發生內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的數據。 長時間執行工作的最佳做法是使用某種形式的檢查點。

屬性

allowLowPriorityNode

工作管理員任務是否可以在特定/低優先權的運算節點上執行。 預設值為 True。

applicationPackageReferences

批次服務會在執行命令列前部署到運算節點的應用程式套件清單。應用程式套件會被下載並部署到共享目錄,而非任務工作目錄。 因此,如果參考的應用程式套件已經在計算節點上且是最新的,則不會重新下載;使用計算節點上現有的副本。 若無法安裝參考的應用程式套件,例如因套件已被刪除或下載失敗,任務即告失敗。

commandLine

工作管理員任務的指令列。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果你想利用這些功能,應該在命令列中呼叫 shell,例如在 Windows 中使用「cmd /c MyCommand」,或在 Linux 中使用「/bin/sh -c MyCommand」。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。

constraints

適用於工作管理員任務的限制條件。

containerSettings

工作管理員任務執行容器的設定。 如果執行此任務的池子有 containerConfiguration 設定,也必須設定此設定。 如果執行此任務的池沒有設定 containerConfiguration ,則必須不要設定。 當指定此條件時,所有位於AZ_BATCH_NODE_ROOT_DIR(節點上Azure Batch目錄根節點)下方的目錄會遞迴地映射到容器中,所有任務環境變數也映射到容器中,任務命令列則在容器中執行。 容器中產生的檔案可能不會被反映到主機磁碟AZ_BATCH_NODE_ROOT_DIR,導致批次檔案 API 無法存取這些檔案。

displayName

工作管理員任務的顯示名稱。 它不必是唯一的,且可包含任何 Unicode 字元,長度最多可達 1024。

environmentSettings

工作管理員任務的環境變數設定清單。

id

一個字串,唯一識別工作中的工作管理員任務。 ID 可包含任意組合的字母數字,包括連字號和底線,且最多可包含 64 個字元。

killJobOnCompletion

完成工作管理員任務是否代表整個工作已完成。 若屬實,當工作管理員任務完成時,批次服務會標記該工作為完成。 如果此時仍有其他任務在執行(除了工作釋放),這些任務會被終止。 若為錯誤,則完成工作管理員任務不影響工作狀態。 在這種情況下,你應該使用 onAllTasksComplete 屬性來終止該工作,或讓客戶端或使用者明確終止該工作。 例如,若工作管理員建立一組任務,但之後不再參與任務執行。 預設值為 True。 如果你使用 onAllTasksComplete 和 onTaskFailure 屬性來控制工作生命週期,並且只用工作管理員任務來建立該工作的任務(而非監控進度),那麼將 killJobOnCompletion 設為 false 非常重要。

outputFiles

批次服務執行命令列後會從計算節點上傳的檔案清單。 對於多實例任務,檔案只會從執行主要任務的計算節點上傳。

requiredSlots

任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,此特性不被支援且不得指定。

resourceFiles

Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 此元素底下列出的檔案位於工作的工作目錄中。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

runExclusive

工作管理員任務是否需要獨佔其執行的計算節點。 如果屬實,只要工作管理器仍在運行,其他任務就不會在同一節點上執行。 若為 false,其他任務可與運算節點上的作業管理器同時執行。 工作管理員任務通常會計入計算節點的並行任務限制,因此只有當計算節點允許多個並行任務時才有此限制。 預設值為 True。

userIdentity

工作管理員任務執行的使用者身份。 若省略,該任務將以非管理員使用者身份執行,且是任務獨一無二的使用者。

屬性詳細資料

allowLowPriorityNode

工作管理員任務是否可以在特定/低優先權的運算節點上執行。 預設值為 True。

allowLowPriorityNode?: boolean

屬性值

boolean

applicationPackageReferences

批次服務會在執行命令列前部署到運算節點的應用程式套件清單。應用程式套件會被下載並部署到共享目錄,而非任務工作目錄。 因此,如果參考的應用程式套件已經在計算節點上且是最新的,則不會重新下載;使用計算節點上現有的副本。 若無法安裝參考的應用程式套件,例如因套件已被刪除或下載失敗,任務即告失敗。

applicationPackageReferences?: BatchApplicationPackageReference[]

屬性值

commandLine

工作管理員任務的指令列。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果你想利用這些功能,應該在命令列中呼叫 shell,例如在 Windows 中使用「cmd /c MyCommand」,或在 Linux 中使用「/bin/sh -c MyCommand」。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。

commandLine: string

屬性值

string

constraints

適用於工作管理員任務的限制條件。

constraints?: BatchTaskConstraints

屬性值

containerSettings

工作管理員任務執行容器的設定。 如果執行此任務的池子有 containerConfiguration 設定,也必須設定此設定。 如果執行此任務的池沒有設定 containerConfiguration ,則必須不要設定。 當指定此條件時,所有位於AZ_BATCH_NODE_ROOT_DIR(節點上Azure Batch目錄根節點)下方的目錄會遞迴地映射到容器中,所有任務環境變數也映射到容器中,任務命令列則在容器中執行。 容器中產生的檔案可能不會被反映到主機磁碟AZ_BATCH_NODE_ROOT_DIR,導致批次檔案 API 無法存取這些檔案。

containerSettings?: BatchTaskContainerSettings

屬性值

displayName

工作管理員任務的顯示名稱。 它不必是唯一的,且可包含任何 Unicode 字元,長度最多可達 1024。

displayName?: string

屬性值

string

environmentSettings

工作管理員任務的環境變數設定清單。

environmentSettings?: EnvironmentSetting[]

屬性值

id

一個字串,唯一識別工作中的工作管理員任務。 ID 可包含任意組合的字母數字,包括連字號和底線,且最多可包含 64 個字元。

id: string

屬性值

string

killJobOnCompletion

完成工作管理員任務是否代表整個工作已完成。 若屬實,當工作管理員任務完成時,批次服務會標記該工作為完成。 如果此時仍有其他任務在執行(除了工作釋放),這些任務會被終止。 若為錯誤,則完成工作管理員任務不影響工作狀態。 在這種情況下,你應該使用 onAllTasksComplete 屬性來終止該工作,或讓客戶端或使用者明確終止該工作。 例如,若工作管理員建立一組任務,但之後不再參與任務執行。 預設值為 True。 如果你使用 onAllTasksComplete 和 onTaskFailure 屬性來控制工作生命週期,並且只用工作管理員任務來建立該工作的任務(而非監控進度),那麼將 killJobOnCompletion 設為 false 非常重要。

killJobOnCompletion?: boolean

屬性值

boolean

outputFiles

批次服務執行命令列後會從計算節點上傳的檔案清單。 對於多實例任務,檔案只會從執行主要任務的計算節點上傳。

outputFiles?: OutputFile[]

屬性值

requiredSlots

任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,此特性不被支援且不得指定。

requiredSlots?: number

屬性值

number

resourceFiles

Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 此元素底下列出的檔案位於工作的工作目錄中。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

resourceFiles?: ResourceFile[]

屬性值

runExclusive

工作管理員任務是否需要獨佔其執行的計算節點。 如果屬實,只要工作管理器仍在運行,其他任務就不會在同一節點上執行。 若為 false,其他任務可與運算節點上的作業管理器同時執行。 工作管理員任務通常會計入計算節點的並行任務限制,因此只有當計算節點允許多個並行任務時才有此限制。 預設值為 True。

runExclusive?: boolean

屬性值

boolean

userIdentity

工作管理員任務執行的使用者身份。 若省略,該任務將以非管理員使用者身份執行,且是任務獨一無二的使用者。

userIdentity?: UserIdentity

屬性值