BatchTask interface
批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括當狀況不良的節點重新啟動或計算節點因主機失敗而消失時,包括 (但不限於) 。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 是 0,由於復原作業,可能會發生內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的數據。 長時間執行工作的最佳做法是使用某種形式的檢查點。
屬性
| affinity |
一個區域性提示,批次服務可用來選擇一個計算節點來啟動新任務。 |
| application |
批次服務會在執行命令列前部署到運算節點的套件清單。 應用程式套件會被下載並部署到共享目錄,而非任務工作目錄。 因此,如果參考的套件已經在節點上且是最新的,則不會重新下載;使用計算節點上現有的副本。 若無法安裝參考的套件,例如因套件已被刪除或下載失敗,任務即失敗。 |
| command |
任務的指令列。 對於多實例任務,命令列作為主要任務執行,當主要任務及所有子任務完成協調命令列執行後。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果你想利用這些功能,應該在命令列中呼叫 shell,例如在 Windows 中使用「cmd /c MyCommand」,或在 Linux 中使用「/bin/sh -c MyCommand」。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。 |
| constraints | 適用於此任務的執行約束。 |
| container |
任務執行容器的設定。 如果執行此任務的池子有 containerConfiguration 設定,也必須設定此設定。 如果執行此任務的池沒有設定 containerConfiguration ,則必須不要設定。 當指定此條件時,所有位於AZ_BATCH_NODE_ROOT_DIR(節點上Azure Batch目錄根節點)下方的目錄會遞迴地映射到容器中,所有任務環境變數也映射到容器中,任務命令列則在容器中執行。 容器中產生的檔案可能不會被反映到主機磁碟AZ_BATCH_NODE_ROOT_DIR,導致批次檔案 API 無法存取這些檔案。 |
| creation |
任務的創建時間。 |
| depends |
這項任務所依賴的任務。 此任務在所有依賴任務成功完成後才會排程。 若任何任務失敗且重試次數用盡,該任務將永遠無法排程。 |
| display |
任務的顯示名稱。 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。 |
| environment |
任務的環境變數設定清單。 |
| e |
任務的 ETag。 這是不透明的字串。 你可以用它來偵測任務在不同請求之間是否改變。 特別是,更新任務時可以跳過 ETag,指定只有在沒有人修改任務時,你的變更才會生效。 |
| execution |
關於任務執行的資訊。 |
| exit |
批次服務在任務完成時應該如何回應。 |
| id | 一個字串,唯一識別工作中的任務。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。 |
| last |
任務最後一次修改時間。 |
| multi |
一個表示該任務為多實例任務的物件,並包含如何執行多實例任務的資訊。 |
| node |
關於任務執行的計算節點資訊。 |
| output |
批次服務執行命令列後會從計算節點上傳的檔案清單。 對於多實例任務,檔案只會從執行主要任務的計算節點上傳。 |
| previous |
任務的前一個狀態。 若任務處於初始活躍狀態,則此屬性不被設定。 |
| previous |
任務進入先前狀態的時間點。 若任務處於初始活躍狀態,則此屬性不被設定。 |
| required |
任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,這必須是 1. |
| resource |
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 對於多實例任務,資源檔案只會被下載到執行主要任務的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。 |
| state | 任務目前的狀態。 |
| state |
任務進入目前狀態的時間點。 |
| task |
任務的資源使用統計。 |
| url | 任務網址。 |
| user |
任務執行的使用者身份。 若省略,該任務將以非管理員使用者身份執行,且是任務獨一無二的使用者。 |
屬性詳細資料
affinityInfo
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
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
eTag
任務的 ETag。 這是不透明的字串。 你可以用它來偵測任務在不同請求之間是否改變。 特別是,更新任務時可以跳過 ETag,指定只有在沒有人修改任務時,你的變更才會生效。
eTag: string
屬性值
string
executionInfo
exitConditions
id
一個字串,唯一識別工作中的任務。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。
id: string
屬性值
string
lastModified
任務最後一次修改時間。
lastModified: Date
屬性值
Date
multiInstanceSettings
一個表示該任務為多實例任務的物件,並包含如何執行多實例任務的資訊。
multiInstanceSettings?: MultiInstanceSettings
屬性值
nodeInfo
outputFiles
previousState
previousStateTransitionTime
任務進入先前狀態的時間點。 若任務處於初始活躍狀態,則此屬性不被設定。
previousStateTransitionTime?: Date
屬性值
Date
requiredSlots
任務需要執行的排程時段數量。 預設值為 1。 任務只有在計算節點有足夠空閒排程槽時才能排程執行。 對於多實例任務,這必須是 1.
requiredSlots?: number
屬性值
number
resourceFiles
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 對於多實例任務,資源檔案只會被下載到執行主要任務的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。
resourceFiles?: ResourceFile[]
屬性值
state
stateTransitionTime
任務進入目前狀態的時間點。
stateTransitionTime: Date
屬性值
Date
taskStatistics
url
任務網址。
url: string
屬性值
string