你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
批处理服务 REST API 版本控制
批处理服务 REST API 提供的操作可能具有多个版本,随着 API 的不断发展,这些版本可以实现向后兼容。 在调用某个操作时,必须通过在 REST 调用中提供版本来指定你想要使用的操作版本。 如果应用程序调用某个旧版操作,你可以选择继续调用该旧版本,也可以对代码进行修改以便调用较新版本。 如果未指定版本或指定了不正确的版本,则返回错误。
若要指定要使用的操作版本,请设置 api-version 查询参数。 版本的格式为 Group.Major.Minor,其中,Group 采用“YYYY-MM-DD”格式,Major 是一个整数,Minor 也是一个整数。
最新版本:2023-05-01.17.0
- [中断]删除了 Batch 作业/池生存期统计信息 API:
lifetimejobstats
和lifetimepoolstats
。 - 向 添加了布尔属性
enableAcceleratedNetworking
NetworkConfiguration
。- 此属性确定此池是否应启用加速网络,默认值为 False。
- 能否启用此功能还与是否支持操作系统/VM 实例有关,该实例应与 AcceleratedNetworking 策略保持一致。
- 向 添加了布尔属性
enableAutomaticUpgrade
VMExtension
。- 此属性确定在有较新版本的扩展可用时,平台是否应自动升级扩展。
- 的
ContainerConfiguration
属性type
现在支持两个值:DockerCompatible
和CriCompatible
。
早期版本
以前的版本包括:
- 2022-10-01.16.0
- 2022-01-01.15.0
- 2021-06-01.14.0
- 2020-09-01.12.0
- 2020-03-01.11.0
- 2019-08-01.10.0
- 2019-06-01.9.0
- 2018-12-01.8.0
- 2018-08-01.7.0
- 2018-03-01.6.1
- 2017-09-01.6.0
- 2017-06-01.5.1
- 2017-05-01.5.0
- 2017-01-01.4.0
- 2016-07-01.3.1
- 2016-02-01.3.0
- 2015-12-01.2.2
- 2015-11-01.2.1
- 2015-06-01.2.0
- 2015-03-01.1.1
- 2014-10-01.1.0
版本:2022-10-01.16.0
- 添加了新
NodeCommunicationMode
属性,用于确定池如何与 Batch 服务通信 - 向模型添加了 类型的
CloudPool
新currentNodeCommunicationMode
属性NodeCommunicationMode
,以引用池通信模式的当前状态。 - 向以下模型添加了 类型的新
targetNodeCommunicationMode
属性NodeCommunicationMode
,以引用池的所需节点通信模式:
版本:2022-01-01.15.0
- 向模型添加了新
uploadHeaders
属性,OutputFileBlobContainerDestination
以允许用户在资源文件上传时设置自定义 HTTP 标头。 - 向以下模型添加了新
allowTaskPreemption
属性,以支持更高优先级的任务抢占, (需要Comms-Enabled或单租户池) :
版本:2021-06-01.14.0
- 添加了将用户分配的托管标识分配给
CloudPool
的功能。 这些标识将在池中的每个节点上可用,并可用于访问各种资源。 - 向以下模型添加了
identityReference
属性,以支持通过托管标识访问资源: - 在 上
CloudPool
向 VirtualMachineConfiguration 添加了新extensions
属性,以指定节点的虚拟机扩展 - 添加了在 VirtualMachineConfiguration 上使用新属性
nodePlacementConfiguration
指定可用性区域的功能 - 向 VirtualMachineConfiguration 添加了新
osDisk
属性,其中包含虚拟机操作系统磁盘的设置。- 上的
placement
DiffDiskSettings
属性指定池中所有 VM 的操作系统磁盘的临时磁盘位置。 将其设置为“CacheDisk”会将临时 OS 磁盘存储在 VM 缓存中。
- 上的
- 在 上
CloudJob
添加了maxParallelTasks
属性来控制每个作业可以同时运行的最大任务数 (默认为 -1,这意味着无限) 。 此属性目前为个人预览版。 - 添加了
virtualMachineInfo
属性ComputeNode
,其中包含有关虚拟机当前状态的信息,包括 VM 正在使用的市场映像的确切版本。 - 向
Schedule
添加了recurrenceInterval
属性,以控制作业计划下两个连续作业的开始时间之间的间隔。
版本:2020-09-01.12.0
- [中断]将池中的 属性
maxTasksPerNode
taskSlotsPerNode
替换为 。 在作业中使用此属性任务可能会消耗动态数量的槽,从而可以更精细地控制资源消耗。 - [中断]更改了 的
GetTaskCounts
响应类型以返回TaskCountsResult
,这是一个包含上TaskCounts
一个 对象的复杂对象,以及一个新的TaskSlotCounts
对象,在正在使用的槽的上下文中提供类似信息。 - 向任务添加了 属性
requiredSlots
,允许用户指定节点上应占用的槽数。
版本:2020-03-01.11.0
- 添加了使用 的新
DiskEncryptionConfiguration
属性加密 ComputeNode 磁盘驱动器的功能VirtualMachineConfiguration
。 - [中断]的
virtualMachineImageId
ImageReference
属性现在只能引用共享映像库图像。 - [中断]
password
对于 PFX 格式的Add Certificate
证书,操作的请求正文的 属性是可选的。 - [中断]现在可以使用 的新
PublicIPAddressConfiguration
属性NetworkConfiguration
在不使用公共 IP 的情况下预配池。 - [中断]的
publicIPs
NetworkConfiguration
属性已重命名为ipAddressIds
,并且也已移动到PublicIPAddressConfiguration
。 仅当 属性为usermanaged
时provision
,才能指定此属性。
版本:2019-08-01.10.0
- 添加了通过池上的新
publicIPs
属性在 上NetworkConfiguration
指定公共 IP 集合的功能。 这可以保证池中的节点具有用户提供的 IP 列表中的 IP。 - 添加了通过
MountConfiguration
属性在池的每个节点上装载远程文件系统的功能。 - 现在,可以通过其 Azure 资源管理器 ID 引用映像,在 的
ImageReference
属性上virtualMachineImageId
指定共享映像库映像。 - [中断]如果未指定,则 on 的
waitForSuccess
默认值是true
以前 (,)false
。StartTask
- [中断]如果未指定,则 on 的
scope
默认值现在始终Pool
(以前,它在Task
Windows 节点上,Pool
在 Linux 节点上AutoUserSpecification
) 。 - 改进了各种令人困惑或不完整的文档。
版本:2019-06-01.9.0
[中断]已替换为
ListNodeAgentSKUs
ListSupportedImages
。ListSupportedImages
包含最初可用的所有相同信息,ListNodeAgentSKUs
但格式更清晰。 现在还会返回未验证的新映像。 有关Capabilities
和BatchSupportEndOfLife
的其他信息可通过 访问ImageInformation
。现在支持根据流量的源端口阻止对 的网络访问
CloudPool
的网络安全规则。 这通过NetworkSecurityGroupRule
上的SourcePortRanges
属性实现。运行容器时,Batch 现在支持在容器工作目录或 Batch 任务工作目录中执行任务。 这由
TaskContainerSettings
上的WorkingDirectory
属性控制。改进了各种令人困惑或不完整的文档。
版本:2018-12-01.8.0
[中断] 删除了对
upgradeos
池的支持cloudServiceConfiguration
。[中断]从
poolusagemetrics
中删除了dataEgressGiB
和dataIngressGiB
。 不再支持这些属性。[中断]
ResourceFile
改进- 添加了在 ResourceFile 中指定整个 Azure 存储容器的功能。 现在,ResourceFile 支持三种模式:
-
httpUrl
创建指向ResourceFile
单个 HTTP URL 的 。 -
storageContainerUrl
创建指向ResourceFile
Azure Blob 存储容器的 。 -
autoStorageContainerName
ResourceFile
在 Batch 注册的 autostorage 帐户中创建指向Azure Blob 存储容器的 。
-
- 通过
httpUrl
方法提供给 的ResourceFile
URL 现在可以是任何 HTTP URL。 以前,这些 URL 必须是Azure Blob 存储 URL。 -
blobPrefix
可用于将存储容器中的下载筛选为仅与前缀匹配的下载。
- 添加了在 ResourceFile 中指定整个 Azure 存储容器的功能。 现在,ResourceFile 支持三种模式:
[中断]从
VirtualMachineConfiguration
中删除了osDisk
属性。 不再支持此属性。将 设置为
dynamicVNetAssignmentScope
的NetworkConfiguration
job
池现在可以动态地将虚拟网络分配给运行作业任务的每个节点。 在 和JobSpecification
上的CloudJob
新JobNetworkConfiguration
属性中指定了将节点加入到 的特定虚拟网络。注意
此功能目前以公共预览版提供。 对于所有 Batch 帐户,除已联系我们并请求参与试点的帐户外,该帐户均处于禁用状态。
任务的最大生存期现在为 180 天, (以前是 7) 。
添加了对 Windows 池的支持,用于创建具有特定登录模式的用户 (
batch
或通过interactive
)LoginMode
。所有任务的默认任务保留时间现在为 7 天,以前是无限期的。
版本 2018-08-01.7.0
版本 2018-08-01.7.0 中的新功能包括:
- 通过 ComputeNode 上的新 NodeAgentInfo 属性查看 Azure Batch Node 代理的版本。
- 添加了在任务的 上
Result
指定Filter
的功能。 请参阅此处了解详细信息。- 这使经常请求的场景能够执行服务器端查询来查找所有失败的任务。
-
[中断]
ValidationStatus
从 TaskCounts 中删除了 属性。 -
[中断]DataDisk 和 OSDisk 的默认缓存类型现在
ReadWrite
为 而不是None
。 -
[中断] 将 ContainerType 的唯一值从
docker
重命名为dockerCompatible
。
版本 2018-03-01.6.1
版本 2018-03-01.6.1 中的新功能包括:
- 按状态列出的池节点计数:此版本增加了通过新的 ListPoolNodeCounts 操作按状态查询池节点计数的功能。 通过此操作,可以查询 Batch 帐户中的所有池中的节点状态,包括创建、空闲、脱机、抢占、重新启动、重置映像、启动等。
- 节点代理日志:此版本添加了通过 UploadBatchServiceLogs 操作从特定节点上传Azure Batch节点代理日志的功能。 如果节点上出现问题,则Microsoft 支持部门用于调试。
版本 2017-09-01.6.0
Azure 混合使用权益:现在可以创建 Batch Windows VM 池,指定使用 Azure 混合使用权益许可。 使用此许可时,将折扣应用于 VM 价格。 在 VirtualMachineConfiguration 上使用新的 LicenseType 属性。
池 VM 数据磁盘:可以使用虚拟机配置中的新数据磁盘配置,将一个或多个空数据磁盘附加到 VM 池。 使用 VirtualMachineConfiguration 上的 DataDisks 属性。
(中断性变更) 自定义映像现在使用 Azure 资源管理器映像资源而不是 Blob VHD 文件创建和部署。 Batch 现在使用托管磁盘来创建池 VM,因此使用 映像 资源。 现在,使用自定义映像创建的池中的 VM 数量没有限制;此外,不再需要大型池的 VHD Blob 的多个副本。 因此,创建和缩放自定义映像池要容易得多。 有关详细信息,请参阅使用自定义映像创建虚拟机池。
ImageReference 上的新 VirtualMachineImageId 属性包含对 Image 的引用,OSDisk.ImageUris 不再存在。
由于此更改, ImageReference 现在是 VirtualMachineConfiguration 的必需属性。
(中断性变更) 使用 MultiInstanceSettings) 创建的多实例任务 (现在必须指定 CoordinationCommandLine, NumberOfInstances 现在是可选的,默认为 1。
添加了对使用 Docker 容器运行的任务的支持。 若要使用 Docker 容器运行任务,必须在池的 VirtualMachineConfiguration 上指定 ContainerConfiguration,然后在任务上添加 TaskContainerSettings。
版本 2017-06-01.5.1
此处介绍的 Batch API 版本为 2017-06-01.5.1。 建议尽可能使用最新版本。
版本 2017-06-01.5.1 中的新功能包括:
- 通过新的“获取任务计数”操作支持高效 任务计数 。 通过调用“获取任务计数”操作,可以获取活动、正在运行和已完成的任务以及成功或失败的任务计数。 有关详细信息,请参阅按状态对作业中的任务进行计数(预览版)。
- 支持通过新的 poolEndpointConfiguration 属性在池计算节点上指定入站终结点。 通过设置此属性,可以在外部寻址节点上的特定端口。
版本 2017-05-01.5.0
以下部分概述了版本 2017-05-01.5.0 中的新增功能和更改功能。
重要
版本 2017-05-01.5.0 包括多个中断性变更。 请查看下面所述的重大更改并更新代码,以便调用版本 2017-05-01.5.0。
低优先级计算节点
Azure Batch现在提供低优先级计算节点来降低 Batch 工作负载的成本。 低优先级 VM 提供大量的经济型计算资源,使新型 Batch 工作负荷成为可能。
对低优先级节点的 REST API 进行了一些更改:
- (中断性变更) 池或池规范的 targetDedicated 和 currentDedicated 属性已重命名为 targetDedicatedNodes 和 currentComputeNodes。
- (中断性变更) 池的 resizeError 属性现在是一个名为 resizeErrors 的集合。
- 计算节点具有新的 isDedicated 属性。 对于专用节点,此属性为 true ,对于低优先级节点,此属性为 false 。
- 作业管理器任务具有新的 allowLowPriorityNode 属性。 如果此属性 为 true,则作业管理器任务可能在低优先级节点上运行。 如果为 false,则作业管理器任务将在专用计算节点上运行。
Linux 上的命名用户
Azure Batch现在为在 Linux 节点上创建命名用户提供了其他支持。
- 新的 linuxUserConfiguration 属性支持在创建 Linux 用户时指定 uid (用户 ID) 和 gid (组 ID) 。
- (中断性变更) sshPrivateKey 属性已从 userAccount 属性移动到新的 linuxUserConfiguration 属性。 linuxUserConfiguration 属性本身是 userAccount 属性的属性。
有关命名用户帐户的详细信息,请参阅 Batch 中的用户帐户下运行任务。
任务数据的输出文件
现在可以指定输出文件,以在任务完成后上传任务数据。
- 新的 outputFiles 属性支持指定要上传到 Azure 存储的任务文件。
- exitConditions 属性的新 fileUploadError 属性支持根据输出文件的上传状态指定要执行的操作。
任务错误报告
已进行多项更改,以改进任务错误的报告。
- executionInfo 属性的新 result 属性指示任务是成功还是失败。
- (中断性变更) executionInfo 属性的 schedulingError 属性已重命名为 failureInfo。 每当任务失败时,将返回 failureInfo 属性。 这包括之前的所有计划错误案例、返回非零任务退出代码的所有情况以及任何文件上传失败。
- (中断性变更) exitConditions 属性的 schedulingError 属性已重命名为 preProcessingError,以阐明任务生命周期中何时发生错误。
- (中断性变更) schedulingErrorCateogry 属性已重命名为 errorCategory。
应用程序许可证
现在,可以通过池或池规范上的新 applicationLicenses 属性请求将应用程序许可证预配到池。
版本 2017-01-01.4.0
此版本扩展了以前版本 2016-07-01.3.1 的所有支持。 此外,它还支持以下功能:
在指定的用户标识下运行任务。
现在可以在以下用户标识之一下运行任务或任务集合,该用户标识通过任务资源上的新 userIdentity 属性指定:
具有你定义的名称的用户帐户。
(自动用户) 创建的用户帐户。 自动用户可以以管理用户或非管理用户身份运行。 默认情况下,自动用户以非管理用户身份运行。
重要
userIdentity 属性及其 elevationLevel 属性替换添加任务或任务集合的请求中的 runElevated 属性,以及获取有关任务或该列表任务的信息的响应中的 runElevated 属性。
如果向 Batch 服务版本 2017-01-01.4.0 发出包含 runElevated 属性的请求,则请求将失败。
若要以管理用户身份运行,请将应用程序更新为使用 userIdentity 属性,并将 elevationLevel 属性设置为 admin。
若要以非管理用户身份运行,请将应用程序更新为使用 userIdentity 属性,并将 elevationLevel 属性设置为 nonAdmin。 由于这是默认设置,因此也可以省略设置。
跨池中所有节点定义用户帐户。
现在可以在池资源上定义的用户帐户下运行任务或任务集合。 在请求中添加池时,通过新的 userAccounts 属性定义用户帐户。 定义帐户时,可以指定帐户名称、密码、提升级别 (管理员或非管理员) ,以及) Linux 池的 SSH 私钥 (。
定义用户帐户后,可以在添加任务或任务集合的请求中为 userIdentity 属性指定该用户帐户。
为任务提供令牌,以便在任务运行时向 Batch 服务进行身份验证。
Batch 服务现在可以在任务运行时向任务提供身份验证令牌。 身份验证令牌使任务能够向 Batch 服务发出与作业相关的请求,而无需 Batch 帐户密钥。 令牌通过 AZ_BATCH_AUTHENTICATION_TOKEN 环境变量提供。
目前,仅对作业资源调用操作支持身份验证令牌。 身份验证令牌授予对包含该任务的作业的所有操作的访问权限。
若要让 Batch 服务提供身份验证令牌,请在“添加任务”或“添加任务集合”的请求中指定新的 authenticationTokenSettings 属性及其访问属性。
指定在任务失败时要对任务的依赖项执行的操作。
现在可以指定从属任务继续,即使它们所依赖的任务失败。 设置要满足的任务资源的新 dependencyAction 属性,以运行依赖任务,即使父任务失败也是如此。 或者,将 dependencyAction 设置为 阻止 ,以防止在父任务失败时运行依赖任务。
在请求中添加任务或添加任务集合中指定 dependencyAction 属性。
有关使用依赖项操作的详细信息,请参阅 依赖项操作。
创建池时使用自定义 OS 磁盘映像。
现在可以使用自定义 OS 磁盘映像来创建池。
为此,必须在创建 Batch 帐户时指定池将在用户订阅中预配,而不是在 Batch 服务管理的订阅中预配。 在调用 创建帐户时,将 poolAllocationMode 属性设置为 UserSubscription。 然后使用 osDisk 属性在 请求中添加池中指定对磁盘映像的引用。
重要
创建 Batch 帐户时,如果指定在用户订阅中预配池,则必须对通过该帐户发出的所有请求使用基于 Azure Active Directory 的身份验证。
对 Batch 服务的请求使用基于 Azure Active Directory 的身份验证。
现在支持 Azure Active Directory (Azure AD) 对 Batch 服务的调用进行身份验证。
如果 Batch 帐户设置为在用户订阅中预配池,则需要使用 Azure AD 身份验证。
版本 2016-07-01.3.1
此版本扩展了以前版本 2016-02-01.3.0 的所有支持。 此外,它还支持以下功能:
使用网络配置创建池和自动池的功能
- 新的属性 networkConfiguration 已添加到池和自动池资源。 此属性可用于指定池的网络配置,例如在其中创建池计算节点的子网。
完成所有任务后自动终止作业。
- 已 将 onAllTasksComplete 的新属性添加到作业资源。 可以在创建或更新作业时指定此项。
任务失败时自动终止或禁用作业。
- 已将 新属性 onTaskFailure 添加到作业资源,并将新的属性 exitConditions 添加到任务资源。 作业 onTaskFailure 设置指示任务失败是否可能产生作业级影响,并且任务 exitConditions 属性允许任务根据失败的性质定制作业级影响。
将应用程序包与任务和池相关联。
- 新的属性 applicationPackageReferences 已添加到任务资源和作业 jobManagerTask 设置。 这允许在任务需要时按需部署应用程序包,而无需在创建池时指定它们。 对于可以调用以在其生存期内运行不同类型的作业或不同应用程序版本的长生存期池,或者如果你有一个并非所有任务都需要的大型应用程序包,则这一点特别有用。
重新激活失败任务的功能。
- 添加了一个新操作 “重新激活任务 ”,以将失败的任务状态重置为活动状态。 这允许重试失败,例如,如果故障是暂时性的,或者你已经能够修复故障原因,而无需重新创建任务。
版本 2016-02-01.3.0
此版本扩展了以前版本 2015-12-01.2.2 的所有支持。 此外,它还支持以下功能:
使用 IaaS VM 配置创建池和自动池的功能
现有属性“osFamily”、“targetOSVersion”和“currentOSVersion”从池和自动池资源的顶级属性移动,并移动到名为“cloudServiceConfiguration”的新属性中。
新属性“virtualMachineConfiguration”将添加到池和自动池资源。 可以指定此属性来配置包含 IaaS VM 的池/自动池。
添加了一个新的 API 来获取 Batch 服务支持的所有节点代理 SKU 的相关信息。 请参阅 列出支持的节点代理 SKU。
添加了一个新的 API 来获取远程登录设置,这些设置可用于远程登录到使用 IaaS VM 配置创建的计算节点。 请参阅 获取节点的远程登录设置。
添加了一个新的 API,用于将任务集合添加到作业。 请参阅 将任务集合添加到作业。
新的可选属性“sshPublicKey”将添加到用户资源,可用于在 Linux 计算节点上添加/更新用户。
将两个新属性“totalTasksSucceeded”和“runningTasksCount”添加到 Node 资源。 可以通过 获取有关节点的信息 或 列出池中的计算节点来获取这些属性。
新属性“fileMode”已添加到“ResourceFile”复杂类型。 此属性仅在 Linux 计算节点上应用,对于 Windows 计算节点,将忽略此属性。
将新属性“fileMode”添加到“FileProperties”复杂类型。 此属性由 Linux 计算节点的 Batch 服务作为 GetFileProperties 或 ListFileProperties API 的一部分返回。 此外,“FileProperties”复杂类型下的现有属性“creationTime”更改为可选属性,因为不会为 Linux 计算节点返回此属性。
“CertificateReference”复杂类型中现有属性“visibility”的数据类型从具有逗号分隔值的字符串修改为字符串集合。 此外,可见性的现有值之一已从“rdp”重命名为“remoteuser”。
以下 API 的 URL 已更改为将操作名称的“?”替换为“/”:
版本 2015-12-01.2.2
此版本扩展了以前版本 2015-11-01.2.1 的所有支持。 此外,它还支持以下功能:
现在,可以使用应用程序包(而不是资源文件)将应用程序部署到计算节点。
新 API 可供客户端浏览可用应用程序和版本列表,例如在用户界面中显示选择器。
与池相关的 API 已更改,以允许池指定要下载到该池中所有节点的应用程序包。
现在可以使任务依赖于其他任务。 在它依赖的所有任务都成功完成之前,依赖任务不会启动。
此版本包括以下其他更改:
- 默认池大小调整超时已更改为 15 分钟。
版本 2015-11-01.2.1
此版本扩展了以前版本 2015-06-01.2.0 的所有支持。 此外,它还支持以下功能:
(添加和运行多实例任务的功能,例如 MPI)
新的可选属性“multiInstanceSettings”将添加到任务资源,该资源可以选择包含在添加任务、获取任务、列出任务 API 中。
添加了一个新的 API 列出任务的子任务,以获取有关子任务的信息。
新的可选属性“subtaskId”将添加到计算节点的“recentTasks”。 此属性作为获取计算节点和列出计算节点的一部分返回
在计算节点上禁用或启用任务计划的功能
在计算节点资源上添加了两个新 API“禁用节点上的任务计划”和“在节点上启用任务计划”。
添加了新的计算节点状态“脱机”。 对于较旧的 API 版本,此状态将映射到“不可用”。
新属性“schedulingState”将添加到计算节点资源。 “enabled”和“disabled”的可能值。
在池/自动池上指定自动缩放评估间隔的功能
新属性“autoScaleEvaluationInterval”将添加到池资源。 此属性可以包含在添加池、获取池、启用自动缩放和列出池 API 中。
同样,对于自动池,新属性“autoScaleEvaluationInterval”将添加到“autoPoolSpecification”属性。 此属性可以包含在“添加作业”、“获取作业”、“列出作业”、“添加作业计划”、“获取作业计划”、“更新作业计划”、“列出作业计划”和“列出作业计划”API 中。
对任务 API 的增强,以返回计算节点上任务的根目录。
两个新属性“taskRootDirectory”和“taskRootDirectoryUrl”添加到任务资源中,这些属性可以作为获取有关任务的信息列表任务 API 的一部分获取
新属性“taskRootDirectory”添加到“jobPreparationTaskExecutionInfo”和“jobReleaseTaskExecutionInfo”中,可以通过列出作业 API 的作业准备和作业释放任务的状态来获取。