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

Job - Add

将作业添加到指定的帐户。
Batch 服务支持两种方法来控制作为作业的一部分完成的工作。 在第一种方法中,用户指定作业管理器任务。 Batch 服务在准备好启动作业时启动此任务。 作业管理器任务通过使用任务 API 控制在此作业下运行的其他所有任务。 第二种方法是,用户通过使用任务 API 直接控制活动作业下的任务的执行。 另请注意:命名作业时,请避免包括敏感信息,例如用户名或机密项目名称。 此信息可能显示在Microsoft支持工程师可访问的遥测日志中。

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

URI 参数

名称 必需 类型 说明
batchUrl
path True

string

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

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"

名称 必需 类型 说明
id True

string

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

poolInfo True

PoolInformation

Batch 服务在其中运行作业任务的池。

allowTaskPreemption

boolean

此作业中的任务是否可以被其他高优先级作业抢占
如果该值设置为 True,则提交到系统的其他高优先级作业将优先,并且能够重新排队此作业中的任务。 使用更新作业 API 创建作业后,可以更新作业的 allowTaskPreemption。

commonEnvironmentSettings

EnvironmentSetting[]

常见环境变量设置的列表。 为作业中的所有任务(包括作业管理器、作业准备和作业发布任务)设置这些环境变量。
单个任务可以通过使用不同的值指定相同的设置名称来替代此处指定的环境设置。

constraints

JobConstraints

作业的执行约束。
作业的执行约束。

displayName

string

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

jobManagerTask

JobManagerTask

启动作业时要启动的作业管理器任务的详细信息。
如果作业未指定作业管理器任务,则用户必须显式将任务添加到作业。 如果作业确实指定了作业管理器任务,Batch 服务会在创建作业时创建作业管理器任务,并将尝试在作业中计划其他任务之前计划作业管理器任务。 作业管理器任务的典型用途是控制和/或监视作业执行,例如,决定要运行的其他任务、确定工作何时完成等。但是,作业管理器任务不限于这些活动 - 它是系统中一个完全完善的任务,并执行作业所需的任何操作。例如,作业管理器任务可能会下载指定为参数的文件,分析该文件的内容,并根据这些内容提交其他任务。

jobPreparationTask

JobPreparationTask

作业准备任务。
如果作业具有作业准备任务,批处理服务将在节点上运行作业准备任务,然后再在该计算节点上启动该作业的任何任务。

jobReleaseTask

JobReleaseTask

作业发布任务。
如果不同时指定作业的作业准备任务,则无法指定作业发布任务。 Batch 服务在运行作业准备任务的节点上运行作业发布任务。 作业发布任务的主要用途是撤消作业准备任务对计算节点所做的更改。 示例活动包括删除本地文件或关闭在作业准备过程中启动的服务。

maxParallelTasks

integer

可为作业并行执行的最大任务数。
maxParallelTasks 的值必须 -1 或大于 0(如果指定)。 如果未指定,则默认值为 -1,这意味着一次可以运行的任务数没有限制。 使用更新作业 API 创建作业后,可以更新作业的 maxParallelTasks。

metadata

MetadataItem[]

与作业关联的名称/值对列表作为元数据。
Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。

networkConfiguration

JobNetworkConfiguration

作业的网络配置。

onAllTasksComplete

OnAllTasksComplete

当作业中的所有任务都处于完成状态时,Batch 服务应执行的操作。
请注意,如果作业不包含任何任务,则所有任务都被视为已完成。 因此,此选项最常用于作业管理器任务;如果要在没有作业管理器的情况下使用自动作业终止,则应最初将 OnAllTasksComplete 设置为 noaction,并将作业属性更新为在完成添加任务后将 OnAllTasksComplete 设置为 terminatejob。 默认值为 noaction。

onTaskFailure

OnTaskFailure

当作业中的任何任务失败时,Batch 服务应执行的操作。
如果存在 failureInfo,则任务被视为失败。 如果任务在耗尽重试计数后使用非零退出代码完成,或者启动任务时出错(例如由于资源文件下载错误),则设置 failureInfo。 默认值为 noaction。

priority

integer

作业的优先级。
优先级值的范围可以是 -1000 到 1000,-1000 是最低优先级,1000 是最高优先级。 默认值为 0。

usesTaskDependencies

boolean

作业中的任务是否可以定义彼此的依赖关系。 默认值为 false。

响应

名称 类型 说明
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 job
Add a complex job

Add a basic job

示例请求

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



{
  "id": "jobId",
  "priority": 0,
  "poolInfo": {
    "poolId": "poolId"
  }
}

示例响应

Add a complex job

示例请求

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



{
  "id": "jobId",
  "priority": 100,
  "constraints": {
    "maxWallClockTime": "PT1H",
    "maxTaskRetryCount": -1
  },
  "jobManagerTask": {
    "id": "taskId",
    "commandLine": "myprogram.exe",
    "resourceFiles": [
      {
        "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?sas",
        "filePath": "myprogram.exe"
      },
      {
        "storageContainerUrl": "http://mystorage1.blob.core.windows.net/data?sas",
        "filePath": "datafolder"
      }
    ],
    "environmentSettings": [
      {
        "name": "myvariable",
        "value": "myvalue"
      }
    ],
    "constraints": {
      "maxWallClockTime": "PT1H",
      "maxTaskRetryCount": 0,
      "retentionTime": "PT1H"
    },
    "requiredSlots": 2,
    "killJobOnCompletion": false,
    "userIdentity": {
      "autoUser": {
        "scope": "task",
        "elevationLevel": "admin"
      }
    },
    "runExclusive": true
  },
  "poolInfo": {
    "autoPoolSpecification": {
      "autoPoolIdPrefix": "mypool",
      "poolLifetimeOption": "job",
      "pool": {
        "vmSize": "STANDARD_D2S_V3",
        "virtualMachineConfiguration": {
          "imageReference": {
            "publisher": "MicrosoftWindowsServer",
            "offer": "WindowsServer",
            "sku": "2016-datacenter-smalldisk",
            "version": "latest"
          },
          "nodeAgentSKUId": "batch.node.windows amd64",
          "windowsConfiguration": {
            "enableAutomaticUpdates": false
          },
          "nodePlacementConfiguration": {
            "policy": "zonal"
          }
        },
        "resizeTimeout": "PT15M",
        "targetDedicatedNodes": 3,
        "targetLowPriorityNodes": 0,
        "taskSlotsPerNode": 2,
        "taskSchedulingPolicy": {
          "nodeFillType": "spread"
        },
        "enableAutoScale": false,
        "enableInterNodeCommunication": true,
        "startTask": {
          "commandLine": "myprogram2.exe",
          "resourceFiles": [
            {
              "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram2.exe?sas",
              "filePath": "myprogram2.exe"
            }
          ],
          "environmentSettings": [
            {
              "name": "myvariable",
              "value": "myvalue"
            }
          ],
          "userIdentity": {
            "autoUser": {
              "scope": "task",
              "elevationLevel": "admin"
            }
          },
          "maxTaskRetryCount": 2,
          "waitForSuccess": true
        },
        "certificateReferences": [
          {
            "thumbprint": "0123456789abcdef0123456789abcdef01234567",
            "thumbprintAlgorithm": "sha1",
            "storeLocation": "localmachine",
            "storeName": "Root",
            "visibility": [
              "task"
            ]
          }
        ],
        "metadata": [
          {
            "name": "myproperty",
            "value": "myvalue"
          }
        ],
        "targetNodeCommunicationMode": "default"
      }
    }
  },
  "metadata": [
    {
      "name": "myproperty",
      "value": "myvalue"
    }
  ]
}

示例响应

定义

名称 说明
AccessScope

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

ApplicationPackageReference

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

AuthenticationTokenSettings

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

AutomaticOSUpgradePolicy

用于执行自动 OS 升级的配置参数。

AutoPoolSpecification

指定临时“自动池”的特征。 提交作业时,Batch 服务将创建此自动池。

AutoUserScope

自动用户的范围

AutoUserSpecification

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

AzureBlobFileSystemConfiguration

用于使用 Blobfuse 连接到 Azure 存储容器的信息。

AzureFileShareConfiguration

用于连接到 Azure 文件共享的信息。

BatchError

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

BatchErrorDetail

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

CachingType

要为磁盘启用的缓存类型。

CertificateReference

对要安装在池中的计算节点上的证书的引用。

CertificateStoreLocation

要在其中安装证书的计算节点上证书存储的位置。

CertificateVisibility

计算节点上的哪些用户帐户应有权访问证书的专用数据。

CIFSMountConfiguration

用于连接到 CIFS 文件系统的信息。

ComputeNodeFillType

任务如何在池中的计算节点之间分布。

ComputeNodeIdentityReference

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

ContainerConfiguration

已启用容器的池的配置。

ContainerHostBatchBindMountEntry

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

ContainerHostDataPath

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

ContainerRegistry

专用容器注册表。

ContainerType

要使用的容器技术。

ContainerWorkingDirectory

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

DataDisk

与池中的计算节点关联的数据磁盘将使用的设置。 使用附加的数据磁盘时,需要从 VM 中装载磁盘并设置磁盘格式才能使用这些磁盘。

DiffDiskPlacement

指定池中所有计算节点(VM)操作系统磁盘的临时磁盘放置。

DiffDiskSettings

指定计算节点(VM)使用的操作系统磁盘的临时磁盘设置。

DiskEncryptionConfiguration

在池中的计算节点上应用的磁盘加密配置。 使用 Azure 计算库映像创建的 Linux 池不支持磁盘加密配置。

DiskEncryptionTarget

磁盘目标 Batch 服务将在计算节点上加密。

DynamicVNetAssignmentScope

动态 vnet 分配的范围。

ElevationLevel

用户的提升级别。

EnvironmentSetting

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

ErrorMessage

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

HttpHeader

HTTP 标头名称值对

ImageReference

对 Azure 虚拟机市场映像或 Azure 计算库映像的引用。 若要获取 Azure Batch 验证的所有 Azure 市场映像引用的列表,请参阅“列出支持的映像”操作。

InboundEndpointProtocol

终结点的协议。

InboundNATPool

入站 NAT 池,可用于在外部处理 Batch 池中计算节点上的特定端口。

IPAddressProvisioningType

池的公共 IP 地址的预配类型。

JobAddParameter

要添加的 Azure Batch 作业。

JobConstraints

作业的执行约束。

JobManagerTask

指定作业管理器任务的详细信息。

JobNetworkConfiguration

作业的网络配置。

JobPreparationTask

要在任何给定计算节点上作业的任何任务之前运行的作业准备任务。

JobReleaseTask

作业发布任务,用于在作业完成时在作业运行的任何计算节点上运行。

LinuxUserConfiguration

用于在 Linux 计算节点上创建用户帐户的属性。

LoginMode

用户的登录模式

ManagedDisk
MetadataItem

与 Batch 服务资源关联的名称/值对。

MountConfiguration

要在每个节点上装载的文件系统。

NetworkConfiguration

池的网络配置。

NetworkSecurityGroupRule

要应用于入站终结点的网络安全组规则。

NetworkSecurityGroupRuleAccess

应对指定 IP 地址、子网范围或标记执行的操作。

NFSMountConfiguration

用于连接到 NFS 文件系统的信息。

NodeCommunicationMode

确定池如何与 Batch 服务通信。

NodePlacementConfiguration

池的节点放置配置。

NodePlacementPolicyType

用于分配池中的节点的放置策略。

OnAllTasksComplete

当作业中的所有任务都处于完成状态时,Batch 服务应执行的操作。

OnTaskFailure

当作业中的任何任务失败时,Batch 服务应执行的操作。

OSDisk

计算节点(VM)操作系统磁盘的设置。

OutputFile

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

OutputFileBlobContainerDestination

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

OutputFileDestination

文件应上传到的目标。

OutputFileUploadCondition

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

OutputFileUploadOptions

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

PoolEndpointConfiguration

池的终结点配置。

PoolInformation

指定作业应如何分配给池。

PoolLifetimeOption

创建自动池的最小生存期,以及如何按计划将多个作业分配给池。

PoolSpecification

创建新池的规范。

PublicIPAddressConfiguration

池的网络配置的公共 IP 地址配置。

ResourceFile

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

RollingUpgradePolicy

执行滚动升级时使用的配置参数。

SecurityEncryptionTypes

指定托管磁盘的 EncryptionType。 它设置为 VMGuestStateOnly 以仅加密 VMGuestState blob,而 NonPersistedTPM 用于不保留 VMGuestState blob 中的固件状态。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

SecurityProfile

指定虚拟机或虚拟机规模集的安全配置文件设置。

SecurityTypes

指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。

ServiceArtifactReference

指定使用“latest”映像版本时,用于为规模集中的所有虚拟机设置相同映像版本的服务项目引用 ID。

StartTask

当节点加入 Azure Batch 服务中的池或重新启动或重新映像计算节点时运行的任务。

StorageAccountType

用于创建数据磁盘或 OS 磁盘的存储帐户类型。

TaskConstraints

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

TaskContainerSettings

任务的容器设置。

TaskSchedulingPolicy

指定应如何跨计算节点分配任务。

UefiSettings

指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。

UpgradeMode

指定升级到规模集中虚拟机的模式。

可能的值包括:

手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。

自动 - 规模集中的所有虚拟机同时自动更新。

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。

UpgradePolicy

描述升级策略 - 自动、手动或滚动。

UserAccount

用于创建用于在 Azure Batch 计算节点上执行任务的用户的属性。

UserIdentity

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

VirtualMachineConfiguration

基于 Azure 虚拟机基础结构的池中计算节点的配置。

VMDiskSecurityProfile

指定托管磁盘的安全配置文件设置。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

VMExtension

虚拟机扩展的配置。

WindowsConfiguration

要应用于虚拟机的 Windows 操作系统设置。

WindowsUserConfiguration

用于在 Windows 计算节点上创建用户帐户的属性。

AccessScope

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

名称 类型 说明
job

string

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

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 的作业相关的所有操作的访问权限。

AutomaticOSUpgradePolicy

用于执行自动 OS 升级的配置参数。

名称 类型 说明
disableAutomaticRollback

boolean

是否应禁用 OS 映像回滚功能。

enableAutomaticOSUpgrade

boolean

指示当较新版本的 OS 映像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

如果对于基于 Windows 的池,WindowsConfiguration.enableAutomaticUpdates 不能设置为 true。

osRollingUpgradeDeferral

boolean

如果 OS 升级正在运行任务,请延迟 TVM 上的 OS 升级。

useRollingUpgradePolicy

boolean

指示是否应在自动 OS 升级期间使用滚动升级策略。 如果未在 VMSS 上定义任何策略,则自动 OS 升级将回退到默认策略。

AutoPoolSpecification

指定临时“自动池”的特征。 提交作业时,Batch 服务将创建此自动池。

名称 类型 说明
autoPoolIdPrefix

string

自动创建池时要添加到唯一标识符的前缀。
Batch 服务在创建时为每个自动池分配唯一标识符。 若要区分为不同目的创建的池,可以指定此元素以向分配的 ID 添加前缀。 前缀长度可达 20 个字符。

keepAlive

boolean

在生存期到期后是否使自动池保持活动状态。
如果为 false,Batch 服务在池生存期(由 poolLifetimeOption 设置确定)后删除池,则过期;即作业或作业计划完成时。 如果为 true,Batch 服务不会自动删除池。 由用户决定删除使用此选项创建的自动池。

pool

PoolSpecification

自动池的池规范。

poolLifetimeOption

PoolLifetimeOption

创建自动池的最小生存期,以及如何按计划将多个作业分配给池。

AutoUserScope

自动用户的范围

名称 类型 说明
pool

string

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

task

string

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

AutoUserSpecification

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

名称 类型 说明
elevationLevel

ElevationLevel

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

scope

AutoUserScope

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

AzureBlobFileSystemConfiguration

用于使用 Blobfuse 连接到 Azure 存储容器的信息。

名称 类型 说明
accountKey

string

Azure 存储帐户密钥。
此属性与 sasKey 和标识互斥;必须指定一个。

accountName

string

Azure 存储帐户名称。

blobfuseOptions

string

要传递给装载命令的其他命令行选项。
这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。

containerName

string

Azure Blob 存储容器名称。

identityReference

ComputeNodeIdentityReference

对用于访问 containerName 的用户分配标识的引用
此属性与 accountKey 和 sasKey 互斥;必须指定一个。

relativeMountPath

string

将装载文件系统的计算节点上的相对路径
所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。

sasKey

string

Azure 存储 SAS 令牌。
此属性与 accountKey 和 identity 互斥;必须指定一个。

AzureFileShareConfiguration

用于连接到 Azure 文件共享的信息。

名称 类型 说明
accountKey

string

Azure 存储帐户密钥。

accountName

string

Azure 存储帐户名称。

azureFileUrl

string

Azure 文件 URL。
此格式为“https://{account}.file.core.windows.net/”。

mountOptions

string

要传递给装载命令的其他命令行选项。
这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。

relativeMountPath

string

将装载文件系统的计算节点上的相对路径
所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。

BatchError

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

名称 类型 说明
code

string

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

message

ErrorMessage

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

values

BatchErrorDetail[]

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

BatchErrorDetail

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

名称 类型 说明
key

string

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

value

string

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

CachingType

要为磁盘启用的缓存类型。

名称 类型 说明
none

string

未启用磁盘的缓存模式。

readonly

string

磁盘的缓存模式是只读的。

readwrite

string

磁盘的缓存模式是读取和写入的。

CertificateReference

对要安装在池中的计算节点上的证书的引用。

名称 类型 说明
storeLocation

CertificateStoreLocation

要在其中安装证书的计算节点上证书存储的位置。
默认值为 currentuser。 此属性仅适用于使用 Windows 计算节点配置的池。 对于 Linux 计算节点,证书存储在 Task 工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“证书”目录,并将证书置于该目录中。

storeName

string

要在其中安装证书的计算节点上的证书存储的名称。
此属性仅适用于使用 Windows 计算节点配置的池。 常见的存储名称包括:My、Root、CA、Trust、Trustallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定义存储名称。 默认值为“我的”。

thumbprint

string

证书的指纹。

thumbprintAlgorithm

string

指纹关联的算法。 这必须是 sha1。

visibility

CertificateVisibility[]

计算节点上的哪些用户帐户应有权访问证书的专用数据。
可以在此集合中指定多个可见性。 默认值为所有帐户。

CertificateStoreLocation

要在其中安装证书的计算节点上证书存储的位置。

名称 类型 说明
currentuser

string

证书应安装到 CurrentUser 证书存储。

localmachine

string

证书应安装到 LocalMachine 证书存储。

CertificateVisibility

计算节点上的哪些用户帐户应有权访问证书的专用数据。

名称 类型 说明
remoteuser

string

证书应该对用户远程访问计算节点的用户帐户可见。

starttask

string

证书应该对运行 StartTask 的用户帐户可见。 请注意,如果 AutoUser 作用域是 StartTask 和 Task 的池,则此证书也将对任务可见。

task

string

证书应该对运行作业任务的用户帐户可见。

CIFSMountConfiguration

用于连接到 CIFS 文件系统的信息。

名称 类型 说明
mountOptions

string

要传递给装载命令的其他命令行选项。
这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。

password

string

用于针对 CIFS 文件系统进行身份验证的密码。

relativeMountPath

string

将装载文件系统的计算节点上的相对路径
所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。

source

string

要装载的文件系统的 URI。

username

string

用于对 CIFS 文件系统进行身份验证的用户。

ComputeNodeFillType

任务如何在池中的计算节点之间分布。

名称 类型 说明
pack

string

在将任何任务分配到池中的下一个计算节点之前,应向池中的每个计算节点分配尽可能多的任务(taskSlotsPerNode)。

spread

string

应跨池中的所有计算节点均匀分配任务。

ComputeNodeIdentityReference

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

名称 类型 说明
resourceId

string

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

ContainerConfiguration

已启用容器的池的配置。

名称 类型 说明
containerImageNames

string[]

容器映像名称的集合。
这是完整的映像引用,如指定为“docker pull”。 除非映像使用备用注册表完全限定映像,否则映像将源自默认 Docker 注册表。

containerRegistries

ContainerRegistry[]

可从中提取容器的其他专用注册表。
如果必须从需要凭据的专用注册表下载任何映像,则必须在此处提供这些凭据。

type

ContainerType

要使用的容器技术。

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

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

ContainerType

要使用的容器技术。

名称 类型 说明
criCompatible

string

基于 CRI 的技术将用于启动容器。

dockerCompatible

string

Docker 兼容的容器技术将用于启动容器。

ContainerWorkingDirectory

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

名称 类型 说明
containerImageDefault

string

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

taskWorkingDirectory

string

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

DataDisk

与池中的计算节点关联的数据磁盘将使用的设置。 使用附加的数据磁盘时,需要从 VM 中装载磁盘并设置磁盘格式才能使用这些磁盘。

名称 类型 说明
caching

CachingType

要为数据磁盘启用的缓存类型。
缓存的默认值为 readwrite。 有关缓存选项的信息,请参阅:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/

diskSizeGB

integer

初始磁盘大小(以 GB 为单位)。

lun

integer

逻辑单元号。
lun 用于唯一标识每个数据磁盘。 如果附加多个磁盘,每个磁盘应具有不同的 lun。 该值必须介于 0 和 63 之间(含)。

storageAccountType

StorageAccountType

要用于数据磁盘的存储帐户类型。
如果省略,则默认值为“standard_lrs”。

DiffDiskPlacement

指定池中所有计算节点(VM)操作系统磁盘的临时磁盘放置。

名称 类型 说明
CacheDisk

string

临时 OS 磁盘存储在 VM 缓存中。

DiffDiskSettings

指定计算节点(VM)使用的操作系统磁盘的临时磁盘设置。

名称 类型 说明
placement

DiffDiskPlacement

指定池中所有 VM 的操作系统磁盘的临时磁盘放置。
用户可以在请求中使用此属性来选择用于临时 OS 磁盘预配的位置,例如缓存磁盘空间。 有关临时 OS 磁盘大小要求的详细信息,请参阅 https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirementshttps://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements 和 Linux VM 的 Windows VM 的临时 OS 磁盘大小要求。

DiskEncryptionConfiguration

在池中的计算节点上应用的磁盘加密配置。 使用 Azure 计算库映像创建的 Linux 池不支持磁盘加密配置。

名称 类型 说明
targets

DiskEncryptionTarget[]

磁盘目标 Batch 服务将在计算节点上加密。
磁盘目标 Batch 服务将在计算节点上加密。

DiskEncryptionTarget

磁盘目标 Batch 服务将在计算节点上加密。

名称 类型 说明
osdisk

string

计算节点上的 OS 磁盘已加密。

temporarydisk

string

计算节点上的临时磁盘已加密。 在 Linux 上,此加密适用于在启动时进行加密时的其他分区(例如装载的数据磁盘上的分区)。

DynamicVNetAssignmentScope

动态 vnet 分配的范围。

名称 类型 说明
job

string

动态 VNet 分配按作业完成。

none

string

未启用动态 VNet 分配。

ElevationLevel

用户的提升级别。

名称 类型 说明
admin

string

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

nonadmin

string

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

EnvironmentSetting

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

名称 类型 说明
name

string

环境变量的名称。

value

string

环境变量的值。

ErrorMessage

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

名称 类型 说明
lang

string

错误消息的语言代码

value

string

消息的文本。

HttpHeader

HTTP 标头名称值对

名称 类型 说明
name

string

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

value

string

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

ImageReference

对 Azure 虚拟机市场映像或 Azure 计算库映像的引用。 若要获取 Azure Batch 验证的所有 Azure 市场映像引用的列表,请参阅“列出支持的映像”操作。

名称 类型 说明
communityGalleryImageId

string

社区库映像唯一标识符
此属性与其他属性互斥,可以从社区库映像 GET 调用中提取。

exactVersion

string

用于创建节点的平台映像或市场映像的特定版本。 仅当创建池时为“version”指定的值为“latest”时,此只读字段与“version”不同。

offer

string

Azure 虚拟机市场映像的产品/服务类型。
例如,UbuntuServer 或 WindowsServer。

publisher

string

Azure 虚拟机市场映像的发布者。
例如,Canonical 或 MicrosoftWindowsServer。

sharedGalleryImageId

string

共享库映像唯一标识符
此属性与其他属性互斥,可以从共享库映像 GET 调用中提取。

sku

string

Azure 虚拟机市场映像的 SKU。
例如,18.04-LTS 或 2019-Datacenter。

version

string

Azure 虚拟机市场映像的版本。
可以指定值“latest”以选择最新版本的映像。 如果省略,则默认值为“latest”。

virtualMachineImageId

string

Azure 计算库映像的 ARM 资源标识符。 池中的计算节点将使用此映像 ID 创建。此格式为 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/images/{imageDefinitionName}/versions/{VersionId} 或 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/images/{imageDefinitionName},以始终默认为最新映像版本。
此属性与其他 ImageReference 属性互斥。 Azure 计算库映像必须在同一区域中具有副本,并且必须与 Azure Batch 帐户位于同一订阅中。 如果未在 imageId 中指定映像版本,将使用最新版本。 有关 Batch 计算节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 https://docs.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration

InboundEndpointProtocol

终结点的协议。

名称 类型 说明
tcp

string

对终结点使用 TCP。

udp

string

对终结点使用 UDP。

InboundNATPool

入站 NAT 池,可用于在外部处理 Batch 池中计算节点上的特定端口。

名称 类型 说明
backendPort

integer

计算节点上的端口号。
这在 Batch 池中必须是唯一的。 可接受的值介于 1 和 65535 之间,但 29876 和 29877 除外,因为这些值是保留的。 如果提供任何保留值,则请求失败并显示 HTTP 状态代码 400。

frontendPortRangeEnd

integer

外部端口范围中的最后一个端口号,用于在单个计算节点上提供对 backendPort 的入站访问。
可接受的值介于 1 到 65534 之间,但 Batch 服务保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 每个范围必须至少包含 40 个端口。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。

frontendPortRangeStart

integer

外部端口范围中的第一个端口号,用于在单个计算节点上提供对 backendPort 的入站访问。
可接受的值介于 1 到 65534 之间,但保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 每个范围必须至少包含 40 个端口。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。

name

string

终结点的名称。
名称在 Batch 池中必须唯一,可以包含字母、数字、下划线、句点和连字符。 名称必须以字母或数字开头,必须以字母、数字或下划线结尾,并且不能超过 77 个字符。 如果提供任何无效值,则请求失败并显示 HTTP 状态代码 400。

networkSecurityGroupRules

NetworkSecurityGroupRule[]

将应用于终结点的网络安全组规则列表。
可以在 Batch 池上的所有终结点中指定的最大规则数为 25。 如果未指定网络安全组规则,则会创建默认规则以允许对指定的 backendPort 进行入站访问。 如果超过网络安全组规则的最大数目,则请求失败并显示 HTTP 状态代码 400。

protocol

InboundEndpointProtocol

终结点的协议。

IPAddressProvisioningType

池的公共 IP 地址的预配类型。

名称 类型 说明
batchmanaged

string

公共 IP 将由 Batch 创建和管理。 可能有多个公共 IP,具体取决于池的大小。

nopublicipaddresses

string

不会创建任何公共 IP 地址。

usermanaged

string

公共 IP 由用户提供,用于预配计算节点。

JobAddParameter

要添加的 Azure Batch 作业。

名称 类型 默认值 说明
allowTaskPreemption

boolean

此作业中的任务是否可以被其他高优先级作业抢占
如果该值设置为 True,则提交到系统的其他高优先级作业将优先,并且能够重新排队此作业中的任务。 使用更新作业 API 创建作业后,可以更新作业的 allowTaskPreemption。

commonEnvironmentSettings

EnvironmentSetting[]

常见环境变量设置的列表。 为作业中的所有任务(包括作业管理器、作业准备和作业发布任务)设置这些环境变量。
单个任务可以通过使用不同的值指定相同的设置名称来替代此处指定的环境设置。

constraints

JobConstraints

作业的执行约束。
作业的执行约束。

displayName

string

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

id

string

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

jobManagerTask

JobManagerTask

启动作业时要启动的作业管理器任务的详细信息。
如果作业未指定作业管理器任务,则用户必须显式将任务添加到作业。 如果作业确实指定了作业管理器任务,Batch 服务会在创建作业时创建作业管理器任务,并将尝试在作业中计划其他任务之前计划作业管理器任务。 作业管理器任务的典型用途是控制和/或监视作业执行,例如,决定要运行的其他任务、确定工作何时完成等。但是,作业管理器任务不限于这些活动 - 它是系统中一个完全完善的任务,并执行作业所需的任何操作。例如,作业管理器任务可能会下载指定为参数的文件,分析该文件的内容,并根据这些内容提交其他任务。

jobPreparationTask

JobPreparationTask

作业准备任务。
如果作业具有作业准备任务,批处理服务将在节点上运行作业准备任务,然后再在该计算节点上启动该作业的任何任务。

jobReleaseTask

JobReleaseTask

作业发布任务。
如果不同时指定作业的作业准备任务,则无法指定作业发布任务。 Batch 服务在运行作业准备任务的节点上运行作业发布任务。 作业发布任务的主要用途是撤消作业准备任务对计算节点所做的更改。 示例活动包括删除本地文件或关闭在作业准备过程中启动的服务。

maxParallelTasks

integer

-1

可为作业并行执行的最大任务数。
maxParallelTasks 的值必须 -1 或大于 0(如果指定)。 如果未指定,则默认值为 -1,这意味着一次可以运行的任务数没有限制。 使用更新作业 API 创建作业后,可以更新作业的 maxParallelTasks。

metadata

MetadataItem[]

与作业关联的名称/值对列表作为元数据。
Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。

networkConfiguration

JobNetworkConfiguration

作业的网络配置。

onAllTasksComplete

OnAllTasksComplete

当作业中的所有任务都处于完成状态时,Batch 服务应执行的操作。
请注意,如果作业不包含任何任务,则所有任务都被视为已完成。 因此,此选项最常用于作业管理器任务;如果要在没有作业管理器的情况下使用自动作业终止,则应最初将 OnAllTasksComplete 设置为 noaction,并将作业属性更新为在完成添加任务后将 OnAllTasksComplete 设置为 terminatejob。 默认值为 noaction。

onTaskFailure

OnTaskFailure

当作业中的任何任务失败时,Batch 服务应执行的操作。
如果存在 failureInfo,则任务被视为失败。 如果任务在耗尽重试计数后使用非零退出代码完成,或者启动任务时出错(例如由于资源文件下载错误),则设置 failureInfo。 默认值为 noaction。

poolInfo

PoolInformation

Batch 服务在其中运行作业任务的池。

priority

integer

作业的优先级。
优先级值的范围可以是 -1000 到 1000,-1000 是最低优先级,1000 是最高优先级。 默认值为 0。

usesTaskDependencies

boolean

作业中的任务是否可以定义彼此的依赖关系。 默认值为 false。

JobConstraints

作业的执行约束。

名称 类型 说明
maxTaskRetryCount

integer

可以重试每个任务的最大次数。 如果 Batch 服务退出代码为非零,则重试任务。
请注意,此值专门控制重试次数。 Batch 服务将尝试每个任务一次,然后可能会重试到此限制。 例如,如果最大重试计数为 3,Batch 将尝试最多 4 次任务(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 默认值为 0(无重试)。

maxWallClockTime

string

作业可以运行的最大运行时间,从创建作业的时间开始测量。
如果作业未在时间限制内完成,Batch 服务将终止该作业,并且仍在运行的任何任务。 在这种情况下,终止原因将是 MaxWallClockTimeExpiry。 如果未指定此属性,则作业的运行时间没有限制。

JobManagerTask

指定作业管理器任务的详细信息。

名称 类型 说明
allowLowPriorityNode

boolean

作业管理器任务是否可以在现成/低优先级计算节点上运行。
默认值为 true。

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

应用于作业管理器任务的约束。

containerSettings

TaskContainerSettings

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

displayName

string

作业管理器任务的显示名称。
它不是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。

environmentSettings

EnvironmentSetting[]

作业管理器任务的环境变量设置列表。

id

string

一个字符串,用于唯一标识作业中的作业管理器任务。
ID 可以包含字母数字字符的任意组合,包括连字符和下划线,不能包含超过 64 个字符。

killJobOnCompletion

boolean

作业管理器任务的完成是否表示整个作业的完成。
如果为 true,则当作业管理器任务完成时,Batch 服务会将作业标记为已完成。 如果当前仍在运行任何任务(作业发布除外),这些任务将终止。 如果为 false,则作业管理器任务的完成不会影响作业状态。 在这种情况下,应使用 onAllTasksComplete 属性终止作业,或者让客户端或用户显式终止作业。 例如,如果作业管理器创建了一组任务,但在执行中没有进一步的角色。 默认值为 true。 如果使用 onAllTasksComplete 和 onTaskFailure 属性来控制作业生存期,并使用作业管理器任务仅创建作业的任务(不监视进度),则必须将 killJobOnCompletion 设置为 false。

outputFiles

OutputFile[]

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

requiredSlots

integer

任务运行所需的计划槽数。
默认值为 1。 如果节点有足够的可用计划槽,则只能计划任务在计算节点上运行。 对于多实例任务,此属性不受支持,不得指定。

resourceFiles

ResourceFile[]

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

runExclusive

boolean

作业管理器任务是否需要独占使用其运行位置的计算节点。
如果为 true,则只要作业管理器正在运行,其他任务就不会在同一节点上运行。 如果为 false,则其他任务可以在计算节点上与作业管理器同时运行。 作业管理器任务通常根据计算节点的并发任务限制进行计数,因此仅当计算节点允许多个并发任务时,这才相关。 默认值为 true。

userIdentity

UserIdentity

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

JobNetworkConfiguration

作业的网络配置。

名称 类型 说明
skipWithdrawFromVNet

boolean

在终止或删除作业时,是否将计算节点从虚拟网络撤回到 DNC。
如果为 true,则节点将保持加入虚拟网络到 DNC。 如果为 false,则当作业结束时,节点将自动撤回。 默认值为 false。

subnetId

string

从作业中运行任务的计算节点将联接到任务的虚拟网络子网的 ARM 资源标识符。
虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳将从作业运行任务的计算节点数。 这最多可以包含池中的计算节点数。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色,以便 Azure Batch 服务可以在节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的节点的通信,Batch 服务会将计算节点的状态设置为不可用。 此格式为 /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须启用一些保留的系统端口,以便从 Azure Batch 服务进行入站通信。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和 Windows 端口 3389。 还需要打开端口 443 才能进行出站连接,以便与 Azure 存储通信。 有关详细信息,请参阅:https://docs.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration

JobPreparationTask

要在任何给定计算节点上作业的任何任务之前运行的作业准备任务。

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

适用于作业准备任务的约束。

containerSettings

TaskContainerSettings

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

environmentSettings

EnvironmentSetting[]

作业准备任务的环境变量设置列表。

id

string

一个字符串,用于唯一标识作业中的作业准备任务。
ID 可以包含字母数字字符的任意组合,包括连字符和下划线,不能包含超过 64 个字符。 如果未指定此属性,Batch 服务会分配默认值“jobpreparation”。 作业中的其他任务不能具有与作业准备任务相同的 ID。 如果尝试提交具有相同 ID 的任务,Batch 服务会拒绝错误代码为 TaskIdSameAsJobPreparationTask 的请求;如果直接调用 REST API,则 HTTP 状态代码为 409(冲突)。

rerunOnNodeRebootAfterSuccess

boolean

批处理服务是否应在计算节点重新启动后重新运行作业准备任务。
如果重新映像计算节点,或者作业准备任务未完成(例如,因为任务正在运行时重新启动),则始终重新运行作业准备任务。 因此,应始终编写作业准备任务来幂等,并在多次运行时正常运行。 默认值为 true。

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

运行作业准备任务的用户标识。
如果省略,则任务作为 Windows 计算节点上任务唯一的非管理用户运行,或者作为 Linux 计算节点上池唯一的非管理用户运行。

waitForSuccess

boolean

Batch 服务是否应在计算节点上计划作业的任何其他任务之前等待作业准备任务成功完成。 如果作业准备任务退出并退出代码 0,则作业准备任务已成功完成。
如果 True 且作业准备任务在节点上失败,Batch 服务将重试作业准备任务的最大重试计数(如约束元素中指定的)。 如果所有重试后任务仍未成功完成,Batch 服务将不会将作业的任务计划到节点。 节点保持活动状态,并且有资格运行其他作业的任务。 如果为 false,Batch 服务将不会等待作业准备任务完成。 在这种情况下,作业的其他任务可以在作业准备任务仍在运行时开始在计算节点上执行;即使作业准备任务失败,也会在计算节点上继续计划新任务。 默认值为 true。

JobReleaseTask

作业发布任务,用于在作业完成时在作业运行的任何计算节点上运行。

名称 类型 说明
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)。

containerSettings

TaskContainerSettings

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

environmentSettings

EnvironmentSetting[]

作业发布任务的环境变量设置列表。

id

string

一个字符串,用于唯一标识作业中的作业发布任务。
ID 可以包含字母数字字符的任意组合,包括连字符和下划线,不能包含超过 64 个字符。 如果未指定此属性,Batch 服务会分配默认值“jobrelease”。 作业中的其他任务不能具有与作业发布任务相同的 ID。 如果尝试提交具有相同 ID 的任务,Batch 服务会拒绝错误代码为 TaskIdSameAsJobReleaseTask 的请求;如果直接调用 REST API,则 HTTP 状态代码为 409(冲突)。

maxWallClockTime

string

作业发布任务可以在给定的计算节点上运行的最大运行时间,从任务开始的时间开始。 如果任务未在时间限制内完成,Batch 服务将终止它。 默认值为 15 分钟。 不能指定超时时间超过 15 分钟。 如果这样做,Batch 服务会拒绝它并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。

resourceFiles

ResourceFile[]

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

retentionTime

string

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

userIdentity

UserIdentity

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

LinuxUserConfiguration

用于在 Linux 计算节点上创建用户帐户的属性。

名称 类型 说明
gid

integer

用户帐户的组 ID。
uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 gid。

sshPrivateKey

string

用户帐户的 SSH 私钥。
私钥不得受密码保护。 当池的 enableInterNodeCommunication 属性为 true 时,私钥用于在 Linux 池中的计算节点之间自动配置基于非对称密钥的身份验证(如果 enableInterNodeCommunication 为 false,则忽略该身份验证)。 它通过将密钥对放入用户的 .ssh 目录来执行此操作。 如果未指定,则计算节点之间未配置无密码 SSH(不会修改用户的 .ssh 目录)。

uid

integer

用户帐户的用户 ID。
uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 uid。

LoginMode

用户的登录模式

名称 类型 说明
batch

string

LOGON32_LOGON_BATCH Win32 登录模式。 对于长时间运行的并行进程,建议使用批处理登录模式。

interactive

string

LOGON32_LOGON_INTERACTIVE Win32 登录模式。 UAC 在 Windows 池上启用。 如果将此选项与 Windows 池中提升的用户标识一起使用,则除非任务命令行执行的应用程序配置为始终需要管理权限或始终需要最大权限,否则不会提升用户会话。

ManagedDisk

名称 类型 说明
securityProfile

VMDiskSecurityProfile

指定托管磁盘的安全配置文件设置。
指定托管磁盘的安全配置文件设置。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

storageAccountType

StorageAccountType

托管磁盘的存储帐户类型。

MetadataItem

与 Batch 服务资源关联的名称/值对。

名称 类型 说明
name

string

元数据项的名称。

value

string

元数据项的值。

MountConfiguration

要在每个节点上装载的文件系统。

名称 类型 说明
azureBlobFileSystemConfiguration

AzureBlobFileSystemConfiguration

在每个节点上使用 blob FUSE 装载的 Azure 存储容器。
此属性与其他所有属性互斥。

azureFileShareConfiguration

AzureFileShareConfiguration

要在每个节点上装载的 Azure 文件共享。
此属性与其他所有属性互斥。

cifsMountConfiguration

CIFSMountConfiguration

要在每个节点上装载的 CIFS/SMB 文件系统。
此属性与其他所有属性互斥。

nfsMountConfiguration

NFSMountConfiguration

要在每个节点上装载的 NFS 文件系统。
此属性与其他所有属性互斥。

NetworkConfiguration

池的网络配置。

名称 类型 说明
dynamicVNetAssignmentScope

DynamicVNetAssignmentScope

动态 vnet 分配的范围。

enableAcceleratedNetworking

boolean

此池是否应启用加速网络。
加速网络使单个根 I/O 虚拟化(SR-IOV)能够连接到 VM,这可能会导致网络性能得到改善。 有关详细信息,请参阅:https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview

endpointConfiguration

PoolEndpointConfiguration

Batch 池中计算节点上终结点的配置。

publicIPAddressConfiguration

PublicIPAddressConfiguration

Batch 池中计算节点的公共 IPAddress 配置。
池的网络配置的公共 IP 地址配置。

subnetId

string

池的计算节点将加入的虚拟网络子网的 ARM 资源标识符。 此格式为 /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}。
虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的计算节点数。 如果子网没有足够的可用 IP 地址,池将部分分配节点,并且会发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的节点的通信,Batch 服务会将计算节点的状态设置为不可用。 仅支持 ARM 虚拟网络('Microsoft.Network/virtualNetworks')。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信(包括端口 29876 和 29877)启用一些保留的系统端口。 此外,在端口 443 上启用到 Azure 存储的出站连接。 有关详细信息,请参阅:https://docs.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration

NetworkSecurityGroupRule

要应用于入站终结点的网络安全组规则。

名称 类型 说明
access

NetworkSecurityGroupRuleAccess

应对指定 IP 地址、子网范围或标记执行的操作。

priority

integer

此规则的优先级。
池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 4096。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。

sourceAddressPrefix

string

要匹配规则的源地址前缀或标记。
有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。

sourcePortRanges

string[]

要匹配规则的源端口范围。
有效值为“”(对于所有端口 0 - 65535)、特定端口(即 22)或端口范围(即 100-200)。端口的范围必须为 0 到 65535。此集合中的每个条目不得重叠任何其他条目(范围或单个端口)。如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。默认值为“”。

NetworkSecurityGroupRuleAccess

应对指定 IP 地址、子网范围或标记执行的操作。

名称 类型 说明
allow

string

允许访问。

deny

string

拒绝访问。

NFSMountConfiguration

用于连接到 NFS 文件系统的信息。

名称 类型 说明
mountOptions

string

要传递给装载命令的其他命令行选项。
这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。

relativeMountPath

string

将装载文件系统的计算节点上的相对路径
所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。

source

string

要装载的文件系统的 URI。

NodeCommunicationMode

确定池如何与 Batch 服务通信。

名称 类型 说明
classic

string

使用经典通信模式的节点需要在端口 29876 和 29877 上通过“BatchNodeManagement”进行入站 TCP 通信。{region}“ 服务标记和端口 443 上的出站 TCP 通信到”Storage.region“和”BatchNodeManagement”。{region}“ 服务标记。

default

string

节点通信模式由 Batch 服务自动设置。

simplified

string

使用简化通信模式的节点需要在端口 443 上与“BatchNodeManagement”进行出站 TCP 通信。{region}“ 服务标记。 不需要打开的入站端口。

NodePlacementConfiguration

池的节点放置配置。

名称 类型 说明
policy

NodePlacementPolicyType

Batch 池上的节点放置策略类型。
Batch 服务用于预配节点的分配策略。 如果未指定,Batch 将使用区域策略。

NodePlacementPolicyType

用于分配池中的节点的放置策略。

名称 类型 说明
regional

string

池中的所有节点都将在同一区域中分配。

zonal

string

池中的节点将分布在不同的可用性区域,并尽最大努力进行平衡。

OnAllTasksComplete

当作业中的所有任务都处于完成状态时,Batch 服务应执行的操作。

名称 类型 说明
noaction

string

不执行任何操作。 除非以其他方式终止或禁用作业,否则作业将保持活动状态。

terminatejob

string

终止作业。 作业的 terminateReason 设置为“AllTasksComplete”。

OnTaskFailure

当作业中的任何任务失败时,Batch 服务应执行的操作。

名称 类型 说明
noaction

string

不执行任何操作。 除非以其他方式终止或禁用作业,否则作业将保持活动状态。

performexitoptionsjobaction

string

执行与 Task 的 exitConditions 集合中的 Task 退出条件关联的操作。 (如果这是任务指定的操作,则仍可能导致不采取任何操作。

OSDisk

计算节点(VM)操作系统磁盘的设置。

名称 类型 说明
caching

CachingType

指定缓存要求。 可能的值包括:None、ReadOnly、ReadWrite。 默认值为:标准存储无。 高级存储的 ReadOnly。
缓存的默认值为 none。 有关缓存选项的信息,请参阅:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/

diskSizeGB

integer

创建新 OS 磁盘时的初始磁盘大小(以 GB 为单位)。

ephemeralOSDiskSettings

DiffDiskSettings

指定计算节点(VM)使用的操作系统磁盘的临时磁盘设置。

managedDisk

ManagedDisk

托管磁盘参数。

writeAcceleratorEnabled

boolean

指定是应在磁盘上启用或禁用 writeAccelerator。

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。

PoolEndpointConfiguration

池的终结点配置。

名称 类型 说明
inboundNATPools

InboundNATPool[]

入站 NAT 池的列表,可用于在外部解决单个计算节点上的特定端口。
每个批处理池的最大入站 NAT 池数为 5。 如果超过入站 NAT 池的最大数目,则请求失败并显示 HTTP 状态代码 400。 如果 IPAddressProvisioningType 为 NoPublicIPAddresses,则无法指定此项。

PoolInformation

指定作业应如何分配给池。

名称 类型 说明
autoPoolSpecification

AutoPoolSpecification

临时“自动池”的特征。 提交作业时,Batch 服务将创建此自动池。
如果自动池创建失败,Batch 服务会将作业移动到已完成状态,并在作业的计划错误属性中设置池创建错误。 Batch 服务管理自动池的生存期(创建和(除非指定 keepAlive)删除。 在作业处于活动状态时影响自动池生存期的任何用户操作都将导致意外行为。 必须指定池 ID 或自动池规范,但不能同时指定这两者。

poolId

string

现有池的 ID。 作业的所有任务都将在指定的池上运行。
必须确保此属性引用的池存在。 如果 Batch 服务尝试计划作业时池不存在,则在创建具有该 ID 的池之前,不会运行该作业的任务。请注意,Batch 服务不会拒绝作业请求;它只会在池存在之前不运行任务。 必须指定池 ID 或自动池规范,但不能同时指定这两者。

PoolLifetimeOption

创建自动池的最小生存期,以及如何按计划将多个作业分配给池。

名称 类型 说明
job

string

池在专用作业的生存期内存在。 Batch 服务在创建作业时创建池。 如果“作业”选项应用于作业计划,Batch 服务将为按计划创建的每个作业创建新的自动池。

jobschedule

string

池存在于作业计划的生存期内。 Batch 服务在按计划创建第一个作业时创建池。 只能将此选项应用于作业计划,而不适用于作业。

PoolSpecification

创建新池的规范。

名称 类型 说明
applicationPackageReferences

ApplicationPackageReference[]

要安装在池中每个计算节点上的包列表。
创建池时,包的应用程序 ID 必须完全限定(/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName})。 对包引用的更改会影响所有加入池的新节点,但不会影响池中已存在于池中的计算节点,直到重新启动或重新映像这些节点。 任何给定池上最多有 10 个包引用。

autoScaleEvaluationInterval

string

根据自动缩放公式自动调整池大小的时间间隔。
默认值为 15 分钟。 最小值和最大值分别为 5 分钟和 168 小时。 如果指定的值小于 5 分钟或大于 168 小时,Batch 服务将拒绝请求并显示无效属性值错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。

autoScaleFormula

string

池中所需计算节点数的公式。
如果 enableAutoScale 设置为 false,则不能指定此属性。 如果 enableAutoScale 设置为 true,则需要它。 在创建池之前,将检查公式是否有效。 如果公式无效,Batch 服务会拒绝请求,并显示详细的错误信息。

certificateReferences

CertificateReference[]

要安装在池中每个计算节点上的证书列表。
对于 Windows 节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在 Task 工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“证书”目录,并将证书置于该目录中。

警告:此属性已弃用,将在 2024 年 2 月之后删除。 请改用 Azure KeyVault 扩展

displayName

string

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

enableAutoScale

boolean

池大小是否应随时间自动调整。
如果为 false,则必须指定至少一个 targetDedicatedNodes 和 targetLowPriorityNodes。 如果为 true,则需要 autoScaleFormula 元素。 池根据公式自动调整大小。 默认值为 false。

enableInterNodeCommunication

boolean

池是否允许在计算节点之间直接通信。
由于池的计算节点的部署限制,启用节点间通信会限制池的最大大小。 这可能会导致池未达到其所需大小。 默认值为 false。

metadata

MetadataItem[]

与池关联的名称/值对列表作为元数据。
Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。

mountConfiguration

MountConfiguration[]

要安装在池中每个节点上的文件系统列表。
这支持 Azure 文件存储、NFS、CIFS/SMB 和 Blobfuse。

networkConfiguration

NetworkConfiguration

池的网络配置。
池的网络配置。

resizeTimeout

string

将计算节点分配给池的超时。
此超时仅适用于手动缩放;当 enableAutoScale 设置为 true 时,它不起作用。 默认值为 15 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。

resourceTags

object

与池关联的用户指定的标记。
要与 Azure Batch 池关联的用户定义的标记。 指定后,这些标记将传播到与池关联的支持 Azure 资源。 仅当使用 poolAllocationMode 属性设置为“UserSubscription”创建的 Batch 帐户时,才能指定此属性。

startTask

StartTask

在联接池时在每个计算节点上运行的任务。 当将计算节点添加到池或重启计算节点时,任务将运行。
当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。 在某些情况下,即使计算节点未重新启动,StartTask 也可能重新运行。 应特别注意避免 StartTaskss 从 StartTask 工作目录创建分离进程或安装/启动服务,因为这会阻止 Batch 重新运行 StartTask。

targetDedicatedNodes

integer

池中所需的专用计算节点数。
如果 enableAutoScale 设置为 true,则不能指定此属性。 如果 enableAutoScale 设置为 false,则必须设置 targetDedicatedNodes、targetLowPriorityNodes 或两者。

targetLowPriorityNodes

integer

池中所需的现成/低优先级计算节点数。
如果 enableAutoScale 设置为 true,则不能指定此属性。 如果 enableAutoScale 设置为 false,则必须设置 targetDedicatedNodes、targetLowPriorityNodes 或两者。

targetNodeCommunicationMode

NodeCommunicationMode

池的所需节点通信模式。
如果省略,则默认值为 Default。

taskSchedulingPolicy

TaskSchedulingPolicy

任务如何在池中的计算节点之间分布。
如果未指定,则默认为分散。

taskSlotsPerNode

integer

可用于在池中的单个计算节点上运行并发任务的任务槽数。
默认值为 1。 最大值是池的 vmSize 核心数或 256 的 4 倍。

upgradePolicy

UpgradePolicy

池的升级策略。
描述升级策略 - 自动、手动或滚动。

userAccounts

UserAccount[]

将在池中的每个计算节点上创建的用户帐户列表。

virtualMachineConfiguration

VirtualMachineConfiguration

池的虚拟机配置。
必须指定此属性。

vmSize

string

池中虚拟机的大小。 池中的所有虚拟机的大小都相同。
有关池中虚拟机的可用大小的信息,请参阅为 Azure Batch 池中的计算节点选择 VM 大小(https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)。

PublicIPAddressConfiguration

池的网络配置的公共 IP 地址配置。

名称 类型 说明
ipAddressIds

string[]

预配计算节点时 Batch 服务将使用的公共 IP 列表。
此处指定的 IP 数限制池的最大大小 - 可以为每个公共 IP 分配 100 个专用节点或 100 个现成/低优先级节点。 例如,需要 250 个专用 VM 的池至少需要指定 3 个公共 IP。 此集合的每个元素都采用以下形式:/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}。

provision

IPAddressProvisioningType

池的公共 IP 地址的预配类型。
默认值为 BatchManaged。

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 以允许公共访问。

RollingUpgradePolicy

执行滚动升级时使用的配置参数。

名称 类型 说明
enableCrossZoneUpgrade

boolean

允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 仅当将 NodePlacementConfiguration 用作 Zonal 时,此字段才可设置为 true 或 false。

maxBatchInstancePercent

integer

一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此字段的值应介于 5 和 100 之间(含)。 如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都赋值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。

maxUnhealthyInstancePercent

integer

规模集中可能同时运行不正常的虚拟机实例的最大百分比,无论是由于升级,还是虚拟机运行状况检查在滚动升级中止之前处于不正常状态。 在启动任何批处理之前,将检查此约束。 此字段的值应介于 5 和 100 之间(含)。 如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都赋值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。

maxUnhealthyUpgradedInstancePercent

integer

可发现处于不正常状态的已升级虚拟机实例的最大百分比。 升级每个批处理后,将进行此检查。 如果超过此百分比,滚动更新将中止。 此字段的值应介于 0 和 100 之间(含)。

pauseTimeBetweenBatches

string

完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。

prioritizeUnhealthyInstances

boolean

在任何正常运行的实例之前,升级规模集中的所有不正常实例。

rollbackFailedInstancesOnPolicyBreach

boolean

如果违反滚动升级策略,回滚失败实例到以前的模型。

SecurityEncryptionTypes

指定托管磁盘的 EncryptionType。 它设置为 VMGuestStateOnly 以仅加密 VMGuestState blob,而 NonPersistedTPM 用于不保留 VMGuestState blob 中的固件状态。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

名称 类型 说明
NonPersistedTPM

string

VMGuestStateOnly

string

SecurityProfile

指定虚拟机或虚拟机规模集的安全配置文件设置。

名称 类型 说明
encryptionAtHost

boolean

用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 有关主机要求加密的详细信息,请参阅 https://learn.microsoft.com/azure/virtual-machines/disk-encryption#supported-vm-sizes

securityType

SecurityTypes

指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。

uefiSettings

UefiSettings

指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。
指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。

SecurityTypes

指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。

名称 类型 说明
confidentialVM

string

Azure 机密计算为具有高安全性和机密性要求的租户提供机密 VM。 这些 VM 提供强大的硬件强制边界,以帮助满足安全需求。 可以使用机密 VM 进行迁移,而无需更改代码,而平台可保护 VM 的状态不被读取或修改。

trustedLaunch

string

受信任的启动可防范高级和持久性攻击技术。

ServiceArtifactReference

指定使用“latest”映像版本时,用于为规模集中的所有虚拟机设置相同映像版本的服务项目引用 ID。

名称 类型 说明
id

string

ServiceArtifactReference 的服务项目引用 ID
以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID

StartTask

当节点加入 Azure Batch 服务中的池或重新启动或重新映像计算节点时运行的任务。

名称 类型 说明
commandLine

string

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

containerSettings

TaskContainerSettings

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

environmentSettings

EnvironmentSetting[]

StartTask 的环境变量设置列表。

maxTaskRetryCount

integer

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

resourceFiles

ResourceFile[]

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

userIdentity

UserIdentity

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

waitForSuccess

boolean

在计划计算节点上的任何任务之前,Batch 服务是否应等待 StartTask 成功完成(即退出代码 0)。
如果 True 且 StartTask 在节点上失败,Batch 服务将重试 StartTask,最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,则 Batch 服务会标记节点不可用,并且不会为其计划任务。 可以通过计算节点状态和故障信息详细信息来检测此条件。 如果为 false,Batch 服务不会等待 StartTask 完成。 在这种情况下,在 StartTask 仍在运行时,其他任务可以开始在计算节点上执行;即使 StartTask 失败,新任务将继续在计算节点上计划。 默认值为 true。

StorageAccountType

用于创建数据磁盘或 OS 磁盘的存储帐户类型。

名称 类型 说明
premium_lrs

string

数据磁盘/OS 磁盘应使用高级本地冗余存储。

standard_lrs

string

数据磁盘/OS 磁盘应使用标准本地冗余存储。

standardssd_lrs

string

数据磁盘/OS 磁盘应使用标准 SSD 本地冗余存储。

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”。

TaskSchedulingPolicy

指定应如何跨计算节点分配任务。

名称 类型 说明
nodeFillType

ComputeNodeFillType

任务如何在池中的计算节点之间分布。
如果未指定,则默认为分散。

UefiSettings

指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。

名称 类型 说明
secureBootEnabled

boolean

指定是否应在虚拟机上启用安全启动。

vTpmEnabled

boolean

指定是否应在虚拟机上启用 vTPM。

UpgradeMode

指定升级到规模集中虚拟机的模式。

可能的值包括:

手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。

自动 - 规模集中的所有虚拟机同时自动更新。

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。

名称 类型 说明
automatic

string

规模集中的所有虚拟机都会同时自动更新。

manual

string

可以控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。

rolling

string

规模集中的现有实例将分批关闭以升级。 升级后的批处理完成后,实例将再次开始获取流量,下一批将开始。 这一直持续到所有实例 up-to-date。

UpgradePolicy

描述升级策略 - 自动、手动或滚动。

名称 类型 说明
automaticOSUpgradePolicy

AutomaticOSUpgradePolicy

用于执行自动 OS 升级的配置参数。
用于执行自动 OS 升级的配置参数。

mode

UpgradeMode

指定升级到规模集中虚拟机的模式。

可能的值包括:

手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。

自动 - 规模集中的所有虚拟机同时自动更新。

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。

rollingUpgradePolicy

RollingUpgradePolicy

执行滚动升级时使用的配置参数。
执行滚动升级时使用的配置参数。

UserAccount

用于创建用于在 Azure Batch 计算节点上执行任务的用户的属性。

名称 类型 说明
elevationLevel

ElevationLevel

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

linuxUserConfiguration

LinuxUserConfiguration

用户帐户的特定于 Linux 的用户配置。
如果在 Windows 池上指定,则忽略此属性。 如果未指定,则使用默认选项创建用户。

name

string

用户帐户的名称。 名称可以包含最大长度为 20 的任何 Unicode 字符。

password

string

用户帐户的密码。

windowsUserConfiguration

WindowsUserConfiguration

用户帐户的特定于 Windows 的用户配置。
仅当用户在 Windows 池上时,才能指定此属性。 如果未指定且在 Windows 池上,则会使用默认选项创建用户。

UserIdentity

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

名称 类型 说明
autoUser

AutoUserSpecification

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

username

string

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

VirtualMachineConfiguration

基于 Azure 虚拟机基础结构的池中计算节点的配置。

名称 类型 说明
containerConfiguration

ContainerConfiguration

池的容器配置。
如果指定,则会在池中的每个计算节点上执行安装程序,以允许任务在容器中运行。 在此池上运行的所有常规任务和作业管理器任务都必须指定 containerSettings 属性,所有其他任务都可以指定它。

dataDisks

DataDisk[]

附加到池中计算节点的数据磁盘的配置。
如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 这无法更新。 每个计算节点获取自己的磁盘(磁盘不是文件共享)。 无法附加现有磁盘,每个附加磁盘为空。 从池中删除计算节点时,也会删除磁盘及其关联的所有数据。 附加磁盘后未格式化,必须在使用前对其进行格式化 - 有关详细信息,请参阅 https://docs.microsoft.com/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linuxhttps://docs.microsoft.com/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine

diskEncryptionConfiguration

DiskEncryptionConfiguration

池的磁盘加密配置。
如果指定了加密,则会在节点预配期间对池中的每个节点执行加密。

extensions

VMExtension[]

池的虚拟机扩展。
如果指定,此配置中提到的扩展将安装在每个节点上。

imageReference

ImageReference

对 Azure 虚拟机市场映像或要使用的自定义虚拟机映像的引用。

licenseType

string

部署操作系统时要使用的本地许可证的类型。
这仅适用于包含 Windows 操作系统的映像,并且仅在保存要部署的计算节点的有效本地许可证时使用。 如果省略,则不会应用本地许可折扣。 值为:

Windows_Server - 本地许可证适用于 Windows Server。 Windows_Client - 本地许可证适用于 Windows 客户端。

nodeAgentSKUId

string

要在池中的计算节点上预配的 Batch 计算节点代理的 SKU。
Batch 计算节点代理是在池中的每个计算节点上运行的程序,并在计算节点和 Batch 服务之间提供命令和控制接口。 对于不同的操作系统,计算节点代理有不同的实现(称为 SKU)。 必须指定与所选映像引用匹配的计算节点代理 SKU。 若要获取支持的计算节点代理 SKU 及其已验证映像引用列表,请参阅“列出支持的计算节点代理 SKU”操作。

nodePlacementConfiguration

NodePlacementConfiguration

池的节点放置配置。
此配置将指定池中节点的物理分配方式的规则。

osDisk

OSDisk

虚拟机操作系统磁盘的设置。

securityProfile

SecurityProfile

指定虚拟机或虚拟机规模集的安全配置文件设置。
指定虚拟机或虚拟机规模集的安全配置文件设置。

serviceArtifactReference

ServiceArtifactReference

指定使用“latest”映像版本时,用于为规模集中的所有虚拟机设置相同映像版本的服务项目引用 ID。
以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID

windowsConfiguration

WindowsConfiguration

虚拟机上的 Windows 操作系统设置。
如果 imageReference 属性指定 Linux OS 映像,则不能指定此属性。

VMDiskSecurityProfile

指定托管磁盘的安全配置文件设置。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

名称 类型 说明
securityEncryptionType

SecurityEncryptionTypes

指定托管磁盘的 EncryptionType。 它设置为 VMGuestStateOnly 以仅加密 VMGuestState blob,而 NonPersistedTPM 用于不保留 VMGuestState blob 中的固件状态。 注意:只能为机密 VM 设置它,在使用机密 VM 时是必需的。

VMExtension

虚拟机扩展的配置。

名称 类型 说明
autoUpgradeMinorVersion

boolean

指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。

enableAutomaticUpgrade

boolean

指示如果有较新版本的扩展可用,平台是否应自动升级扩展。

name

string

虚拟机扩展的名称。

protectedSettings

object

该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。

provisionAfterExtensions

string[]

扩展名称的集合。
需要预配此扩展的扩展名称的集合。

publisher

string

扩展处理程序发布者的名称。

settings

object

扩展的 JSON 格式公共设置。

type

string

扩展的类型。

typeHandlerVersion

string

脚本处理程序的版本。

WindowsConfiguration

要应用于虚拟机的 Windows 操作系统设置。

名称 类型 说明
enableAutomaticUpdates

boolean

是否在虚拟机上启用自动更新。
如果省略,则默认值为 true。

WindowsUserConfiguration

用于在 Windows 计算节点上创建用户帐户的属性。

名称 类型 说明
loginMode

LoginMode

用户的登录模式
默认值为“batch”。