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

Tasks - Get Task

获取指定任务的信息。
对于多实例任务,affinityId、executionInfo 和 nodeInfo 等信息指代主任务。 使用列表子任务 API 来获取子任务的信息。

GET {endpoint}/jobs/{jobId}/tasks/{taskId}?api-version=2025-06-01
GET {endpoint}/jobs/{jobId}/tasks/{taskId}?api-version=2025-06-01&timeOut={timeOut}&$select={$select}&$expand={$expand}

URI 参数

名称 必需 类型 说明
endpoint
path True

string (uri)

Batch 帐户终结点(例如:https://batchaccount.eastus2.batch.azure.com)。

jobId
path True

string

包含该任务的作业ID。

taskId
path True

string

任务的ID以获取信息。

api-version
query True

string

minLength: 1

要用于此操作的 API 版本。

$expand
query

string[]

OData $expand 子句。

$select
query

string[]

OData $select 子句。

timeOut
query

integer (int32)

服务器处理请求的最长时间(以秒为单位)。 默认为 30 秒。 如果值大于30,则使用默认值。”

请求头

名称 必需 类型 说明
client-request-id

string

调用方生成的请求标识,采用不带大括号的 GUID 形式,例如 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0。

return-client-request-id

boolean

服务器是否应在响应中返回 client-request-id。

ocp-date

string (date-time-rfc7231)

发出请求的时间。 客户端库通常将此设置为当前的系统时钟时间;如果直接调用 REST API,请显式设置它。

If-Modified-Since

string (date-time-rfc7231)

一个时间戳,指示客户端已知资源的上次修改时间。 仅当服务上的资源自指定时间以来已修改时,才会执行该操作。

If-Unmodified-Since

string (date-time-rfc7231)

一个时间戳,指示客户端已知资源的上次修改时间。 仅当服务上的资源自指定时间以来尚未修改时,才会执行该作。

If-Match

string

与客户端已知的资源版本关联的 ETag 值。 仅当服务的当前 ETag 与客户端指定的值完全匹配时,才会执行该操作。

If-None-Match

string

与客户端已知的资源版本关联的 ETag 值。 仅当服务的当前 ETag 与客户端指定的值不匹配时,才会执行该操作。

响应

名称 类型 说明
200 OK

BatchTask

请求已成功。

标头

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

BatchError

意外错误响应。

安全性

OAuth2Auth

类型: oauth2
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

作用域

名称 说明
https://batch.core.windows.net//.default

示例

Task get

示例请求

GET {endpoint}/jobs/jobId/tasks/taskId?api-version=2025-06-01


示例响应

{
  "id": "testTask",
  "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId",
  "eTag": "0x8D3D62350711C55",
  "creationTime": "2025-09-06T06:59:15.1161429Z",
  "lastModified": "2025-09-06T06:59:15.1161429Z",
  "state": "active",
  "stateTransitionTime": "2025-09-06T06:59:15.1161429Z",
  "commandLine": "cmd /c hostname",
  "userIdentity": {
    "autoUser": {
      "scope": "task",
      "elevationLevel": "nonadmin"
    }
  },
  "multiInstanceSettings": {
    "numberOfInstances": 3,
    "coordinationCommandLine": "cmd /c echo coordinating"
  },
  "constraints": {
    "maxWallClockTime": "P10675199DT2H48M5.4775807S",
    "retentionTime": "P10675199DT2H48M5.4775807S",
    "maxTaskRetryCount": 0
  },
  "requiredSlots": 2,
  "executionInfo": {
    "retryCount": 0,
    "requeueCount": 0
  }
}

定义

名称 说明
AuthenticationTokenSettings

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

AutoUserScope

AutoUserScope 枚举

AutoUserSpecification

指定运行 Azure Batch 任务的自动用户的选项。

BatchAccessScope

BatchAccessScope 枚举

BatchAffinityInfo

Batch 服务可以使用的区域提示选择要在其中启动任务的计算节点。

BatchApplicationPackageReference

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

BatchError

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

BatchErrorDetail

Azure Batch 错误响应中包含的附加信息项。

BatchErrorMessage

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

BatchErrorSourceCategory

BatchErrorSourceCategory 枚举

BatchJobActionKind

BatchJobAction 枚举

BatchNodeIdentityReference

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

BatchNodeInfo

有关运行任务的计算节点的信息。

BatchTask

当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。

BatchTaskConstraints

要应用于任务的执行约束。

BatchTaskContainerExecutionInfo

包含有关任务正在执行的容器的信息。

BatchTaskContainerSettings

任务的容器设置。

BatchTaskDependencies

指定任务的任何依赖项。 显式指定或依赖范围内的任何任务都必须在计划依赖任务之前完成。

BatchTaskExecutionInfo

有关任务执行的信息。

BatchTaskExecutionResult

BatchTaskExecutionResult 枚举

BatchTaskFailureInfo

有关任务失败的信息。

BatchTaskIdRange

范围的开始和结束是包容性的。 例如,如果某个范围具有 9 开始和结束 12,则表示任务“9”、“10”、“11”和“12”。

BatchTaskState

BatchTaskState 枚举

BatchTaskStatistics

任务的资源使用情况统计信息。

ContainerHostBatchBindMountEntry

要装载到任务容器的路径和装载模式的条目。

ContainerHostDataPath

将装载到容器任务的容器的路径。

ContainerRegistryReference

专用容器注册表。

ContainerWorkingDirectory

ContainerWorkingDirectory 枚举

DependencyAction

DependencyAction 枚举

ElevationLevel

高程层枚举

EnvironmentSetting

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

ExitCodeMapping

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

ExitCodeRangeMapping

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

ExitConditions

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

ExitOptions

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

MultiInstanceSettings

多实例任务通常用于支持 MPI 任务。 在 MPI 情况下,如果任何子任务都失败(例如由于退出并包含非零退出代码),则整个多实例任务会失败。 然后终止并重试多实例任务,达到其重试限制。

NameValuePair

表示名称/值对。

OutputFile

每次上传文件时,Batch 服务都会将两个日志文件写入计算节点“fileuploadout.txt”和“fileuploaderr.txt”。 这些日志文件用于了解有关特定故障的详细信息。

OutputFileBlobContainerDestination

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

OutputFileDestination

文件应上传到的目标。

OutputFileUploadCondition

OutputFileUploadCondition 枚举

OutputFileUploadConfig

输出文件上传操作的选项,包括执行上传的条件。

OutputFileUploadHeader

HTTP 标头名称值对

ResourceFile

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

UserIdentity

运行任务的用户标识的定义。 指定 userName 或 autoUser 属性,但不能同时指定这两者。

AuthenticationTokenSettings

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

名称 类型 说明
access

BatchAccessScope[]

批处理资源,令牌授予访问权限。 认证令牌允许访问有限的批处理服务作。 目前访问属性唯一支持的值是“job”,它允许访问包含该任务的所有与作业相关的作。

AutoUserScope

AutoUserScope 枚举

说明
task

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

pool

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

AutoUserSpecification

指定运行 Azure Batch 任务的自动用户的选项。

名称 类型 说明
elevationLevel

ElevationLevel

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

scope

AutoUserScope

自动用户的范围。 默认值为池。 如果池正在运行 Windows,则应指定任务值(如果需要在任务之间进行更严格的隔离)。 例如,如果任务以可能影响其他任务的方式更改注册表。

BatchAccessScope

BatchAccessScope 枚举

说明
job

允许对包含该任务的作业执行所有作。

BatchAffinityInfo

Batch 服务可以使用的区域提示选择要在其中启动任务的计算节点。

名称 类型 说明
affinityId

string

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

BatchApplicationPackageReference

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

名称 类型 说明
applicationId

string

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

version

string

要部署的应用程序的版本。 如果省略,则部署默认版本。 如果池中省略了这一点,且该应用未指定默认版本,请求将失败,错误代码为 InvalidApplicationPackageReferences 和 HTTP 状态代码 409。 如果任务中省略了这一点,且该应用未指定默认版本,任务将因预处理错误而失败。

BatchError

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

名称 类型 说明
code

string

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

message

BatchErrorMessage

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

values

BatchErrorDetail[]

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

BatchErrorDetail

Azure Batch 错误响应中包含的附加信息项。

名称 类型 说明
key

string

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

value

string

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

BatchErrorMessage

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

名称 类型 说明
lang

string

错误消息的语言代码。

value

string

消息的文本。

BatchErrorSourceCategory

BatchErrorSourceCategory 枚举

说明
usererror

错误是由于用户问题,比如配置错误。

servererror

错误是由于服务器内部出现问题。

BatchJobActionKind

BatchJobAction 枚举

说明
none

不执行任何作。

disable

关闭工作。 这相当于调用 disable Job API,但 disableTasks 值为 requeue。

terminate

终止这份工作。 作业执行信息中的终止原因设置为“任务失败”。

BatchNodeIdentityReference

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

名称 类型 说明
resourceId

string (arm-id)

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

BatchNodeInfo

有关运行任务的计算节点的信息。

名称 类型 说明
affinityId

string

任务运行的节点标识符,可在添加任务请求调度该计算节点时传递。

nodeId

string

任务运行的计算节点的ID。

nodeUrl

string (uri)

任务运行的计算节点的URL。

poolId

string

任务运行池的ID。

taskRootDirectory

string

任务在计算节点上的根目录。

taskRootDirectoryUrl

string (uri)

任务在计算节点上的根目录的URL。

BatchTask

当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。

名称 类型 说明
affinityInfo

BatchAffinityInfo

一个局部性提示,批处理服务可以用来选择一个计算节点来启动新任务。

applicationPackageReferences

BatchApplicationPackageReference[]

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

authenticationTokenSettings

AuthenticationTokenSettings

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

commandLine

string

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

constraints

BatchTaskConstraints

适用于该任务的执行约束。

containerSettings

BatchTaskContainerSettings

任务运行容器的设置。 如果执行该任务的池设置了containerConfiguration,也必须设置。 如果执行该任务的池没有设置 containerConfiguration ,那么必须不设置。 当指定时,AZ_BATCH_NODE_ROOT_DIR(节点上 Azure Batch 目录的根节点)下方的所有目录递归映射到容器中,所有任务环境变量映射到容器中,任务命令行在容器中执行。 容器中AZ_BATCH_NODE_ROOT_DIR外生成的文件可能不会反映到主机磁盘,这意味着批处理文件API无法访问这些文件。

creationTime

string (date-time)

任务的创建时间。

dependsOn

BatchTaskDependencies

这项任务所依赖的任务。 该任务在所有依赖任务成功完成后才会被调度。 如果这些任务中的任何一个失败并用尽重试次数,该任务将永远不会被安排。

displayName

string

任务的显示名称。 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。

eTag

string

任务的ETag。 这是一个不透明的字符串。 你可以用它检测任务在请求之间是否发生了变化。 特别是,在更新任务时,你可以通过ETag,指定只有在没有其他人修改该任务时,你的更改才会生效。

environmentSettings

EnvironmentSetting[]

任务的环境变量设置列表。

executionInfo

BatchTaskExecutionInfo

关于任务执行的信息。

exitConditions

ExitConditions

任务完成时批处理服务应如何响应。

id

string

一个唯一标识任务的字符串。 ID 可以包含字母数字字符(包括连字符和下划线)的任意组合,并且不能包含超过 64 个字符。

lastModified

string (date-time)

任务的最后修正时间。

multiInstanceSettings

MultiInstanceSettings

一个表示任务是多实例任务的对象,包含如何运行多实例任务的信息。

nodeInfo

BatchNodeInfo

关于任务运行的计算节点的信息。

outputFiles

OutputFile[]

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

previousState

BatchTaskState

任务的前一阶段。 如果任务处于初始活跃状态,则该属性不被设置。

previousStateTransitionTime

string (date-time)

任务进入之前状态的时间点。 如果任务处于初始活跃状态,则该属性不被设置。

requiredSlots

integer (int32)

任务运行所需的调度时隙数。 默认值为 1。 只有当节点有足够的空闲调度槽时,任务才能被调度到计算节点上运行。 对于多实例任务,这必须是1.

resourceFiles

ResourceFile[]

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

state

BatchTaskState

任务的现状。

stateTransitionTime

string (date-time)

任务进入当前状态的时间。

stats

BatchTaskStatistics

任务的资源使用统计数据。

url

string (uri)

任务的网址。

userIdentity

UserIdentity

任务运行的用户身份。 如果省略,任务将作为任务独一无二的非管理员用户运行。

BatchTaskConstraints

要应用于任务的执行约束。

名称 类型 说明
maxTaskRetryCount

integer (int32)

可以重试任务的最大次数。 如果 Batch 服务退出代码为非零,则重试任务。 注意,这个值特别控制任务可执行程序的重试次数,因为退出码不是零。 Batch 服务将尝试一次任务,然后可能会重试到此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试次数为0,批处理服务在第一次尝试后不会重试任务。 如果最大重试计数为 -1,Batch 服务将重试任务,但不建议用于启动任务或任何任务。 默认值为 0(无重试)。

maxWallClockTime

string (duration)

任务可运行的最大时间,从任务开始时间计算。 如果任务在时间限制内未完成,批处理服务会终止任务。 如果未明确说明,任务时间无限制。

retentionTime

string (duration)

任务目录在运行的计算节点上,从执行完成起的最小时间。 此后,批处理服务可能会删除任务目录及其所有内容。 默认为7天,也就是说,除非计算节点被移除或作业被删除,否则任务目录将保留7天。

BatchTaskContainerExecutionInfo

包含有关任务正在执行的容器的信息。

名称 类型 说明
containerId

string

容器的 ID。

error

string

关于容器的详细错误信息。 这是Docker服务中详细的错误字符串(如果有的话)。 它等同于“docker inspect”返回的错误字段。

state

string

集装箱的状态。 这是根据 Docker 服务显示的容器状态。 它等同于“docker inspect”返回的status字段。

BatchTaskContainerSettings

任务的容器设置。

名称 类型 说明
containerHostBatchBindMounts

ContainerHostBatchBindMountEntry[]

要装载到容器任务的路径。 如果此数组为 null 或不存在,容器任务将在 Windows 中装载整个临时磁盘驱动器(或 Linux 中的AZ_BATCH_NODE_ROOT_DIR)。 如果此数组设置为空,则不会将任何数据路径装载到容器中。

containerRunOptions

string

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

imageName

string

用于创建任务运行容器的图片。 这是完整的映像引用,正如“docker pull”中指定的那样。 如果图片名称中没有提供标签,默认使用标签“:latest”。

registry

ContainerRegistryReference

包含容器镜像的私有注册表。 如果在创建池时已经提供了该设置,可以省略。

workingDirectory

ContainerWorkingDirectory

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

BatchTaskDependencies

指定任务的任何依赖项。 显式指定或依赖范围内的任何任务都必须在计划依赖任务之前完成。

名称 类型 说明
taskIdRanges

BatchTaskIdRange[]

该任务依赖的任务ID范围列表。 所有范围内的所有任务必须成功完成,才能调度相关的任务。

taskIds

string[]

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

BatchTaskExecutionInfo

有关任务执行的信息。

名称 类型 说明
containerInfo

BatchTaskContainerExecutionInfo

关于任务执行容器的信息。 该属性仅在任务在容器上下文中运行时设置。

endTime

string (date-time)

任务完成的时间。 该属性仅在任务处于完成状态时设置。

exitCode

integer (int32)

任务命令行中指定的程序退出代码。 该属性仅在任务处于完成状态时设置。 一般来说,进程的出口代码反映了应用开发者为该进程实现的特定约定。 如果你用退出代码值来做代码决策,务必了解应用过程中使用的退出代码惯例。 然而,如果批处理服务因超时或用户通过API终止任务而终止任务,你可能会看到作系统定义的退出码。

failureInfo

BatchTaskFailureInfo

描述任务失败的信息(如果有的话)。 该属性仅在任务处于完成状态并遇到失败时设置。

lastRequeueTime

string (date-time)

任务最近一次因用户请求而被批处理服务重新排队的时间点。 该属性仅在 requeueCount 非零时设置。

lastRetryTime

string (date-time)

最近一次任务重试开始运行。 该元素仅在任务被重试时出现(即retryCount非零)。 如果存在,通常与 startTime 相同,但如果任务因非重试原因被重启,可能会不同;例如,如果计算节点在重试过程中被重启,那么startTime会更新,但lastRetryTime不会更新。

requeueCount

integer (int32)

任务因用户请求而被批处理服务重新排队的次数。 当用户通过调整/缩小池来移除计算节点或作业被禁用时,用户可以指定计算节点上的任务重新排队执行。 该计数记录了任务因这些原因被重新排队的次数。

result

BatchTaskExecutionResult

任务执行的结果。 如果该值为“失败”,那么失败的详细信息可以在 failureInfo 属性中找到。

retryCount

integer (int32)

任务被批处理服务重试的次数。 任务应用失败(非零退出码)会重试,预处理错误(任务无法执行)和文件上传错误不会重试。 批处理服务会在约束限制范围内重试任务。

startTime

string (date-time)

任务开始运行的时间。 “运行中”对应于运行状态,因此如果任务指定了资源文件或包,那么启动时间反映了任务开始下载或部署这些文件的时间。 如果任务已被重启或重试,则该任务最近一次开始运行。 该属性仅适用于处于运行中或已完成状态的任务。

BatchTaskExecutionResult

BatchTaskExecutionResult 枚举

说明
success

任务顺利进行。

failure

任务处理过程中出现了错误。 失败可能发生在任务进程启动前、任务进程执行中,或任务进程退出后。

BatchTaskFailureInfo

有关任务失败的信息。

名称 类型 说明
category

BatchErrorSourceCategory

任务错误的类别。

code

string

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

details

NameValuePair[]

与该错误相关的额外细节列表。

message

string

描述任务错误的消息,旨在用于用户界面显示。

BatchTaskIdRange

范围的开始和结束是包容性的。 例如,如果某个范围具有 9 开始和结束 12,则表示任务“9”、“10”、“11”和“12”。

名称 类型 说明
end

integer (int32)

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

start

integer (int32)

该范围内的第一个任务ID。

BatchTaskState

BatchTaskState 枚举

说明
active

任务已排队并可运行,但目前未分配给计算节点。 任务在创建时、被禁用后启用,或在失败运行后等待重试时进入该状态。

preparing

任务已被分配给计算节点,但正在等待计算节点上的一项必备作业任务完成。 如果作业准备任务成功,任务将进入运行状态。 如果作业准备任务失败,该任务将恢复为活动状态,并有资格分配到不同的计算节点。

running

任务运行在计算节点上。 这包括任务层级的准备工作,如下载资源文件或部署任务指定的包——这并不一定意味着任务命令行已经开始执行。

completed

任务不再有资格运行,通常是因为任务已成功完成,或者任务未完成且已用尽重试次数。 如果任务启动时发生错误,或任务已被终止,任务也会被标记为已完成。

BatchTaskStatistics

任务的资源使用情况统计信息。

名称 类型 说明
kernelCPUTime

string (duration)

任务消耗的内核模式CPU总时间(涵盖所有核心和所有计算节点)。

lastUpdateTime

string (date-time)

统计数据最后更新的时间。 所有统计数据均限于startTime到lastUpdateTime之间的范围。

readIOGiB

number (float)

任务从磁盘读取的总gibibytes。

readIOps

string (int64)

任务完成的磁盘读取作总数。

startTime

string (date-time)

统计数据涵盖的时间范围的开始时间。

url

string (uri)

统计数据的网址。

userCPUTime

string (duration)

任务消耗的用户模式CPU总时间(涵盖所有核心和所有计算节点)。

waitTime

string (duration)

任务的总等待时间。 任务的等待时间定义为任务创建与任务执行开始之间的时间。 (如果任务因失败而重试,等待时间即为最近一次任务执行的时间。)

wallClockTime

string (duration)

任务的总计时。 墙时钟时间是指任务开始在计算节点运行到完成(或如果任务尚未完成,统计数据最后更新时间)的经过时间。 如果任务被重试,这也包括所有任务重试的墙时钟时间。

writeIOGiB

number (float)

任务写入磁盘的总gibibytes。

writeIOps

string (int64)

任务完成的磁盘写入作总数。

ContainerHostBatchBindMountEntry

要装载到任务容器的路径和装载模式的条目。

名称 类型 说明
isReadOnly

boolean

将此源路径装载为只读模式或不装载。 默认值为 false(读/写模式)。 对于 Linux,如果将此路径装载为读/写模式,这并不意味着容器中的所有用户都具有路径的读/写访问权限,这取决于主机 VM 中的访问。 如果此路径装载为只读,则容器中的所有用户将无法修改路径。

source

ContainerHostDataPath

装载到容器客户的路径可以选择。

ContainerHostDataPath

将装载到容器任务的容器的路径。

说明
Shared

用于共享其文件的多实例任务的路径。

Startup

启动任务的路径。

VfsMounts

该路径包含此节点上装载的所有虚拟文件系统。

Task

任务路径。

JobPrep

作业准备任务路径。

Applications

应用程序路径。

ContainerRegistryReference

专用容器注册表。

名称 类型 说明
identityReference

BatchNodeIdentityReference

对用于访问 Azure 容器注册表(而不是用户名和密码)的用户分配标识的引用。

password

string (password)

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

registryServer

string (uri)

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

username

string

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

ContainerWorkingDirectory

ContainerWorkingDirectory 枚举

说明
taskWorkingDirectory

使用标准的批处理服务任务工作目录,该目录将包含由批处理填充的任务资源文件。

containerImageDefault

使用容器 Image 中定义的工作目录。 注意该目录不会包含批处理下载的资源文件。

DependencyAction

DependencyAction 枚举

说明
satisfy

满足等待任务的任务;一旦满足所有依赖关系,任务将被安排执行。

block

阻断等待该任务的任务,阻止它们被安排。

ElevationLevel

高程层枚举

说明
nonadmin

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

admin

用户是具有提升访问权限并具有完全管理员权限的用户。

EnvironmentSetting

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

名称 类型 说明
name

string

环境变量的名称。

value

string

环境变量的值。

ExitCodeMapping

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

名称 类型 说明
code

integer (int32)

一个进程退出代码。

exitOptions

ExitOptions

如果任务以这个退出代码退出,批处理服务应该如何响应。

ExitCodeRangeMapping

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

名称 类型 说明
end

integer (int32)

范围内最后一个出口代码。

exitOptions

ExitOptions

如果任务结束时的退出代码范围在开始到结束范围内(包括所有),批处理服务应该如何响应。

start

integer (int32)

这是该范围的第一个出口代码。

ExitConditions

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

名称 类型 说明
default

ExitOptions

如果任务失败且出现其他属性未涵盖的退出条件,批处理服务应如何响应。 如果任务退出时带有任何非零的退出代码,则使用该值;如果不存在 preProcessingError 属性,则使用该值;如果没有 fileUploadError 属性,则使用文件上传错误。 如果你想在退出代码0上实现非默认行为,必须用exitCodes或exitCodeRanges集合明确列出它。

exitCodeRanges

ExitCodeRangeMapping[]

任务退出代码范围列表以及批处理服务应如何响应这些代码。

exitCodes

ExitCodeMapping[]

列出单个任务的退出代码,以及批处理服务应如何响应这些代码。

fileUploadError

ExitOptions

如果发生文件上传错误,批处理服务应如何响应。 如果任务以通过 exitCodes 或 exitCodeRange 指定的退出代码退出,并且遇到文件上传错误,则退出代码指定的作优先执行。

preProcessingError

ExitOptions

如果任务因错误未能启动,批处理服务应如何响应。

ExitOptions

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

名称 类型 说明
dependencyAction

DependencyAction

批处理服务对依赖该任务的任务执行的作。 可能的值有“满足”(允许依赖任务继续推进)和“阻断”(依赖任务继续等待)。 批处理目前还不支持取消依赖任务。

jobAction

BatchJobActionKind

如果任务以给定的退出条件完成且作业的onTaskfailed属性为“performExitOptionsJobAction”,则该任务包含该任务时执行的作。 出口代码0时默认为无,其他退出条件为终止。 如果作业的 onTaskFailed 属性是 noaction,那么指定该属性会返回错误,添加任务请求会以无效属性值错误失败;如果你直接调用 REST API,HTTP 状态码是 400(错误请求)。

MultiInstanceSettings

多实例任务通常用于支持 MPI 任务。 在 MPI 情况下,如果任何子任务都失败(例如由于退出并包含非零退出代码),则整个多实例任务会失败。 然后终止并重试多实例任务,达到其重试限制。

名称 类型 说明
commonResourceFiles

ResourceFile[]

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

coordinationCommandLine

string

命令行可在所有计算节点上运行,以便它们在主节点运行主任务命令时协调。 典型的协调命令行会启动后台服务,并验证服务是否准备好处理节点间消息。

numberOfInstances

integer (int32)

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

NameValuePair

表示名称/值对。

名称 类型 说明
name

string

名字和值对中的名称。

value

string

名称-值对中的值。

OutputFile

每次上传文件时,Batch 服务都会将两个日志文件写入计算节点“fileuploadout.txt”和“fileuploaderr.txt”。 这些日志文件用于了解有关特定故障的详细信息。

名称 类型 说明
destination

OutputFileDestination

输出文件的目的地。

filePattern

string

一个指示上传文件的模式。 支持相对路径和绝对路径。 相对路径相对于任务工作目录。 支持以下通配符:* 匹配 0 个或多个字符(例如 pattern abc* 会匹配 abc 或 abcdef),** 匹配任意目录,? 匹配任意单个字符,[ABC] 匹配括号中的一个字符,[a-c] 匹配范围中的一个字符。 括号可以包含一个否定,以匹配任何未指定的字符(例如[!abc]匹配除a、b或c外的任何字符)。 如果文件名以“.”开头,默认会忽略,但可以通过明确指定来匹配(例如 .gif 不会匹配 .a.gif,但。.gif 会匹配 )。 一个简单的例子:***.txt 匹配任务工作目录中任何不以'.'开头、以 .txt 结尾的文件,在任务工作目录或任何子目录中。 如果文件名包含万用字符,可以用括号转义(例如,abc[] 会匹配名为 abc 的文件)。 注意,在Windows上\和/都被视为目录分隔符,但在Linux上只有/。 环境变量(Windows上的%var% 或Linux上的$var)在应用模式之前会被展开。

uploadOptions

OutputFileUploadConfig

上传作的额外选项,包括在何种条件下进行上传。

OutputFileBlobContainerDestination

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

名称 类型 说明
containerUrl

string (uri)

Azure Blob 存储中要上传文件的容器的 URL。 如果不使用托管身份,URL必须包含共享访问签名(SAS),赋予容器写权限。

identityReference

BatchNodeIdentityReference

这是用来访问 Azure Blob 存储(由 containerUrl 指定的)用户指定的身份引用。 身份必须有写入 Azure Blob 存储容器的权限。

path

string

Azure Storage 容器内的目的地 blob 或虚拟目录。 如果filePattern指的是特定文件(即不包含万用符),那么path是上传该文件的blob名称。 如果filePattern包含一个或多个万用符(因此可能匹配多个文件),那么path是blob虚拟目录的名称(每个blob名称前加),用于上传文件。 如果省略,文件会上传到容器根节点,blob 名称与其文件名相匹配。

uploadHeaders

OutputFileUploadHeader[]

一份用于上传输出文件时用于首部的名称-值对列表。 这些头部将在上传文件到Azure存储时指定。 关于上传blob时允许的头部的官方文档: https://learn.microsoft.com/rest/api/storageservices/put-blob#request-headers-all-blob-types

OutputFileDestination

文件应上传到的目标。

名称 类型 说明
container

OutputFileBlobContainerDestination

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

OutputFileUploadCondition

OutputFileUploadCondition 枚举

说明
tasksuccess

只有在任务进程结束后,以出口码为0才上传文件。

taskfailure

只有在任务进程以非零退出码退出后才上传文件。

taskcompletion

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

OutputFileUploadConfig

输出文件上传操作的选项,包括执行上传的条件。

名称 类型 说明
uploadCondition

OutputFileUploadCondition

任务输出文件或文件集应在何种条件下上传。 默认是任务完成。

OutputFileUploadHeader

HTTP 标头名称值对

名称 类型 说明
name

string

上传输出文件时使用的头部名称,大小写无区。

value

string

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

ResourceFile

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

名称 类型 说明
autoStorageContainerName

string

自动存储账户中的存储容器名称。 autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。

blobPrefix

string

从 Azure 存储容器下载 Blob 时要使用的 Blob 前缀。 仅下载名称以指定前缀开头的 blob。 仅当使用 autoStorageContainerName 或 storageContainerUrl 时,该属性才有效。 此前缀可以是部分文件名或子目录。 如果未指定前缀,则会下载容器中的所有文件。

fileMode

string

以八进制格式的文件权限模式属性。 该特性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 计算节点的资源文件指定了该文件,则该文件将被忽略。 如果Linux计算节点未指定该属性,则默认值为0770。

filePath

string

计算节点上相对于任务工作目录下载文件的位置。 如果指定了 httpUrl 属性,则需要 filePath,并描述文件将下载到的路径,包括文件名。 否则,如果指定 autoStorageContainerName 或 storageContainerUrl 属性,则 filePath 是可选的,并且是将文件下载到的目录。 如果 filePath 用作目录,则与输入数据关联的任何目录结构都将完整保留并追加到指定的 filePath 目录。 指定的相对路径不能从任务的工作目录中跳出(例如使用“..”)。

httpUrl

string (uri)

要下载的文件的 URL。 autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 如果 URL 指向 Azure Blob 存储,则必须从计算节点读取该 URL。 可通过三种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),使用具有读取权限的托管标识,或为 Blob 或其容器设置 ACL 以允许公共访问。

identityReference

BatchNodeIdentityReference

指的是用来访问 Azure Blob 存储的用户指定身份,由 storageContainerUrl 或 httpURL 指定。

storageContainerUrl

string (uri)

Azure Blob 存储中 Blob 容器的 URL。 autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 此 URL 必须可从计算节点读取和列出。 可通过三种方法获取 Azure 存储中容器的此类 URL:包括授予对容器的读取和列表权限的共享访问签名(SAS),使用具有读取和列表权限的托管标识,或为容器设置 ACL 以允许公共访问。

UserIdentity

运行任务的用户标识的定义。 指定 userName 或 autoUser 属性,但不能同时指定这两者。

名称 类型 说明
autoUser

AutoUserSpecification

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

username

string

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