BatchStartTask interface
批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括當狀況不良的節點重新啟動或計算節點因主機失敗而消失時,包括 (但不限於) 。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 是 0,由於復原作業,可能會發生內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的數據。 長時間執行工作的最佳做法是使用某種形式的檢查點。 在某些情況下,即使計算節點未重新啟動,StartTask 仍可能會重新執行。 請特別小心,以避免 StartTasks 從 StartTask 工作目錄建立中斷程式或安裝/啟動服務,因為這樣會阻止 Batch 重新執行 StartTask。
屬性
| command |
StartTask 的命令行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果你想利用這些功能,應該在命令列中呼叫 shell,例如在 Windows 中使用「cmd /c MyCommand」,或在 Linux 中使用「/bin/sh -c MyCommand」。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。 |
| container |
啟動任務所處容器的設定。 當指定此條件時,所有位於AZ_BATCH_NODE_ROOT_DIR(節點上Azure Batch目錄根節點)下方的目錄會遞迴地映射到容器中,所有任務環境變數也映射到容器中,任務命令列則在容器中執行。 容器中產生的檔案可能不會被反映到主機磁碟AZ_BATCH_NODE_ROOT_DIR,導致批次檔案 API 無法存取這些檔案。 |
| environment |
StartTask 的環境變數設定清單。 |
| max |
重試工作的最大次數。 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作,但不建議用於啟動工作或任何工作。 預設值為 0(沒有重試)。 |
| resource |
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。 此元素底下列出的檔案位於工作的工作目錄中。 |
| user |
啟動任務執行的使用者身份。 若省略,該任務將以非管理員使用者身份執行,且是任務獨一無二的使用者。 |
| wait |
在排程計算節點上的任何工作之前,Batch 服務是否應該等候 StartTask 順利完成(也就是結束代碼 0)。 如果 True 且 StartTask 在節點上失敗,Batch 服務會重試 StartTask,最多重試計數上限 (maxTaskRetryCount)。 如果工作在所有重試之後仍未順利完成,則 Batch 服務會將節點標示為無法使用,且不會排程工作。 您可以透過計算節點狀態和失敗資訊詳細資料來偵測此狀況。 如果為 false,Batch 服務將不會等候 StartTask 完成。 在此情況下,當 StartTask 仍在執行時,其他工作可以在計算節點上開始執行;即使 StartTask 失敗,新的工作仍會繼續排程在計算節點上。 預設值為 True。 |
屬性詳細資料
commandLine
StartTask 的命令行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果你想利用這些功能,應該在命令列中呼叫 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
containerSettings
啟動任務所處容器的設定。 當指定此條件時,所有位於AZ_BATCH_NODE_ROOT_DIR(節點上Azure Batch目錄根節點)下方的目錄會遞迴地映射到容器中,所有任務環境變數也映射到容器中,任務命令列則在容器中執行。 容器中產生的檔案可能不會被反映到主機磁碟AZ_BATCH_NODE_ROOT_DIR,導致批次檔案 API 無法存取這些檔案。
containerSettings?: BatchTaskContainerSettings
屬性值
environmentSettings
maxTaskRetryCount
重試工作的最大次數。 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作,但不建議用於啟動工作或任何工作。 預設值為 0(沒有重試)。
maxTaskRetryCount?: number
屬性值
number
resourceFiles
Batch 服務在執行命令行之前,會先下載至計算節點的檔案清單。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。 此元素底下列出的檔案位於工作的工作目錄中。
resourceFiles?: ResourceFile[]
屬性值
userIdentity
waitForSuccess
在排程計算節點上的任何工作之前,Batch 服務是否應該等候 StartTask 順利完成(也就是結束代碼 0)。 如果 True 且 StartTask 在節點上失敗,Batch 服務會重試 StartTask,最多重試計數上限 (maxTaskRetryCount)。 如果工作在所有重試之後仍未順利完成,則 Batch 服務會將節點標示為無法使用,且不會排程工作。 您可以透過計算節點狀態和失敗資訊詳細資料來偵測此狀況。 如果為 false,Batch 服務將不會等候 StartTask 完成。 在此情況下,當 StartTask 仍在執行時,其他工作可以在計算節點上開始執行;即使 StartTask 失敗,新的工作仍會繼續排程在計算節點上。 預設值為 True。
waitForSuccess?: boolean
屬性值
boolean