你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Task - Add

将任务添加到指定的作业。
任务从添加到完成的最长生存期为 180 天。 如果任务在添加后的 180 天内尚未完成,Batch 服务将终止该任务,并保留其当时处于的任何状态。

POST {batchUrl}/jobs/{jobId}/tasks?api-version=2023-11-01.18.0
POST {batchUrl}/jobs/{jobId}/tasks?timeout={timeout}&api-version=2023-11-01.18.0

URI 参数

名称 必需 类型 说明
batchUrl
path True

string

所有Azure Batch服务请求的基 URL。

jobId
path True

string

任务要添加到的作业的 ID。

api-version
query True

string

客户端 API 版本。

timeout
query

integer

int32

服务器可以花费处理请求的最长时间(以秒为单位)。 默认为 30 秒。

请求头

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

名称 必需 类型 说明
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"

名称 必需 类型 说明
commandLine True

string

Task 的命令行。
对于多实例任务,在主任务和所有子任务完成协调命令行执行后,命令行将作为主任务执行。 命令行不在 shell 下运行,因此无法利用 shell 功能,例如环境变量扩展。 如果要利用此类功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对于 Task 工作目录) (相对路径,或使用 Batch 提供的环境变量 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) 。

id True

string

唯一标识作业中的 Task 的字符串。
ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。 ID 是保留大小写且不区分大小写 (也就是说,作业中可能没有两个 ID,这些 ID 仅因大小写) 不同。

affinityInfo

AffinityInformation

可供 Batch 服务用来选择要启动新任务的计算节点的区域提示。

applicationPackageReferences

ApplicationPackageReference[]

Batch 服务在运行命令行之前将部署到计算节点的包列表。
应用程序包下载并部署到共享目录,而不是 Task 工作目录。 因此,如果引用的包已在节点上,并且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果无法安装引用的包,例如,因为包已被删除或下载失败,则任务将失败。

authenticationTokenSettings

AuthenticationTokenSettings

任务可用于执行 Batch 服务操作的身份验证令牌的设置。
如果设置了此属性,Batch 服务将为 Task 提供身份验证令牌,该令牌可用于对 Batch 服务操作进行身份验证,而无需帐户访问密钥。 令牌通过 AZ_BATCH_AUTHENTICATION_TOKEN 环境变量提供。 任务可以使用令牌执行的操作取决于设置。 例如,任务可以请求作业权限,以便将其他任务添加到作业,或检查作业下作业或其他任务的状态。

constraints

TaskConstraints

应用于此任务的执行约束。
如果未指定约束,则 maxTaskRetryCount 是为作业指定的 maxTaskRetryCount,maxWallClockTime 为无限期,retentionTime 为 7 天。

containerSettings

TaskContainerSettings

运行 Task 的容器的设置。
如果将运行此任务的池具有 containerConfiguration 集,则还必须设置此设置。 如果将运行此任务的池没有 containerConfiguration 设置,则不得设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR (节点上 Azure Batch) 目录的根目录以递归方式映射到容器中,所有 Task 环境变量都映射到容器中,并在容器中执行 Task 命令行。 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,并包含有关如何运行多实例 Task 的信息。
多实例任务通常用于支持 MPI 任务。 在 MPI 情况下,如果任何子任务失败 (例如由于退出代码为非零) 整个多实例任务失败。 然后终止多实例任务并重试,达到其重试限制。

outputFiles

OutputFile[]

运行命令行后,Batch 服务将从计算节点上传的文件列表。
对于多实例任务,文件将仅从执行主任务的计算节点上传。

requiredSlots

integer

任务运行所需的计划槽数。
默认值为 1。 如果任务有足够的可用计划槽,则只能将任务计划为在计算节点上运行。 对于多实例任务,这必须为 1。

resourceFiles

ResourceFile[]

在运行命令行之前,Batch 服务将下载到计算节点的文件列表。
对于多实例任务,资源文件将仅下载到执行主任务的计算节点上。 资源文件列表有一个最大大小。 超过最大大小时,请求将失败,响应错误代码为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 集合的大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。

userIdentity

UserIdentity

运行 Task 时所依据的用户标识。
如果省略,则任务将作为 Task 唯一的非管理用户运行。

响应

名称 类型 说明
201 Created

对 Batch 服务的请求已成功。

Headers

  • 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 身份验证代码流

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

名称 说明
user_impersonation 模拟用户帐户

Authorization

Type: apiKey
In: header

示例

Add a basic task
Add a task with container settings
Add a task with exit conditions
Add a task with extra slot requirement

Add a basic task

Sample Request

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2023-11-01.18.0



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

Sample Response

Add a task with container settings

Sample Request

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2023-11-01.18.0



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

Sample Response

Add a task with exit conditions

Sample Request

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2023-11-01.18.0



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

Sample Response

Add a task with extra slot requirement

Sample Request

POST account.region.batch.azure.com/jobs/jobId/tasks?api-version=2023-11-01.18.0



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

Sample Response

定义

名称 说明
AccessScope

令牌授予访问权限的 Batch 资源。

AffinityInformation

Batch 服务可以使用该提示来选择要启动任务的计算节点。

ApplicationPackageReference

对要部署到计算节点的包的引用。

AuthenticationTokenSettings

任务可用于执行 Batch 服务操作的身份验证令牌的设置。

AutoUserScope

自动用户的作用域

AutoUserSpecification

为在 Batch 服务上运行 Task 的自动用户指定参数。

BatchError

从Azure Batch服务收到的错误响应。

BatchErrorDetail

Azure Batch错误响应中包含的其他信息项。

ComputeNodeIdentityReference

对与计算节点将使用的 Batch 池关联的用户分配标识的引用。

ContainerRegistry

专用容器注册表。

ContainerWorkingDirectory

容器任务工作目录的位置。

DependencyAction

Batch 服务对依赖于此任务的任务执行的操作。

ElevationLevel

用户的提升级别。

EnvironmentSetting

要对任务进程设置的环境变量。

ErrorMessage

Azure Batch错误响应中收到的错误消息。

ExitCodeMapping

如果任务使用特定退出代码退出,Batch 服务应如何响应。

ExitCodeRangeMapping

退出代码范围以及 Batch 服务应如何响应该范围内的退出代码。

ExitConditions

指定 Batch 服务在任务完成时应如何响应。

ExitOptions

指定 Batch 服务如何响应特定退出条件。

HttpHeader

HTTP 标头名称/值对

JobAction

如果 Task 以给定的退出条件完成,并且作业的 onTaskFailed 属性为“performExitOptionsJobAction”,则对包含 Task 的作业执行的操作。

MultiInstanceSettings

指定如何运行多实例任务的设置。

OutputFile

在 Batch 服务完成任务进程执行后,将文件从Azure Batch计算节点上传到另一个位置的规范。

OutputFileBlobContainerDestination

指定 Azure Blob 存储容器中的文件上传目标。

OutputFileDestination

文件应上传到的目标。

OutputFileUploadCondition

应上传 Task 输出文件或文件集的条件。

OutputFileUploadOptions

有关输出文件上传操作的详细信息,包括在什么条件下执行上传。

ResourceFile

要下载到计算节点的单个文件或多个文件。

TaskAddParameter

要添加Azure Batch任务。

TaskConstraints

要应用于 Task 的执行约束。

TaskContainerSettings

任务的容器设置。

TaskDependencies

指定 Task 的任何依赖项。 显式指定或依赖关系范围内的任何任务都必须完成,然后才能计划从属任务。

TaskIdRange

任务可以依赖的任务 ID 范围。 范围内 ID 为 的所有任务必须成功完成,然后才能计划相关任务。

UserIdentity

运行任务时所依据的用户标识的定义。

AccessScope

令牌授予访问权限的 Batch 资源。

名称 类型 说明
job

string

授予对包含 Task 的作业执行所有操作的访问权限。

AffinityInformation

Batch 服务可以使用该提示来选择要启动任务的计算节点。

名称 类型 说明
affinityId

string

表示计算节点或以前运行的任务的位置的不透明字符串。
可以传递 Node 的 affinityId,以指示此任务需要在该计算节点上运行。 请注意,这只是一种软相关性。 如果目标计算节点在计划任务时正忙或不可用,则将将任务安排在其他位置。

ApplicationPackageReference

对要部署到计算节点的包的引用。

名称 类型 说明
applicationId

string

要部署的应用程序的 ID。
创建池时,包的应用程序 ID 必须完全限定 (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}) 。

version

string

要部署的应用程序的版本。 如果省略,则部署默认版本。
如果在池中省略此项,并且未为此应用程序指定默认版本,则请求将失败,错误代码为 InvalidApplicationPackageReferences 和 HTTP 状态代码 409。 如果在 Task 上省略此版本,并且未为此应用程序指定默认版本,则任务将失败并出现预处理错误。

AuthenticationTokenSettings

任务可用于执行 Batch 服务操作的身份验证令牌的设置。

名称 类型 说明
access

AccessScope[]

令牌授予访问权限的 Batch 资源。
身份验证令牌授予对一组有限的 Batch 服务操作的访问权限。 目前,访问属性支持的唯一值是“job”,它授予对包含 Task 的 Job 相关所有操作的访问权限。

AutoUserScope

自动用户的作用域

名称 类型 说明
pool

string

指定任务作为在池中的每个计算节点上创建的公共自动用户帐户运行。

task

string

指定服务应为 Task 创建新用户。

AutoUserSpecification

为在 Batch 服务上运行 Task 的自动用户指定参数。

名称 类型 说明
elevationLevel

ElevationLevel

自动用户的提升级别。
默认值为 nonAdmin。

scope

AutoUserScope

自动用户的作用域
默认值为 pool。 如果池运行的是 Windows,则当任务之间需要更严格的隔离时,应指定 Task 值。 例如,如果任务以可能影响其他任务的方式改变注册表,或者已在池上指定了证书,而普通任务不应访问,但应由 StartTasks 访问。

BatchError

从Azure Batch服务收到的错误响应。

名称 类型 说明
code

string

错误的标识符。 代码是固定的,旨在以编程方式使用。

message

ErrorMessage

描述错误的消息,该消息适用于在用户界面中显示。

values

BatchErrorDetail[]

包含有关错误的其他详细信息的键值对的集合。

BatchErrorDetail

Azure Batch错误响应中包含的其他信息项。

名称 类型 说明
key

string

指定 Value 属性的含义的标识符。

value

string

错误响应附带的其他信息。

ComputeNodeIdentityReference

对与计算节点将使用的 Batch 池关联的用户分配标识的引用。

名称 类型 说明
resourceId

string

用户分配的标识的 ARM 资源 ID。

ContainerRegistry

专用容器注册表。

名称 类型 说明
identityReference

ComputeNodeIdentityReference

对用户分配的标识的引用,该标识用于访问Azure 容器注册表,而不是用户名和密码。
对与计算节点将使用的 Batch 池关联的用户分配标识的引用。

password

string

用于登录到注册表服务器的密码。

registryServer

string

注册表 URL。
如果省略,则默认值为“docker.io”。

username

string

要登录到注册表服务器的用户名。

ContainerWorkingDirectory

容器任务工作目录的位置。

名称 类型 说明
containerImageDefault

string

使用容器映像中定义的工作目录。 请注意,此目录不包含 Batch 下载的资源文件。

taskWorkingDirectory

string

使用标准 Batch 服务任务工作目录,其中包含由 Batch 填充的任务资源文件。

DependencyAction

Batch 服务对依赖于此任务的任务执行的操作。

名称 类型 说明
block

string

阻止正在等待此任务的任务,从而阻止它们进行计划。

satisfy

string

满足等待此任务的任务;满足所有依赖项后,将计划运行任务。

ElevationLevel

用户的提升级别。

名称 类型 说明
admin

string

用户是具有提升访问权限的用户,使用完全管理员权限进行操作。

nonadmin

string

用户是没有提升访问权限的标准用户。

EnvironmentSetting

要对任务进程设置的环境变量。

名称 类型 说明
name

string

环境变量的名称。

value

string

环境变量的值。

ErrorMessage

Azure Batch错误响应中收到的错误消息。

名称 类型 说明
lang

string

错误消息的语言代码

value

string

消息的文本。

ExitCodeMapping

如果任务使用特定退出代码退出,Batch 服务应如何响应。

名称 类型 说明
code

integer

进程退出代码。

exitOptions

ExitOptions

如果任务使用此退出代码退出,Batch 服务应如何响应。

ExitCodeRangeMapping

退出代码范围以及 Batch 服务应如何响应该范围内的退出代码。

名称 类型 说明
end

integer

范围中的最后一个退出代码。

exitOptions

ExitOptions

如果任务退出且范围中的退出代码开始结束 (包含) ,Batch 服务应如何响应。

start

integer

范围中的第一个退出代码。

ExitConditions

指定 Batch 服务在任务完成时应如何响应。

名称 类型 说明
default

ExitOptions

如果任务失败且退出条件未涵盖任何其他属性,Batch 服务应如何响应。
如果 Task 退出且未在 exitCodes 或 exitCodeRanges 集合中列出的任何非零退出代码,则使用此值;如果 preProcessingError 属性不存在,则返回预处理错误;如果 fileUploadError 属性不存在,则出现文件上传错误。 如果想要退出代码 0 上的非默认行为,则必须使用 exitCodes 或 exitCodeRanges 集合显式列出它。

exitCodeRanges

ExitCodeRangeMapping[]

任务退出代码范围的列表以及 Batch 服务应如何响应它们。

exitCodes

ExitCodeMapping[]

单个任务退出代码以及 Batch 服务应如何响应这些代码的列表。

fileUploadError

ExitOptions

发生文件上传错误时 Batch 服务应如何响应。
如果任务退出时通过 exitCodes 或 exitCodeRanges 指定的退出代码,然后遇到文件上传错误,则退出代码指定的操作优先。

preProcessingError

ExitOptions

如果任务因错误而无法启动,Batch 服务应如何响应。

ExitOptions

指定 Batch 服务如何响应特定退出条件。

名称 类型 说明
dependencyAction

DependencyAction

Batch 服务对依赖于此任务的任务执行的操作。
可能的值为“满足” (允许依赖任务) 进行, (依赖任务继续等待) “阻止”。 Batch 尚不支持取消依赖任务。

jobAction

JobAction

如果 Task 以给定的退出条件完成,并且作业的 onTaskFailed 属性为“performExitOptionsJobAction”,则对包含 Task 的作业执行的操作。
对于退出代码 0,默认值为 none,对于所有其他退出条件,默认值为“无”。 如果作业的 onTaskFailed 属性为 noaction,则指定此属性将返回错误,并且添加 Task 请求失败,并出现无效的属性值错误;如果直接调用 REST API,则 HTTP 状态代码为 400 (错误请求) 。

HttpHeader

HTTP 标头名称/值对

名称 类型 说明
name

string

上传输出文件时要使用的标头名称不区分大小写

value

string

上传输出文件时要使用的标头的值

JobAction

如果 Task 以给定的退出条件完成,并且作业的 onTaskFailed 属性为“performExitOptionsJobAction”,则对包含 Task 的作业执行的操作。

名称 类型 说明
disable

string

禁用作业。 这相当于调用禁用作业 API,其 disableTasks 值为重新排队。

none

string

不执行任何操作。

terminate

string

终止作业。 作业的 executionInfo 中的 terminateReason 设置为“TaskFailed”。

MultiInstanceSettings

指定如何运行多实例任务的设置。

名称 类型 说明
commonResourceFiles

ResourceFile[]

Batch 服务在运行协调命令行之前将下载的文件列表。
常见资源文件和任务资源文件的区别在于,所有子任务(包括主任务)都会下载公共资源文件,而任务资源文件仅为主要任务下载。 另请注意,这些资源文件不会下载到 Task 工作目录,而是下载到 Task 根目录 (工作目录) 上方的一个目录。 资源文件列表有最大大小。 超过最大大小时,请求将失败,响应错误代码为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 集合的大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。

coordinationCommandLine

string

在所有计算节点上运行的命令行,使主节点能够在主节点运行 main Task 命令时进行协调。
典型的协调命令行启动后台服务,并验证该服务是否已准备好处理节点间消息。

numberOfInstances

integer

任务所需的计算节点数。
如果省略,则默认值为 1。

OutputFile

在 Batch 服务完成任务进程执行后,将文件从Azure Batch计算节点上传到另一个位置的规范。

名称 类型 说明
destination

OutputFileDestination

输出文件的目标 () 。

filePattern

string

一种模式,指示要上传的文件 () 。
支持相对路径和绝对路径。 相对路径相对于 Task 工作目录。 支持以下通配符:* 匹配 0 个或多个字符 (例如模式 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 存储容器中的文件上传目标。

名称 类型 说明
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://docs.microsoft.com/en-us/rest/api/storageservices/put-blob#request-headers-all-blob-types

OutputFileDestination

文件应上传到的目标。

名称 类型 说明
container

OutputFileBlobContainerDestination

将文件上传到 Azure Blob 存储中的位置。

OutputFileUploadCondition

应上传 Task 输出文件或文件集的条件。

名称 类型 说明
taskcompletion

string

无论退出代码是什么,在任务进程退出后, () 上传文件。

taskfailure

string

仅当任务进程以非零退出代码退出后,才 () 上传文件。

tasksuccess

string

仅当任务进程退出并退出代码为 0 后,才上传文件 () 。

OutputFileUploadOptions

有关输出文件上传操作的详细信息,包括在什么条件下执行上传。

名称 类型 说明
uploadCondition

OutputFileUploadCondition

应上传 Task 输出文件或文件集的条件。
默认值为 taskcompletion。

ResourceFile

要下载到计算节点的单个文件或多个文件。

名称 类型 说明
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:包括共享访问签名 (SAS) 授予对 blob 的读取权限、使用具有读取权限的托管标识,或者为 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任务。

名称 类型 说明
affinityInfo

AffinityInformation

可供 Batch 服务用来选择要启动新任务的计算节点的区域提示。

applicationPackageReferences

ApplicationPackageReference[]

Batch 服务在运行命令行之前将部署到计算节点的包列表。
应用程序包下载并部署到共享目录,而不是任务工作目录。 因此,如果引用的包已在节点上并且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果无法安装引用的包,例如,因为包已被删除或下载失败,则任务会失败。

authenticationTokenSettings

AuthenticationTokenSettings

任务可用于执行 Batch 服务操作的身份验证令牌的设置。
如果设置了此属性,Batch 服务将为 Task 提供一个身份验证令牌,该令牌可用于对 Batch 服务操作进行身份验证,而无需帐户访问密钥。 令牌通过 AZ_BATCH_AUTHENTICATION_TOKEN 环境变量提供。 任务可以使用令牌执行的操作取决于设置。 例如,任务可以请求作业权限,以便将其他任务添加到作业,或检查作业或作业下其他任务的状态。

commandLine

string

Task 的命令行。
对于多实例任务,在主任务和所有子任务完成协调命令行执行后,命令行将作为主任务执行。 命令行不在 shell 下运行,因此无法利用 shell 功能,例如环境变量扩展。 如果要利用此类功能,则应在命令行中调用 shell,例如在 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

TaskConstraints

应用于此任务的执行约束。
如果未指定约束,则 maxTaskRetryCount 是为作业指定的 maxTaskRetryCount,maxWallClockTime 为无限期,retentionTime 为 7 天。

containerSettings

TaskContainerSettings

运行 Task 的容器的设置。
如果将运行此任务的池具有 containerConfiguration 集,则还必须设置此设置。 如果将运行此任务的池没有 containerConfiguration 设置,则不得设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR (节点上 Azure Batch) 目录的根目录以递归方式映射到容器中,所有 Task 环境变量都映射到容器中,并在容器中执行 Task 命令行。 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

唯一标识作业中的 Task 的字符串。
ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。 ID 是保留大小写且不区分大小写 (也就是说,作业中可能没有两个 ID,这些 ID 仅因大小写) 不同。

multiInstanceSettings

MultiInstanceSettings

一个 对象,指示 Task 是一个多实例 Task,并包含有关如何运行多实例 Task 的信息。
多实例任务通常用于支持 MPI 任务。 在 MPI 情况下,如果任何子任务失败 (例如,由于退出代码为非零,) 整个多实例任务失败。 然后终止并重试多实例 Task,达到其重试限制。

outputFiles

OutputFile[]

运行命令行后,Batch 服务将从计算节点上传的文件列表。
对于多实例任务,文件将仅从执行主任务的计算节点上传。

requiredSlots

integer

任务运行所需的计划槽数。
默认值为 1。 如果任务有足够的可用计划槽,则只能将任务计划为在计算节点上运行。 对于多实例任务,这必须为 1。

resourceFiles

ResourceFile[]

在运行命令行之前,Batch 服务将下载到计算节点的文件列表。
对于多实例任务,资源文件将仅下载到执行主任务的计算节点上。 资源文件列表有一个最大大小。 超过最大大小时,请求将失败,响应错误代码为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 集合的大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。

userIdentity

UserIdentity

运行 Task 时所依据的用户标识。
如果省略,则任务将作为 Task 唯一的非管理用户运行。

TaskConstraints

要应用于 Task 的执行约束。

名称 类型 说明
maxTaskRetryCount

integer

可以重试任务的最大次数。 如果任务退出代码为非零,Batch 服务会重试任务。
请注意,此值专门控制由于非零退出代码而导致 Task 可执行文件的重试次数。 Batch 服务将尝试一次任务,然后可能会重试到此限制。 例如,如果最大重试计数为 3,则 Batch 在首次尝试 (最多尝试 4 次 Task,) 重试 3 次。 如果最大重试计数为 0,则 Batch 服务不会在第一次尝试后重试 Task。 如果最大重试计数为 -1,Batch 服务将无限制地重试任务,但不建议对启动任务或任何任务执行此操作。 默认值为 0(不重试)。

maxWallClockTime

string

任务可能运行的最大已用时间,从任务启动时间开始计算。 如果任务未在时间限制内完成,Batch 服务将终止它。
如果未指定此项,则任务可以运行的时间没有时间限制。

retentionTime

string

在运行任务节点的计算节点上保留 Task 目录的最短时间,从它完成执行时算起。 在此之后,Batch 服务可能会删除 Task 目录及其所有内容。
默认值为 7 天,即任务目录将保留 7 天,除非删除计算节点或删除作业。

TaskContainerSettings

任务的容器设置。

名称 类型 说明
containerRunOptions

string

容器创建命令的其他选项。
除了 Batch 服务控制的选项外,这些附加选项还作为参数提供给“docker create”命令。

imageName

string

用于创建运行 Task 的容器的映像。
这是完整的映像引用,将指定为“docker 拉取”。 如果未提供任何标记作为映像名称的一部分,则使用标记“:latest”作为默认值。

registry

ContainerRegistry

包含容器映像的专用注册表。
如果已在创建池时提供此设置,则可以省略此设置。

workingDirectory

ContainerWorkingDirectory

容器任务工作目录的位置。
默认值为“taskWorkingDirectory”。

TaskDependencies

指定 Task 的任何依赖项。 显式指定或依赖关系范围内的任何任务都必须完成,然后才能计划从属任务。

名称 类型 说明
taskIdRanges

TaskIdRange[]

此任务所依赖的任务 ID 范围的列表。 所有范围中的所有任务都必须成功完成,然后才能计划从属任务。

taskIds

string[]

此任务所依赖的任务 ID 列表。 此列表中的所有任务必须成功完成,然后才能计划依赖的任务。
taskIds 集合的总长度限制为 64000 个字符, (即) 的所有任务 ID 的组合长度。 如果 taskIds 集合超过最大长度,则添加任务请求将失败,错误代码为 TaskDependencyListTooLong。 在这种情况下,请考虑改用任务 ID 范围。

TaskIdRange

任务可以依赖的任务 ID 范围。 范围内 ID 为 的所有任务必须成功完成,然后才能计划相关任务。

名称 类型 说明
end

integer

范围中的最后一个任务 ID。

start

integer

范围中的第一个任务 ID。

UserIdentity

运行任务时所依据的用户标识的定义。

名称 类型 说明
autoUser

AutoUserSpecification

运行任务的自动用户。
userName 和 autoUser 属性是互斥的;必须指定一个,但不能同时指定两者。

username

string

运行任务时所依据的用户标识的名称。
userName 和 autoUser 属性是互斥的;必须指定一个,但不能同时指定两者。