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

Task - Add

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

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 参数

名称 必需 类型 说明
batchUrl
path True

string

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

jobId
path True

string

要向其添加任务的作业的 ID。

api-version
query True

string

客户端 API 版本。

timeout
query

integer

int32

服务器处理请求的最长时间(以秒为单位)。 默认值为 30 秒。 如果该值大于 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

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

id True

string

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

affinityInfo

AffinityInformation

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

applicationPackageReferences

ApplicationPackageReference[]

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

authenticationTokenSettings

AuthenticationTokenSettings

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

constraints

TaskConstraints

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

containerSettings

TaskContainerSettings

任务在其中运行的容器的设置。
如果运行此任务的池已设置 containerConfiguration 集,则还必须设置该池。 如果运行此任务的池没有 containerConfiguration 集,则不能设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。

dependsOn

TaskDependencies

此任务所依赖的任务。
除非它依赖的所有任务都成功完成,否则不会计划此任务。 如果其中任一任务失败并耗尽其重试计数,则永远不会计划此任务。 如果作业没有将 UsesTaskDependencies 设置为 true,并且此元素存在,则请求将失败并显示错误代码 TaskDependenciesNotSpecifiedOnJob。

displayName

string

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

environmentSettings

EnvironmentSetting[]

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

exitConditions

ExitConditions

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

multiInstanceSettings

MultiInstanceSettings

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

outputFiles

OutputFile[]

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

requiredSlots

integer

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

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

运行任务的用户标识。
如果省略,任务将作为任务唯一的非管理用户运行。

响应

名称 类型 说明
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
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/authorize

作用域

名称 说明
user_impersonation 模拟用户帐户

Authorization

类型: apiKey
在: header

示例

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"
}

示例响应

定义

名称 说明
AccessScope

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

AffinityInformation

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

ApplicationPackageReference

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

AuthenticationTokenSettings

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

AutoUserScope

自动用户的范围

AutoUserSpecification

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

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

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

MultiInstanceSettings

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

OutputFile

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

OutputFileBlobContainerDestination

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

OutputFileDestination

文件应上传到的目标。

OutputFileUploadCondition

任务输出文件或文件集应上载的条件。

OutputFileUploadOptions

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

ResourceFile

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

TaskAddParameter

要添加的 Azure Batch 任务。

TaskConstraints

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

TaskContainerSettings

任务的容器设置。

TaskDependencies

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

TaskIdRange

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

UserIdentity

运行任务的用户标识的定义。

AccessScope

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

名称 类型 说明
job

string

授予对包含任务的作业执行所有操作的权限。

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。 如果在任务上省略了此项,并且没有为此应用程序指定默认版本,则任务会失败并出现预处理错误。

AuthenticationTokenSettings

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

名称 类型 说明
access

AccessScope[]

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

AutoUserScope

自动用户的范围

名称 类型 说明
pool

string

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

task

string

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

AutoUserSpecification

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

名称 类型 说明
elevationLevel

ElevationLevel

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

scope

AutoUserScope

自动用户的范围
默认值为池。 如果池正在运行 Windows,则应指定任务值(如果需要在任务之间进行更严格的隔离)。 例如,如果任务以可能影响其他任务的方式改变注册表,或者已在池中指定了证书,而该池中不应通过正常任务访问,但应可由 StartTasks 访问。

BatchError

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

名称 类型 说明
code

string

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

message

ErrorMessage

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

values

BatchErrorDetail[]

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

BatchErrorDetail

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

名称 类型 说明
key

string

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

value

string

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

ComputeNodeIdentityReference

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

名称 类型 说明
resourceId

string

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

ContainerHostBatchBindMountEntry

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

名称 类型 说明
isReadOnly

boolean

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

source

ContainerHostDataPath

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

ContainerHostDataPath

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

名称 类型 说明
Applications

string

应用程序路径。

JobPrep

string

作业准备任务路径。

Shared

string

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

Startup

string

启动任务的路径。

Task

string

任务路径。

VfsMounts

string

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

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 服务应如何响应。
如果在 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

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

HttpHeader

HTTP 标头名称值对

名称 类型 说明
name

string

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

value

string

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

JobAction

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

名称 类型 说明
disable

string

禁用作业。 这等效于调用禁用作业 API,并具有 disableTasks 重新排队值。

none

string

不执行任何操作。

terminate

string

终止作业。 作业的执行Info 中的 terminateReason 设置为“TaskFailed”。

MultiInstanceSettings

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

名称 类型 说明
commonResourceFiles

ResourceFile[]

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

coordinationCommandLine

string

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

numberOfInstances

integer

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

OutputFile

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

名称 类型 说明
destination

OutputFileDestination

输出文件的目标。

filePattern

string

指示要上传的文件的模式。
支持相对路径和绝对路径。 相对路径相对于 Task 工作目录。 支持以下通配符:* 匹配 0 个或多个字符(例如模式 abc* 将匹配 abc 或 abcdef),** 匹配任何目录? 匹配任何单个字符,[abc] 匹配括号中的一个字符,[a-c] 匹配区域中的一个字符。 括号可以包含求反,以匹配未指定的任何字符(例如 [!abc] 匹配任何字符,但 b 或 c)。 如果文件名以“.”开头,则默认将其忽略,但可通过显式指定它进行匹配(例如,.gif 与 .a.gif不匹配,但会匹配。.gif)。 一个简单的示例:***.txt 匹配任何不以“.”开头的文件,并在任务工作目录中或任何子目录中以 .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 引用特定文件(即不包含通配符),则路径是要上传到该文件的 blob 的名称。 如果 filePattern 包含一个或多个通配符(因此可能与多个文件匹配),则路径是 Blob 虚拟目录的名称(前面追加到每个 blob 名称),以便将文件上传到其中。 如果省略,文件将上传到容器的根目录,其 blob 名称与其文件名匹配。

uploadHeaders

HttpHeader[]

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

OutputFileDestination

文件应上传到的目标。

名称 类型 说明
container

OutputFileBlobContainerDestination

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

OutputFileUploadCondition

任务输出文件或文件集应上载的条件。

名称 类型 说明
taskcompletion

string

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

taskfailure

string

仅在任务进程退出并带有非零退出代码后上传文件。

tasksuccess

string

仅在任务进程退出且退出代码为 0 后上传文件。

OutputFileUploadOptions

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

名称 类型 说明
uploadCondition

OutputFileUploadCondition

任务输出文件或文件集应上载的条件。
默认值为 taskcompletion。

ResourceFile

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

名称 类型 说明
autoStorageContainerName

string

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

blobPrefix

string

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

fileMode

string

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

filePath

string

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

httpUrl

string

要下载的文件的 URL。
autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 如果 URL 指向 Azure Blob 存储,则必须从计算节点读取该 URL。 可通过三种方法获取 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 任务。

名称 类型 说明
affinityInfo

AffinityInformation

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

applicationPackageReferences

ApplicationPackageReference[]

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

authenticationTokenSettings

AuthenticationTokenSettings

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

commandLine

string

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

constraints

TaskConstraints

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

containerSettings

TaskContainerSettings

任务在其中运行的容器的设置。
如果运行此任务的池已设置 containerConfiguration 集,则还必须设置该池。 如果运行此任务的池没有 containerConfiguration 集,则不能设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。

dependsOn

TaskDependencies

此任务所依赖的任务。
除非它依赖的所有任务都成功完成,否则不会计划此任务。 如果其中任一任务失败并耗尽其重试计数,则永远不会计划此任务。 如果作业没有将 UsesTaskDependencies 设置为 true,并且此元素存在,则请求将失败并显示错误代码 TaskDependenciesNotSpecifiedOnJob。

displayName

string

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

environmentSettings

EnvironmentSetting[]

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

exitConditions

ExitConditions

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

id

string

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

multiInstanceSettings

MultiInstanceSettings

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

outputFiles

OutputFile[]

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

requiredSlots

integer

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

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

运行任务的用户标识。
如果省略,任务将作为任务唯一的非管理用户运行。

TaskConstraints

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

名称 类型 说明
maxTaskRetryCount

integer

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

maxWallClockTime

string

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

retentionTime

string

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

TaskContainerSettings

任务的容器设置。

名称 类型 说明
containerHostBatchBindMounts

ContainerHostBatchBindMountEntry[]

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

containerRunOptions

string

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

imageName

string

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

registry

ContainerRegistry

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

workingDirectory

ContainerWorkingDirectory

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

TaskDependencies

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

名称 类型 说明
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 属性互斥;必须指定一个,但不能同时指定两者。