共用方式為


Task - Add

將工作加入至指定的作業。
從完成到完成的工作最長存留期為 180 天。 如果工作尚未在新增的 180 天內完成,Batch 服務將會終止工作,並在當時處於任何狀態。

POST {batchUrl}/jobs/{jobId}/tasks?api-version=2024-07-01.20.0
POST {batchUrl}/jobs/{jobId}/tasks?timeout={timeout}&api-version=2024-07-01.20.0

URI 參數

名稱 位於 必要 類型 Description
batchUrl
path True

string

所有 Azure Batch 服務要求的基底 URL。

jobId
path True

string

要加入工作之作業的標識碼。

api-version
query True

string

用戶端 API 版本。

timeout
query

integer

int32

伺服器可以花費數秒處理要求的時間上限。 預設值為30秒。 如果值大於 30,則會改用預設值。

要求標頭

Media Types: "application/json; odata=minimalmetadata"

名稱 必要 類型 Description
client-request-id

string

uuid

呼叫端產生的要求身分識別,格式為 GUID,不含大括弧,例如 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0。

return-client-request-id

boolean

伺服器是否應該在回應中傳回 client-request-id。

ocp-date

string

date-time-rfc1123

發出要求的時間。 用戶端連結庫通常會將此設定為目前的系統時鐘時間;如果您要直接呼叫 REST API,請明確設定它。

要求本文

Media Types: "application/json; odata=minimalmetadata"

名稱 必要 類型 Description
commandLine True

string

Task 的命令行。
針對多重實例工作,命令行會在主要工作和所有子工作完成執行協調命令行之後,以主要工作的形式執行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://zcusa.951200.xyz/azure/batch/batch-compute-node-environment-variables)。

id True

string

可唯一識別作業內工作的字串。
標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。 標識碼是區分大小寫和不區分大小寫的(也就是說,您可能在作業中沒有兩個標識符,只依大小寫而不同)。

affinityInfo

AffinityInformation

Batch 服務可以使用的地區提示,以選取要啟動新工作的計算節點。

applicationPackageReferences

ApplicationPackageReference[]

Batch 服務在執行命令行之前,將部署到計算節點的套件清單。
應用程式套件會下載並部署至共享目錄,而不是工作工作目錄。 因此,如果參考的套件已在節點上,且為最新狀態,則不會重新下載;會使用計算節點上的現有複本。 如果無法安裝參考的套件,例如因為套件已刪除或下載失敗,工作就會失敗。

authenticationTokenSettings

AuthenticationTokenSettings

工作可用來執行 Batch 服務作業之驗證令牌的設定。
如果已設定此屬性,Batch 服務會提供一個驗證令牌,可用來驗證 Batch 服務作業,而不需要帳戶存取密鑰。 令牌會透過AZ_BATCH_AUTHENTICATION_TOKEN環境變數來提供。 工作可以使用令牌執行的作業取決於設定。 例如,工作可以要求作業許可權,以便將其他工作新增至作業,或檢查作業下的工作或其他工作的狀態。

constraints

TaskConstraints

套用至此工作的執行條件約束。
如果您未指定條件約束,maxTaskRetryCount 是針對 Job 指定的 maxTaskRetryCount、maxWallClockTime 是無限的,而 retentionTime 為 7 天。

containerSettings

TaskContainerSettings

工作執行所在的容器設定。
如果執行此工作的集區已設定 containerConfiguration,也必須設定此設定。 如果將執行此工作的集區沒有 containerConfiguration 設定,則不得設定此設定。 指定此專案時,AZ_BATCH_NODE_ROOT_DIR下方的所有目錄都會遞歸地對應到容器中(節點上的 Azure Batch 目錄根目錄),所有工作環境變數都會對應到容器中,而工作命令行則會在容器中執行。 AZ_BATCH_NODE_ROOT_DIR外部容器中產生的檔案可能不會反映到主機磁碟,這表示 Batch 檔案 API 將無法存取這些檔案。

dependsOn

TaskDependencies

此工作相依的工作。
除非相依的所有工作都順利完成,否則不會排程此工作。 如果其中任何一項工作失敗並耗盡其重試計數,則永遠不會排程此工作。 如果作業沒有將 usesTaskDependencies 設定為 true,而且此元素存在,要求會失敗,並出現錯誤碼 TaskDependenciesNotSpecifiedOnJob。

displayName

string

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

environmentSettings

EnvironmentSetting[]

Task 的環境變數設定清單。

exitConditions

ExitConditions

指定 Batch 服務在工作完成時應該如何回應。
Batch 服務在工作完成時應該如何回應。

multiInstanceSettings

MultiInstanceSettings

物件,指出Task是多重實例Task,並包含如何執行多重實例工作的相關信息。
多重實例工作通常用於支援 MPI 工作。 在 MPI 案例中,如果任一子工作失敗(例如,由於以非零結束代碼結束),則整個多重實例工作會失敗。 然後,多實例工作會終止並重試,達到其重試限制。

outputFiles

OutputFile[]

執行命令行之後,Batch 服務會從計算節點上傳的檔案清單。
針對多重實例工作,檔案只會從執行主要工作的計算節點上傳。

requiredSlots

integer

工作執行所需的排程位置數目。
預設值為 1。 如果節點有足夠的可用排程位置,工作只能排程在計算節點上執行。 針對多重實例工作,這必須是1。

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

工作執行所在的使用者身分識別。
如果省略,工作會以工作唯一的非系統管理使用者身分執行。

回應

名稱 類型 Description
201 Created

Batch 服務的要求成功。

標題

  • client-request-id: string
  • request-id: string
  • ETag: string
  • Last-Modified: string
  • DataServiceId: string
Other Status Codes

BatchError

Batch 服務的錯誤。

安全性

azure_auth

Microsoft Entra OAuth 2.0 驗證碼流程

類型: oauth2
Flow: implicit
授權 URL: https://login.microsoftonline.com/common/oauth2/authorize

範圍

名稱 Description
user_impersonation 模擬您的用戶帳戶

Authorization

類型: apiKey
位於: header

範例

Add a basic task
Add a container task with container data isolation
Add a container task with container data isolation bad request duplicate sources
Add a task with container settings
Add a task with exit conditions
Add a task with extra slot requirement

Add a basic task

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "task1",
  "commandLine": "cmd /c echo task1"
}

範例回覆

Add a container task with container data isolation

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "taskId",
  "commandLine": "bash -c 'echo hello'",
  "containerSettings": {
    "imageName": "ubuntu",
    "containerHostBatchBindMounts": [
      {
        "source": "Task",
        "isReadOnly": true
      }
    ]
  },
  "userIdentity": {
    "autoUser": {
      "scope": "task",
      "elevationLevel": "nonadmin"
    }
  }
}

範例回覆

Add a container task with container data isolation bad request duplicate sources

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "taskId",
  "commandLine": "bash -c 'echo hello'",
  "containerSettings": {
    "imageName": "ubuntu",
    "containerHostBatchBindMounts": [
      {
        "source": "Task",
        "isReadOnly": true
      },
      {
        "source": "Task",
        "isReadOnly": true
      }
    ]
  },
  "userIdentity": {
    "autoUser": {
      "scope": "task",
      "elevationLevel": "nonadmin"
    }
  }
}

範例回覆

Add a task with container settings

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "taskId",
  "commandLine": "bash -c 'echo hello'",
  "containerSettings": {
    "imageName": "ubuntu",
    "containerRunOptions": "--rm"
  },
  "userIdentity": {
    "autoUser": {
      "scope": "task",
      "elevationLevel": "nonadmin"
    }
  }
}

範例回覆

Add a task with exit conditions

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "taskId",
  "commandLine": "cmd /c exit 3",
  "exitConditions": {
    "exitCodeRanges": [
      {
        "start": 2,
        "end": 4,
        "exitOptions": {
          "jobAction": "terminate"
        }
      }
    ]
  },
  "userIdentity": {
    "autoUser": {
      "scope": "task",
      "elevationLevel": "nonadmin"
    }
  }
}

範例回覆

Add a task with extra slot requirement

範例要求

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2024-07-01.20.0



{
  "id": "task1",
  "requiredSlots": 2,
  "commandLine": "cmd /c echo task1"
}

範例回覆

定義

名稱 Description
AccessScope

令牌授與存取權的 Batch 資源。

AffinityInformation

Batch 服務可用來選取要啟動工作的計算節點的區域提示。

ApplicationPackageReference

要部署到計算節點之封裝的參考。

AuthenticationTokenSettings

工作可用來執行 Batch 服務作業之驗證令牌的設定。

AutoUserScope

自動用戶的範圍

AutoUserSpecification

指定在 Batch 服務上執行工作之自動用戶的參數。

BatchError

從 Azure Batch 服務收到的錯誤回應。

BatchErrorDetail

Azure Batch 錯誤回應中包含的其他信息專案。

ComputeNodeIdentityReference

與計算節點將使用的 Batch 集區相關聯的使用者指派身分識別參考。

ContainerHostBatchBindMountEntry

您想要掛接至工作容器的路徑和掛接模式專案。

ContainerHostDataPath

要掛接至容器工作容器的路徑。

ContainerRegistry

私人容器登錄。

ContainerWorkingDirectory

容器工作工作目錄的位置。

DependencyAction

Batch 服務在相依於此工作的工作上執行的動作。

ElevationLevel

使用者的提高許可權層級。

EnvironmentSetting

要設定於工作進程的環境變數。

ErrorMessage

Azure Batch 錯誤回應中收到的錯誤訊息。

ExitCodeMapping

如果工作以特定結束代碼結束,Batch 服務應該如何回應。

ExitCodeRangeMapping

結束代碼的範圍,以及 Batch 服務應如何響應該範圍內的結束代碼。

ExitConditions

指定 Batch 服務在工作完成時應該如何回應。

ExitOptions

指定 Batch 服務如何回應特定結束條件。

HttpHeader

HTTP 標頭名稱/值組

JobAction

如果 Task 以指定的結束條件完成,且 Job 的 onTaskFailed 屬性為 'performExitOptionsJobAction',則會對包含工作的作業採取動作。

MultiInstanceSettings

指定如何執行多重實例工作的設定。

OutputFile

在 Batch 服務完成執行工作程式之後,將檔案從 Azure Batch 計算節點上傳至另一個位置的規格。

OutputFileBlobContainerDestination

指定 Azure Blob 記憶體容器內的檔案上傳目的地。

OutputFileDestination

檔案應該上傳至其中的目的地。

OutputFileUploadCondition

工作輸出檔案或一組檔案應該上傳的條件。

OutputFileUploadOptions

輸出檔案上傳作業的詳細數據,包括執行上傳的條件。

ResourceFile

要下載至計算節點的單一檔案或多個檔案。

TaskAddParameter

要新增的 Azure Batch 工作。

TaskConstraints

要套用至工作的執行條件約束。

TaskContainerSettings

工作的容器設定。

TaskDependencies

指定工作的任何相依性。 明確指定或相依性範圍內的任何工作都必須完成,才能排程相依性工作。

TaskIdRange

工作可以相依的工作標識碼範圍。 範圍中具有標識碼的所有工作都必須順利完成,才能排程相依的工作。

UserIdentity

執行工作的使用者身分識別定義。

AccessScope

令牌授與存取權的 Batch 資源。

名稱 類型 Description
job

string

授與存取權,以在包含工作的作業上執行所有作業。

AffinityInformation

Batch 服務可用來選取要啟動工作的計算節點的區域提示。

名稱 類型 Description
affinityId

string

代表先前執行之計算節點或工作位置的不透明字串。
您可以傳遞 Node 的 affinityId,以指出此工作必須在該計算節點上執行。 請注意,這隻是軟親和性。 如果目標計算節點在排程工作時忙碌或無法使用,則會將工作排程到別處。

ApplicationPackageReference

要部署到計算節點之封裝的參考。

名稱 類型 Description
applicationId

string

要部署之應用程式的標識碼。
建立集區時,套件的應用程式標識碼必須完整 (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName})。

version

string

要部署的應用程式版本。 如果省略,則會部署預設版本。
如果在集區上省略此專案,而且此應用程式未指定預設版本,要求會失敗,錯誤碼 InvalidApplicationPackageReferences 和 HTTP 狀態代碼 409。 如果在 Task 上省略此專案,而且此應用程式未指定預設版本,則工作會失敗,並出現前置處理錯誤。

AuthenticationTokenSettings

工作可用來執行 Batch 服務作業之驗證令牌的設定。

名稱 類型 Description
access

AccessScope[]

令牌授與存取權的 Batch 資源。
驗證令牌會將存取權授與一組有限的 Batch 服務作業。 存取屬性目前唯一支援的值是 'job',它會授與與包含Task之作業相關之所有作業的存取權。

AutoUserScope

自動用戶的範圍

名稱 類型 Description
pool

string

指定工作會以在集區中的每個計算節點上建立的通用自動使用者帳戶執行。

task

string

指定服務應該為工作建立新的使用者。

AutoUserSpecification

指定在 Batch 服務上執行工作之自動用戶的參數。

名稱 類型 Description
elevationLevel

ElevationLevel

自動使用者的提高許可權層級。
預設值為 nonAdmin。

scope

AutoUserScope

自動用戶的範圍
預設值為集區。 如果集區正在執行 Windows,則當需要更嚴格的工作隔離時,應該指定 Task 的值。 例如,如果工作以可能會影響其他工作的方式變動登錄,或已在集區上指定憑證,而該集區上不應該由一般工作存取,但應該可供 StartTasks 存取。

BatchError

從 Azure Batch 服務收到的錯誤回應。

名稱 類型 Description
code

string

錯誤的識別碼。 程序代碼是不變的,而且是要以程序設計方式取用。

message

ErrorMessage

描述錯誤的訊息,適用於在使用者介面中顯示。

values

BatchErrorDetail[]

索引鍵/值組的集合,其中包含錯誤的其他詳細數據。

BatchErrorDetail

Azure Batch 錯誤回應中包含的其他信息專案。

名稱 類型 Description
key

string

指定 Value 屬性意義的識別碼。

value

string

錯誤回應隨附的其他資訊。

ComputeNodeIdentityReference

與計算節點將使用的 Batch 集區相關聯的使用者指派身分識別參考。

名稱 類型 Description
resourceId

string

使用者指派身分識別的 ARM 資源識別碼。

ContainerHostBatchBindMountEntry

您想要掛接至工作容器的路徑和掛接模式專案。

名稱 類型 Description
isReadOnly

boolean

將此來源路徑掛接為唯讀模式或否。 默認值為 false (讀取/寫入模式)。
針對 Linux,如果您將此路徑掛接為讀取/寫入模式,這並不表示容器中的所有使用者都有路徑的讀取/寫入存取權,這取決於主機 VM 中的存取權。 如果此路徑是只讀掛接,容器內的所有使用者將無法修改路徑。

source

ContainerHostDataPath

掛接至容器客戶的路徑可以選取。

ContainerHostDataPath

要掛接至容器工作容器的路徑。

名稱 類型 Description
Applications

string

應用程式路徑。

JobPrep

string

作業準備工作路徑。

Shared

string

要共用其檔案之多重實例工作的路徑。

Startup

string

開始工作的路徑。

Task

string

工作路徑。

VfsMounts

string

路徑包含此節點上掛接的所有虛擬檔案系統。

ContainerRegistry

私人容器登錄。

名稱 類型 Description
identityReference

ComputeNodeIdentityReference

使用者指派身分識別的參考,用來存取 Azure Container Registry,而不是使用者名稱和密碼。
與計算節點將使用的 Batch 集區相關聯的使用者指派身分識別參考。

password

string

登入登錄伺服器的密碼。

registryServer

string

登錄 URL。
如果省略,預設值為 「docker.io」。。

username

string

要登入登錄伺服器的用戶名稱。

ContainerWorkingDirectory

容器工作工作目錄的位置。

名稱 類型 Description
containerImageDefault

string

使用容器映像中定義的工作目錄。 請注意,此目錄不會包含 Batch 下載的資源檔。

taskWorkingDirectory

string

使用標準 Batch 服務工作工作目錄,其中包含 Batch 填入的工作資源檔。

DependencyAction

Batch 服務在相依於此工作的工作上執行的動作。

名稱 類型 Description
block

string

封鎖等候此工作的工作,防止其排程。

satisfy

string

滿足等候這項工作的工作;一旦滿足所有相依性,工作就會排程執行。

ElevationLevel

使用者的提高許可權層級。

名稱 類型 Description
admin

string

使用者是具有較高存取權的使用者,且會以完整的系統管理員許可權運作。

nonadmin

string

使用者是標準使用者,沒有提升許可權的存取權。

EnvironmentSetting

要設定於工作進程的環境變數。

名稱 類型 Description
name

string

環境變數的名稱。

value

string

環境變數的值。

ErrorMessage

Azure Batch 錯誤回應中收到的錯誤訊息。

名稱 類型 Description
lang

string

錯誤訊息的語言代碼

value

string

訊息的文字。

ExitCodeMapping

如果工作以特定結束代碼結束,Batch 服務應該如何回應。

名稱 類型 Description
code

integer

進程結束代碼。

exitOptions

ExitOptions

如果Task以這個結束代碼結束,Batch服務應該如何回應。

ExitCodeRangeMapping

結束代碼的範圍,以及 Batch 服務應如何響應該範圍內的結束代碼。

名稱 類型 Description
end

integer

範圍中的最後一個結束代碼。

exitOptions

ExitOptions

如果工作結束且範圍中的結束代碼開始到結尾(包含),Batch 服務應該如何回應。

start

integer

範圍中的第一個結束代碼。

ExitConditions

指定 Batch 服務在工作完成時應該如何回應。

名稱 類型 Description
default

ExitOptions

如果工作失敗,而其他任何屬性未涵蓋的結束條件,Batch 服務應該如何回應。
如果 Task 結束且未列在 exitCodes 或 exitCodeRanges 集合中的任何非零結束代碼,如果 preProcessingError 屬性不存在,則會使用前置處理錯誤,如果 fileUploadError 屬性不存在,則會使用檔案上傳錯誤。 如果您想要結束代碼 0 的非預設行為,您必須使用 exitCodes 或 exitCodeRanges 集合明確地列出它。

exitCodeRanges

ExitCodeRangeMapping[]

工作結束代碼範圍的清單,以及 Batch 服務應該如何回應它們。

exitCodes

ExitCodeMapping[]

個別工作結束代碼的清單,以及 Batch 服務應該如何回應它們。

fileUploadError

ExitOptions

如果發生檔案上傳錯誤,Batch 服務應該如何回應。
如果 Task 以 exitCodes 或 exitCodeRanges 指定的結束代碼結束,然後遇到檔案上傳錯誤,則結束代碼指定的動作優先。

preProcessingError

ExitOptions

如果工作因為錯誤而無法啟動,Batch 服務應該如何回應。

ExitOptions

指定 Batch 服務如何回應特定結束條件。

名稱 類型 Description
dependencyAction

DependencyAction

Batch 服務在相依於此工作的工作上執行的動作。
可能的值為 「滿足」(允許相依工作進行)和「封鎖」(相依工作繼續等候)。 Batch 尚不支援取消相依工作。

jobAction

JobAction

如果 Task 以指定的結束條件完成,且 Job 的 onTaskFailed 屬性為 'performExitOptionsJobAction',則會對包含工作的作業採取動作。
結束代碼 0 的預設值為 none,並針對所有其他結束條件終止。 如果 Job 的 onTaskFailed 屬性為 noaction,則指定這個屬性會傳回錯誤,而新增工作要求會失敗併產生無效的屬性值錯誤;如果您直接呼叫 REST API,則 HTTP 狀態代碼為 400 (不正確的要求)。

HttpHeader

HTTP 標頭名稱/值組

名稱 類型 Description
name

string

上傳輸出檔案時所要使用的標頭不區分大小寫的名稱

value

string

上傳輸出檔案時要使用的標頭值

JobAction

如果 Task 以指定的結束條件完成,且 Job 的 onTaskFailed 屬性為 'performExitOptionsJobAction',則會對包含工作的作業採取動作。

名稱 類型 Description
disable

string

停用作業。 這相當於呼叫 disable Job API,其 disableTasks 值為 requeue。

none

string

不採取任何動作。

terminate

string

終止作業。 Job 執行Info 中的 terminateReason 會設定為 “TaskFailed”。

MultiInstanceSettings

指定如何執行多重實例工作的設定。

名稱 類型 Description
commonResourceFiles

ResourceFile[]

Batch 服務在執行協調命令行之前會下載的檔案清單。
通用資源檔與工作資源檔之間的差異在於,所有子工作都會下載通用資源檔,包括主要工作,而工作資源檔只會針對主要工作下載。 另請注意,這些資源檔不會下載到工作工作工作目錄,而是下載到工作根目錄(工作目錄上方的一個目錄)。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

coordinationCommandLine

string

在所有計算節點上執行的命令行,讓它們能夠在主要執行Task命令時協調它們。
典型的協調命令行會啟動背景服務,並確認服務已準備好處理節點間訊息。

numberOfInstances

integer

工作所需的計算節點數目。
如果省略,預設值為1。

OutputFile

在 Batch 服務完成執行工作程式之後,將檔案從 Azure Batch 計算節點上傳至另一個位置的規格。

名稱 類型 Description
destination

OutputFileDestination

輸出檔的目的地。

filePattern

string

表示要上傳之檔案的模式。
支援相對路徑和絕對路徑。 相對路徑相對於工作工作目錄。 支援下列通配符:* 比對 0 或多個字元(例如 pattern abc* 會比對 abc 或 abcdef),** 符合任何目錄? 會比對任何單一字元,[abc] 會比對方括弧中的一個字元,而 [a-c] 會比對範圍中的一個字元。 括弧可以包含否定,以符合未指定的任何字元(例如 [!abc] 符合任何字元,但 a、b 或 c)。 如果檔名以 「.」 開頭,則預設會忽略它,但可能藉由明確指定它來比對它(例如,.gif 不符合 .a.gif,但 會.gif 。 簡單範例:***.txt 符合任何未以 『.』 開頭的檔案,並以 Task 工作目錄或任何子目錄中的 .txt 結尾。 如果檔名包含通配符,則可以使用方括弧逸出它(例如 abc[] 會比對名為 abc的檔案)。 請注意, \ 和 / 都會被視為 Windows 上的目錄分隔符,但只有 / 在 Linux 上。 環境變數 (在 Windows 上%var% 或 Linux 上的$var)會在套用模式之前展開。

uploadOptions

OutputFileUploadOptions

上傳作業的其他選項,包括執行上傳的條件。

OutputFileBlobContainerDestination

指定 Azure Blob 記憶體容器內的檔案上傳目的地。

名稱 類型 Description
containerUrl

string

要上傳檔案之 Azure Blob 記憶體內的容器 URL。
如果未使用受控識別,URL 必須包含將寫入許可權授與容器的共用存取簽章(SAS)。

identityReference

ComputeNodeIdentityReference

使用者指派身分識別的參考,用來存取 containerUrl 所指定的 Azure Blob 記憶體
身分識別必須具有 Azure Blob 記憶體容器的寫入許可權

path

string

Azure 記憶體容器內的目的地 Blob 或虛擬目錄。
如果 filePattern 參考特定檔案(亦即不包含通配符),則 path 是上傳該檔案的 Blob 名稱。 如果 filePattern 包含一或多個通配符(因此可能符合多個檔案),則 path 是 Blob 虛擬目錄的名稱(前面加上每個 Blob 名稱),以上傳檔案。。 如果省略,檔案會上傳至容器的根目錄,且 Blob 名稱符合其檔名。

uploadHeaders

HttpHeader[]

要用於上傳輸出檔案的標頭名稱/值組清單
將檔案上傳至 Azure 記憶體時,將會指定這些標頭。 上傳 Blob 時允許標頭的官方檔:https://zcusa.951200.xyz/rest/api/storageservices/put-blob#request-headers-all-blob-types

OutputFileDestination

檔案應該上傳至其中的目的地。

名稱 類型 Description
container

OutputFileBlobContainerDestination

Azure Blob 記憶體中上傳檔案的位置。

OutputFileUploadCondition

工作輸出檔案或一組檔案應該上傳的條件。

名稱 類型 Description
taskcompletion

string

在工作進程結束之後上傳檔案,不論結束代碼為何。

taskfailure

string

只有在工作進程結束且具有非零結束代碼之後,才上傳檔案。

tasksuccess

string

只有在工作進程結束且結束代碼為 0 之後,才上傳檔案。

OutputFileUploadOptions

輸出檔案上傳作業的詳細數據,包括執行上傳的條件。

名稱 類型 Description
uploadCondition

OutputFileUploadCondition

工作輸出檔案或檔案集應上傳的條件。
預設值為 taskcompletion。

ResourceFile

要下載至計算節點的單一檔案或多個檔案。

名稱 類型 Description
autoStorageContainerName

string

自動記憶體帳戶中的記憶體容器名稱。
autoStorageContainerName、storageContainerUrl 和 httpUrl 屬性互斥,其中一個必須指定。

blobPrefix

string

從 Azure 記憶體容器下載 Blob 時要使用的 Blob 前置詞。 只會下載名稱開頭為指定前置詞的 Blob。
只有在使用 autoStorageContainerName 或 storageContainerUrl 時,屬性才有效。 此前置詞可以是部分檔名或子目錄。 如果未指定前置詞,則會下載容器中的所有檔案。

fileMode

string

以八進位格式的檔案許可權模式屬性。
此屬性僅適用於下載至 Linux 計算節點的檔案。 如果針對將下載至 Windows 計算節點的 resourceFile 指定,則會忽略它。 如果未為 Linux 計算節點指定這個屬性,則會將預設值 0770 套用至檔案。

filePath

string

要下載檔案的計算節點位置,相對於工作的工作目錄。
如果指定 HTTPUrl 屬性,則需要 filePath,並描述將下載檔案的路徑,包括檔名。 否則,如果指定 autoStorageContainerName 或 storageContainerUrl 屬性,則 filePath 是選擇性的,而且是要下載檔案的目錄。 在 filePath 當做目錄使用的情況下,任何已經與輸入數據相關聯的目錄結構都會完整保留,並附加至指定的 filePath 目錄。 指定的相對路徑無法脫離 Task 的工作目錄(例如,使用 '..')。

httpUrl

string

要下載之檔案的 URL。
autoStorageContainerName、storageContainerUrl 和 httpUrl 屬性互斥,其中一個必須指定。 如果 URL 指向 Azure Blob 記憶體,則必須從計算節點讀取它。 在 Azure 記憶體中取得 Blob 的這類 URL 有三種方式:包括授與 Blob 讀取許可權的共用存取簽章(SAS),使用具有讀取許可權的受控識別,或設定 Blob 或其容器的 ACL 以允許公用存取。

identityReference

ComputeNodeIdentityReference

使用者指派身分識別的參考,用來存取 storageContainerUrl 或 HTTPUrl 所指定的 Azure Blob 記憶體
與計算節點將使用的 Batch 集區相關聯的使用者指派身分識別參考。

storageContainerUrl

string

Azure Blob 記憶體中 Blob 容器的 URL。
autoStorageContainerName、storageContainerUrl 和 httpUrl 屬性互斥,其中一個必須指定。 此 URL 必須可從計算節點讀取和列出。 有三種方式可以取得 Azure 記憶體中容器的這類 URL:包括授與容器讀取和清單許可權的共用存取簽章(SAS),使用具有讀取和清單許可權的受控識別,或為容器設定 ACL 以允許公用存取。

TaskAddParameter

要新增的 Azure Batch 工作。

名稱 類型 Description
affinityInfo

AffinityInformation

Batch 服務可以使用的地區提示,以選取要啟動新工作的計算節點。

applicationPackageReferences

ApplicationPackageReference[]

Batch 服務在執行命令行之前,將部署到計算節點的套件清單。
應用程式套件會下載並部署至共享目錄,而不是工作工作目錄。 因此,如果參考的套件已在節點上,且為最新狀態,則不會重新下載;會使用計算節點上的現有複本。 如果無法安裝參考的套件,例如因為套件已刪除或下載失敗,工作就會失敗。

authenticationTokenSettings

AuthenticationTokenSettings

工作可用來執行 Batch 服務作業之驗證令牌的設定。
如果已設定此屬性,Batch 服務會提供一個驗證令牌,可用來驗證 Batch 服務作業,而不需要帳戶存取密鑰。 令牌會透過AZ_BATCH_AUTHENTICATION_TOKEN環境變數來提供。 工作可以使用令牌執行的作業取決於設定。 例如,工作可以要求作業許可權,以便將其他工作新增至作業,或檢查作業下的工作或其他工作的狀態。

commandLine

string

Task 的命令行。
針對多重實例工作,命令行會在主要工作和所有子工作完成執行協調命令行之後,以主要工作的形式執行。 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果命令行參考檔案路徑,它應該使用相對路徑(相對於Task工作目錄),或使用 Batch 提供的環境變數 (https://zcusa.951200.xyz/azure/batch/batch-compute-node-environment-variables)。

constraints

TaskConstraints

套用至此工作的執行條件約束。
如果您未指定條件約束,maxTaskRetryCount 是針對 Job 指定的 maxTaskRetryCount、maxWallClockTime 是無限的,而 retentionTime 為 7 天。

containerSettings

TaskContainerSettings

工作執行所在的容器設定。
如果執行此工作的集區已設定 containerConfiguration,也必須設定此設定。 如果將執行此工作的集區沒有 containerConfiguration 設定,則不得設定此設定。 指定此專案時,AZ_BATCH_NODE_ROOT_DIR下方的所有目錄都會遞歸地對應到容器中(節點上的 Azure Batch 目錄根目錄),所有工作環境變數都會對應到容器中,而工作命令行則會在容器中執行。 AZ_BATCH_NODE_ROOT_DIR外部容器中產生的檔案可能不會反映到主機磁碟,這表示 Batch 檔案 API 將無法存取這些檔案。

dependsOn

TaskDependencies

此工作相依的工作。
除非相依的所有工作都順利完成,否則不會排程此工作。 如果其中任何一項工作失敗並耗盡其重試計數,則永遠不會排程此工作。 如果作業沒有將 usesTaskDependencies 設定為 true,而且此元素存在,要求會失敗,並出現錯誤碼 TaskDependenciesNotSpecifiedOnJob。

displayName

string

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

environmentSettings

EnvironmentSetting[]

Task 的環境變數設定清單。

exitConditions

ExitConditions

指定 Batch 服務在工作完成時應該如何回應。
Batch 服務在工作完成時應該如何回應。

id

string

可唯一識別作業內工作的字串。
標識元可以包含英數位元的任何組合,包括連字元和底線,而且不能包含超過 64 個字元。 標識碼是區分大小寫和不區分大小寫的(也就是說,您可能在作業中沒有兩個標識符,只依大小寫而不同)。

multiInstanceSettings

MultiInstanceSettings

物件,指出Task是多重實例Task,並包含如何執行多重實例工作的相關信息。
多重實例工作通常用於支援 MPI 工作。 在 MPI 案例中,如果任一子工作失敗(例如,由於以非零結束代碼結束),則整個多重實例工作會失敗。 然後,多實例工作會終止並重試,達到其重試限制。

outputFiles

OutputFile[]

執行命令行之後,Batch 服務會從計算節點上傳的檔案清單。
針對多重實例工作,檔案只會從執行主要工作的計算節點上傳。

requiredSlots

integer

工作執行所需的排程位置數目。
預設值為 1。 如果節點有足夠的可用排程位置,工作只能排程在計算節點上執行。 針對多重實例工作,這必須是1。

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

工作執行所在的使用者身分識別。
如果省略,工作會以工作唯一的非系統管理使用者身分執行。

TaskConstraints

要套用至工作的執行條件約束。

名稱 類型 Description
maxTaskRetryCount

integer

重試工作的最大次數。 如果 Batch 服務結束代碼為非零,則會重試工作。
請注意,這個值會特別控制工作可執行檔的重試次數,因為非零結束代碼。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會在第一次嘗試之後重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作,但不建議用於啟動工作或任何工作。 預設值為 0(沒有重試)。

maxWallClockTime

string

工作可能執行的最大經過時間,從工作開始的時間測量。 如果工作未在時間限制內完成,Batch 服務就會終止它。
如果未指定此專案,則工作執行的時間長度沒有限制。

retentionTime

string

從執行完成時起,在計算節點上保留工作目錄的時間下限。 在這段時間之後,Batch 服務可能會刪除Task目錄及其所有內容。
默認值為 7 天,也就是工作目錄將保留 7 天,除非移除計算節點或刪除作業。

TaskContainerSettings

工作的容器設定。

名稱 類型 Description
containerHostBatchBindMounts

ContainerHostBatchBindMountEntry[]

您要掛接至容器工作的路徑。
如果此陣列為 Null 或不存在,容器工作將會在 Windows 中掛接整個暫存磁碟驅動器(或 Linux 中的AZ_BATCH_NODE_ROOT_DIR)。 如果此陣列設定為空白,它就不會將任何數據路徑掛接至容器。

containerRunOptions

string

容器 create 命令的其他選項。
除了 Batch 服務所控制的自變數之外,這些額外的選項也會提供為 「docker create」 命令的自變數。

imageName

string

用來建立要在其中執行工作之容器的映像。
這是完整的映像參考,如同指定為 “docker pull”。 如果未提供任何標記做為 Image 名稱的一部分,則會使用標記 「:latest」 做為預設值。

registry

ContainerRegistry

包含容器映像的私人登錄。
如果已在建立集區時提供,則可以省略此設定。

workingDirectory

ContainerWorkingDirectory

容器工作工作目錄的位置。
默認值為 『taskWorkingDirectory』。

TaskDependencies

指定工作的任何相依性。 明確指定或相依性範圍內的任何工作都必須完成,才能排程相依性工作。

名稱 類型 Description
taskIdRanges

TaskIdRange[]

此工作相依的工作標識碼範圍清單。 所有範圍中的所有工作都必須順利完成,才能排程相依的工作。

taskIds

string[]

此工作相依的工作標識碼清單。 此清單中的所有工作都必須順利完成,才能排程相依的工作。
taskIds 集合總計限制為 64000 個字元(也就是所有工作識別符的合併長度)。 如果 taskIds 集合超過最大長度,新增工作要求會失敗,並出現錯誤碼 TaskDependencyListTooLong。 在此情況下,請考慮改用工作標識符範圍。

TaskIdRange

工作可以相依的工作標識碼範圍。 範圍中具有標識碼的所有工作都必須順利完成,才能排程相依的工作。

名稱 類型 Description
end

integer

範圍中的最後一個任務識別碼。

start

integer

範圍中的第一個任務識別碼。

UserIdentity

執行工作的使用者身分識別定義。

名稱 類型 Description
autoUser

AutoUserSpecification

工作執行所在的自動使用者。
userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。

username

string

執行工作的使用者身分識別名稱。
userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。