CloudTask interface
批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括當狀況不良的節點重新啟動或計算節點因主機失敗而消失時,包括 (但不限於) 。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 是 0,由於復原作業,可能會發生內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的數據。 長時間執行工作的最佳做法是使用某種形式的檢查點。
屬性
| affinity |
Batch 服務可以使用的地區提示,以選取要啟動新工作的計算節點。 |
| application |
Batch 服務在執行命令行之前,將部署到計算節點的套件清單。 應用程式套件會下載並部署至共享目錄,而不是工作工作目錄。 因此,如果參考的套件已在節點上,且為最新狀態,則不會重新下載;會使用計算節點上的現有複本。 如果無法安裝參考的套件,例如因為套件已刪除或下載失敗,工作就會失敗。 |
| authentication |
工作可用來執行 Batch 服務作業之驗證令牌的設定。 如果已設定此屬性,Batch 服務會提供一個驗證令牌,可用來驗證 Batch 服務作業,而不需要帳戶存取密鑰。 令牌會透過AZ_BATCH_AUTHENTICATION_TOKEN環境變數來提供。 工作可以使用令牌執行的作業取決於設定。 例如,工作可以要求作業許可權,以便將其他工作新增至作業,或檢查作業下的工作或其他工作的狀態。 |
| command |
Task 的命令行。 針對多重實例工作,命令行會在主要工作和所有子工作完成執行協調命令行之後,以主要工作的形式執行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)。 |
| constraints | 套用至此工作的執行條件約束。 |
| container |
工作執行所在的容器設定。 如果執行此工作的集區已設定 containerConfiguration,也必須設定此設定。 如果將執行此工作的集區沒有 containerConfiguration 設定,則不得設定此設定。 指定此專案時,AZ_BATCH_NODE_ROOT_DIR下方的所有目錄都會遞歸地對應到容器中(節點上的 Azure Batch 目錄根目錄),所有工作環境變數都會對應到容器中,而工作命令行則會在容器中執行。 AZ_BATCH_NODE_ROOT_DIR外部容器中產生的檔案可能不會反映到主機磁碟,這表示 Batch 檔案 API 將無法存取這些檔案。 |
| creation |
工作的建立時間。 |
| depends |
此工作相依的工作。 除非相依的所有工作都順利完成,否則不會排程此工作。 如果其中任何一項工作失敗並耗盡其重試計數,則永遠不會排程此工作。 |
| display |
工作的顯示名稱。 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。 |
| environment |
Task 的環境變數設定清單。 |
| e |
工作的 ETag。 這是不透明的字串。 您可以使用它來偵測工作是否已在要求之間變更。 特別是,您可以在更新 Task 時傳遞 ETag,以指定只有當其他人同時沒有修改工作時,您的變更才會生效。 |
| execution |
工作執行的相關信息。 |
| exit |
Batch 服務在工作完成時應該如何回應。 |
| id | 可唯一識別作業內工作的字串。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。 |
| last |
任務的最後一次修改時間。 |
| multi |
物件,指出Task是多重實例Task,並包含如何執行多重實例工作的相關信息。 |
| node |
工作執行所在的計算節點相關信息。 |
| output |
執行命令行之後,Batch 服務會從計算節點上傳的檔案清單。 針對多重實例工作,檔案只會從執行主要工作的計算節點上傳。 |
| previous |
工作的上一個狀態。 如果Task處於初始作用中狀態,則不會設定這個屬性。 可能的值包括:'active'、'preparing'、'running'、'completed' |
| previous |
工作進入其先前狀態的時間。 如果Task處於初始作用中狀態,則不會設定這個屬性。 |
| required |
工作需要執行的排程位置數目。 預設值為 1。 如果節點有足夠的可用排程位置,工作只能排程在計算節點上執行。 針對多重實例工作,這必須是1。 |
| resource |
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 針對多重實例工作,資源檔只會下載到執行主要工作的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。 |
| state | Task 的目前狀態。 可能的值包括:'active'、'preparing'、'running'、'completed' |
| state |
工作進入其目前狀態的時間。 |
| stats | 工作的資源使用量統計數據。 |
| url | 工作的 URL。 |
| user |
工作執行所在的使用者身分識別。 如果省略,工作會以工作唯一的非系統管理使用者身分執行。 |
屬性詳細資料
affinityInfo
applicationPackageReferences
Batch 服務在執行命令行之前,將部署到計算節點的套件清單。 應用程式套件會下載並部署至共享目錄,而不是工作工作目錄。 因此,如果參考的套件已在節點上,且為最新狀態,則不會重新下載;會使用計算節點上的現有複本。 如果無法安裝參考的套件,例如因為套件已刪除或下載失敗,工作就會失敗。
applicationPackageReferences?: ApplicationPackageReference[]
屬性值
authenticationTokenSettings
工作可用來執行 Batch 服務作業之驗證令牌的設定。 如果已設定此屬性,Batch 服務會提供一個驗證令牌,可用來驗證 Batch 服務作業,而不需要帳戶存取密鑰。 令牌會透過AZ_BATCH_AUTHENTICATION_TOKEN環境變數來提供。 工作可以使用令牌執行的作業取決於設定。 例如,工作可以要求作業許可權,以便將其他工作新增至作業,或檢查作業下的工作或其他工作的狀態。
authenticationTokenSettings?: AuthenticationTokenSettings
屬性值
commandLine
Task 的命令行。 針對多重實例工作,命令行會在主要工作和所有子工作完成執行協調命令行之後,以主要工作的形式執行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://docs.microsoft.com/en-us/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外部容器中產生的檔案可能不會反映到主機磁碟,這表示 Batch 檔案 API 將無法存取這些檔案。
containerSettings?: TaskContainerSettings
屬性值
creationTime
工作的建立時間。
creationTime?: Date
屬性值
Date
dependsOn
此工作相依的工作。 除非相依的所有工作都順利完成,否則不會排程此工作。 如果其中任何一項工作失敗並耗盡其重試計數,則永遠不會排程此工作。
dependsOn?: TaskDependencies
屬性值
displayName
工作的顯示名稱。 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。
displayName?: string
屬性值
string
environmentSettings
eTag
工作的 ETag。 這是不透明的字串。 您可以使用它來偵測工作是否已在要求之間變更。 特別是,您可以在更新 Task 時傳遞 ETag,以指定只有當其他人同時沒有修改工作時,您的變更才會生效。
eTag?: string
屬性值
string
executionInfo
exitConditions
id
可唯一識別作業內工作的字串。 標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。
id?: string
屬性值
string
lastModified
任務的最後一次修改時間。
lastModified?: Date
屬性值
Date
multiInstanceSettings
物件,指出Task是多重實例Task,並包含如何執行多重實例工作的相關信息。
multiInstanceSettings?: MultiInstanceSettings
屬性值
nodeInfo
outputFiles
執行命令行之後,Batch 服務會從計算節點上傳的檔案清單。 針對多重實例工作,檔案只會從執行主要工作的計算節點上傳。
outputFiles?: OutputFile[]
屬性值
previousState
工作的上一個狀態。 如果Task處於初始作用中狀態,則不會設定這個屬性。 可能的值包括:'active'、'preparing'、'running'、'completed'
previousState?: TaskState
屬性值
previousStateTransitionTime
工作進入其先前狀態的時間。 如果Task處於初始作用中狀態,則不會設定這個屬性。
previousStateTransitionTime?: Date
屬性值
Date
requiredSlots
工作需要執行的排程位置數目。 預設值為 1。 如果節點有足夠的可用排程位置,工作只能排程在計算節點上執行。 針對多重實例工作,這必須是1。
requiredSlots?: number
屬性值
number
resourceFiles
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 針對多重實例工作,資源檔只會下載到執行主要工作的計算節點。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。
resourceFiles?: ResourceFile[]
屬性值
state
stateTransitionTime
工作進入其目前狀態的時間。
stateTransitionTime?: Date
屬性值
Date
stats
url
工作的 URL。
url?: string
屬性值
string