BatchTask interface

批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括當狀況不良的節點重新啟動或計算節點因主機失敗而消失時,包括 (但不限於) 。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 是 0,由於復原作業,可能會發生內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的數據。 長時間執行工作的最佳做法是使用某種形式的檢查點。

屬性

affinityInfo

一個區域性提示,批次服務可用來選擇一個計算節點來啟動新任務。

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 無法存取這些檔案。

creationTime

任務的創建時間。

dependsOn

這項任務所依賴的任務。 此任務在所有依賴任務成功完成後才會排程。 若任何任務失敗且重試次數用盡,該任務將永遠無法排程。

displayName

任務的顯示名稱。 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。

environmentSettings

任務的環境變數設定清單。

eTag

任務的 ETag。 這是不透明的字串。 你可以用它來偵測任務在不同請求之間是否改變。 特別是,更新任務時可以跳過 ETag,指定只有在沒有人修改任務時,你的變更才會生效。

executionInfo

關於任務執行的資訊。

exitConditions

批次服務在任務完成時應該如何回應。

id

一個字串,唯一識別工作中的任務。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。

lastModified

任務最後一次修改時間。

multiInstanceSettings

一個表示該任務為多實例任務的物件,並包含如何執行多實例任務的資訊。

nodeInfo

關於任務執行的計算節點資訊。

outputFiles

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

previousState

任務的前一個狀態。 若任務處於初始活躍狀態,則此屬性不被設定。

previousStateTransitionTime

任務進入先前狀態的時間點。 若任務處於初始活躍狀態,則此屬性不被設定。

requiredSlots

任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,這必須是 1.

resourceFiles

Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 對於多實例任務,資源檔案只會被下載到執行主要任務的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

state

任務目前的狀態。

stateTransitionTime

任務進入目前狀態的時間點。

taskStatistics

任務的資源使用統計。

url

任務網址。

userIdentity

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

屬性詳細資料

affinityInfo

一個區域性提示,批次服務可用來選擇一個計算節點來啟動新任務。

affinityInfo?: BatchAffinityInfo

屬性值

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

屬性值

creationTime

任務的創建時間。

creationTime: Date

屬性值

Date

dependsOn

這項任務所依賴的任務。 此任務在所有依賴任務成功完成後才會排程。 若任何任務失敗且重試次數用盡,該任務將永遠無法排程。

dependsOn?: BatchTaskDependencies

屬性值

displayName

任務的顯示名稱。 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。

displayName?: string

屬性值

string

environmentSettings

任務的環境變數設定清單。

environmentSettings?: EnvironmentSetting[]

屬性值

eTag

任務的 ETag。 這是不透明的字串。 你可以用它來偵測任務在不同請求之間是否改變。 特別是,更新任務時可以跳過 ETag,指定只有在沒有人修改任務時,你的變更才會生效。

eTag: string

屬性值

string

executionInfo

關於任務執行的資訊。

executionInfo?: BatchTaskExecutionInfo

屬性值

exitConditions

批次服務在任務完成時應該如何回應。

exitConditions?: ExitConditions

屬性值

id

一個字串,唯一識別工作中的任務。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。

id: string

屬性值

string

lastModified

任務最後一次修改時間。

lastModified: Date

屬性值

Date

multiInstanceSettings

一個表示該任務為多實例任務的物件,並包含如何執行多實例任務的資訊。

multiInstanceSettings?: MultiInstanceSettings

屬性值

nodeInfo

關於任務執行的計算節點資訊。

nodeInfo?: BatchNodeInfo

屬性值

outputFiles

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

outputFiles?: OutputFile[]

屬性值

previousState

任務的前一個狀態。 若任務處於初始活躍狀態,則此屬性不被設定。

previousState?: BatchTaskState

屬性值

previousStateTransitionTime

任務進入先前狀態的時間點。 若任務處於初始活躍狀態,則此屬性不被設定。

previousStateTransitionTime?: Date

屬性值

Date

requiredSlots

任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,這必須是 1.

requiredSlots?: number

屬性值

number

resourceFiles

Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 對於多實例任務,資源檔案只會被下載到執行主要任務的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

resourceFiles?: ResourceFile[]

屬性值

state

任務目前的狀態。

state: BatchTaskState

屬性值

stateTransitionTime

任務進入目前狀態的時間點。

stateTransitionTime: Date

屬性值

Date

taskStatistics

任務的資源使用統計。

taskStatistics?: BatchTaskStatistics

屬性值

url

任務網址。

url: string

屬性值

string

userIdentity

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

userIdentity?: UserIdentity

屬性值