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

Microsoft.Batch batchAccounts/pools 2024-02-01

Bicep 资源定义

可以使用目标操作部署 batchAccounts/pools 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Batch/batchAccounts/pools@2024-02-01' = {
  parent: resourceSymbolicName
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  name: 'string'
  properties: {
    applicationLicenses: [
      'string'
    ]
    applicationPackages: [
      {
        id: 'string'
        version: 'string'
      }
    ]
    certificates: [
      {
        id: 'string'
        storeLocation: 'string'
        storeName: 'string'
        visibility: [
          'string'
        ]
      }
    ]
    deploymentConfiguration: {
      cloudServiceConfiguration: {
        osFamily: 'string'
        osVersion: 'string'
      }
      virtualMachineConfiguration: {
        containerConfiguration: {
          containerImageNames: [
            'string'
          ]
          containerRegistries: [
            {
              identityReference: {
                resourceId: 'string'
              }
              password: 'string'
              registryServer: 'string'
              username: 'string'
            }
          ]
          type: 'string'
        }
        dataDisks: [
          {
            caching: 'string'
            diskSizeGB: int
            lun: int
            storageAccountType: 'string'
          }
        ]
        diskEncryptionConfiguration: {
          targets: [
            'string'
          ]
        }
        extensions: [
          {
            autoUpgradeMinorVersion: bool
            enableAutomaticUpgrade: bool
            name: 'string'
            protectedSettings: any(Azure.Bicep.Types.Concrete.AnyType)
            provisionAfterExtensions: [
              'string'
            ]
            publisher: 'string'
            settings: any(Azure.Bicep.Types.Concrete.AnyType)
            type: 'string'
            typeHandlerVersion: 'string'
          }
        ]
        imageReference: {
          id: 'string'
          offer: 'string'
          publisher: 'string'
          sku: 'string'
          version: 'string'
        }
        licenseType: 'string'
        nodeAgentSkuId: 'string'
        nodePlacementConfiguration: {
          policy: 'string'
        }
        osDisk: {
          caching: 'string'
          diskSizeGB: int
          ephemeralOSDiskSettings: {
            placement: 'CacheDisk'
          }
          managedDisk: {
            storageAccountType: 'string'
          }
          writeAcceleratorEnabled: bool
        }
        securityProfile: {
          encryptionAtHost: bool
          securityType: 'trustedLaunch'
          uefiSettings: {
            secureBootEnabled: bool
            vTpmEnabled: bool
          }
        }
        serviceArtifactReference: {
          id: 'string'
        }
        windowsConfiguration: {
          enableAutomaticUpdates: bool
        }
      }
    }
    displayName: 'string'
    interNodeCommunication: 'string'
    metadata: [
      {
        name: 'string'
        value: 'string'
      }
    ]
    mountConfiguration: [
      {
        azureBlobFileSystemConfiguration: {
          accountKey: 'string'
          accountName: 'string'
          blobfuseOptions: 'string'
          containerName: 'string'
          identityReference: {
            resourceId: 'string'
          }
          relativeMountPath: 'string'
          sasKey: 'string'
        }
        azureFileShareConfiguration: {
          accountKey: 'string'
          accountName: 'string'
          azureFileUrl: 'string'
          mountOptions: 'string'
          relativeMountPath: 'string'
        }
        cifsMountConfiguration: {
          mountOptions: 'string'
          password: 'string'
          relativeMountPath: 'string'
          source: 'string'
          userName: 'string'
        }
        nfsMountConfiguration: {
          mountOptions: 'string'
          relativeMountPath: 'string'
          source: 'string'
        }
      }
    ]
    networkConfiguration: {
      dynamicVnetAssignmentScope: 'string'
      enableAcceleratedNetworking: bool
      endpointConfiguration: {
        inboundNatPools: [
          {
            backendPort: int
            frontendPortRangeEnd: int
            frontendPortRangeStart: int
            name: 'string'
            networkSecurityGroupRules: [
              {
                access: 'string'
                priority: int
                sourceAddressPrefix: 'string'
                sourcePortRanges: [
                  'string'
                ]
              }
            ]
            protocol: 'string'
          }
        ]
      }
      publicIPAddressConfiguration: {
        ipAddressIds: [
          'string'
        ]
        provision: 'string'
      }
      subnetId: 'string'
    }
    resourceTags: {
      {customized property}: 'string'
    }
    scaleSettings: {
      autoScale: {
        evaluationInterval: 'string'
        formula: 'string'
      }
      fixedScale: {
        nodeDeallocationOption: 'string'
        resizeTimeout: 'string'
        targetDedicatedNodes: int
        targetLowPriorityNodes: int
      }
    }
    startTask: {
      commandLine: 'string'
      containerSettings: {
        containerRunOptions: 'string'
        imageName: 'string'
        registry: {
          identityReference: {
            resourceId: 'string'
          }
          password: 'string'
          registryServer: 'string'
          username: 'string'
        }
        workingDirectory: 'string'
      }
      environmentSettings: [
        {
          name: 'string'
          value: 'string'
        }
      ]
      maxTaskRetryCount: int
      resourceFiles: [
        {
          autoStorageContainerName: 'string'
          blobPrefix: 'string'
          fileMode: 'string'
          filePath: 'string'
          httpUrl: 'string'
          identityReference: {
            resourceId: 'string'
          }
          storageContainerUrl: 'string'
        }
      ]
      userIdentity: {
        autoUser: {
          elevationLevel: 'string'
          scope: 'string'
        }
        userName: 'string'
      }
      waitForSuccess: bool
    }
    targetNodeCommunicationMode: 'string'
    taskSchedulingPolicy: {
      nodeFillType: 'string'
    }
    taskSlotsPerNode: int
    upgradePolicy: {
      automaticOSUpgradePolicy: {
        disableAutomaticRollback: bool
        enableAutomaticOSUpgrade: bool
        osRollingUpgradeDeferral: bool
        useRollingUpgradePolicy: bool
      }
      mode: 'string'
      rollingUpgradePolicy: {
        enableCrossZoneUpgrade: bool
        maxBatchInstancePercent: int
        maxUnhealthyInstancePercent: int
        maxUnhealthyUpgradedInstancePercent: int
        pauseTimeBetweenBatches: 'string'
        prioritizeUnhealthyInstances: bool
        rollbackFailedInstancesOnPolicyBreach: bool
      }
    }
    userAccounts: [
      {
        elevationLevel: 'string'
        linuxUserConfiguration: {
          gid: int
          sshPrivateKey: 'string'
          uid: int
        }
        name: 'string'
        password: 'string'
        windowsUserConfiguration: {
          loginMode: 'string'
        }
      }
    ]
    vmSize: 'string'
  }
}

属性值

ApplicationPackageReference

名字 描述 价值
id 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 string (必需)
版本 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 字符串

AutomaticOSUpgradePolicy

名字 描述 价值
disableAutomaticRollback 是否应禁用 OS 映像回滚功能。 bool
enableAutomaticOSUpgrade 指示当较新版本的 OS 映像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

如果对于基于 Windows 的池,WindowsConfiguration.enableAutomaticUpdates 不能设置为 true。
bool
osRollingUpgradeDeferral 如果 OS 升级正在运行任务,请延迟 TVM 上的 OS 升级。 bool
useRollingUpgradePolicy 指示是否应在自动 OS 升级期间使用滚动升级策略。 如果未在 VMSS 上定义任何策略,则自动 OS 升级将回退到默认策略。 bool

AutoScaleSettings

名字 描述 价值
evaluationInterval 如果省略,则默认值为 15 分钟(PT15M)。 字符串
公式 池中所需计算节点数的公式。 string (必需)

AutoUserSpecification

名字 描述 价值
elevationLevel 默认值为 nonAdmin。 “Admin”
“NonAdmin”
范围 默认值为 Pool。 如果池正在运行 Windows,则应指定任务值(如果需要在任务之间进行更严格的隔离)。 例如,如果任务以可能影响其他任务的方式改变注册表,或者已在池中指定了证书,而正常任务不应可访问,但应可通过启动任务访问。 “Pool”
“Task”

AzureBlobFileSystemConfiguration

名字 描述 价值
accountKey 此属性与 sasKey 和标识互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。
accountName Azure 存储帐户名称。 string (必需)
blobfuseOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
containerName Azure Blob 存储容器名称。 string (必需)
identityReference 此属性与 accountKey 和 sasKey 互斥;必须指定一个。 ComputeNodeIdentityReference
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
sasKey 此属性与 accountKey 和 identity 互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。

AzureFileShareConfiguration

名字 描述 价值
accountKey Azure 存储帐户密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
accountName Azure 存储帐户名称。 string (必需)
azureFileUrl 此格式为“https://{account}.file.core.windows.net/”。 string (必需)
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)

BatchPoolIdentity

名字 描述 价值
类型 用于 Batch 池的标识类型。 “None”
“UserAssigned”(必需)
userAssignedIdentities 与 Batch 池关联的用户标识列表。 BatchPoolIdentityUserAssignedIdentities

BatchPoolIdentityUserAssignedIdentities

名字 描述 价值

CertificateReference

名字 描述 价值
id 要安装在池中的证书的完全限定 ID。 这必须与池位于同一批处理帐户内。 string (必需)
storeLocation 默认值为 currentUser。 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 “CurrentUser”
“LocalMachine”
storeName 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 常见的存储名称包括:My、Root、CA、Trust、Trustallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定义存储名称。 默认值为“我的”。 字符串
能见度 计算节点上的哪些用户帐户应有权访问证书的专用数据。 包含任一项的字符串数组:
“RemoteUser”
“StartTask”
“Task”

CifsMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
密码 用于针对 CIFS 文件系统进行身份验证的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)
userName 用于对 CIFS 文件系统进行身份验证的用户。 string (必需)

CloudServiceConfiguration

名字 描述 价值
osFamily 可能的值为:2 - OS 系列 2,等效于 Windows Server 2008 R2 SP1。 3 - OS 系列 3,等效于 Windows Server 2012。 4 - OS 系列 4,等效于 Windows Server 2012 R2。 5 - OS 系列 5,相当于 Windows Server 2016。 6 - OS 系列 6,等效于 Windows Server 2019。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 string (必需)
osVersion 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 字符串

ComputeNodeIdentityReference

名字 描述 价值
resourceId 用户分配标识的 ARM 资源 ID。 字符串

ContainerConfiguration

名字 描述 价值
containerImageNames 这是完整的映像引用,如指定为“docker pull”。 除非映像使用备用注册表完全限定映像,否则映像将源自默认 Docker 注册表。 string[]
containerRegistries 如果必须从需要凭据的专用注册表下载任何映像,则必须在此处提供这些凭据。 ContainerRegistry[]
类型 要使用的容器技术。 “CriCompatible”
“DockerCompatible”(必需)

ContainerRegistry

名字 描述 价值
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
密码 登录到注册表服务器的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。
registryServer 如果省略,则默认值为“docker.io”。 字符串
username 要登录到注册表服务器的用户名。 字符串

DataDisk

名字 描述 价值
缓存 值为:

none - 未启用磁盘的缓存模式。
readOnly - 磁盘的缓存模式是只读的。
readWrite - 磁盘的缓存模式是读取和写入。

缓存的默认值为 none。 有关缓存选项的信息,请参阅:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
“None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新数据磁盘时的初始磁盘大小(以 GB 为单位)。 int (必需)
lun 用于唯一标识每个数据磁盘。 如果附加多个磁盘,每个磁盘应具有不同的 lun。 该值必须介于 0 和 63 之间(含)。 int (必需)
storageAccountType 如果省略,则默认值为“Standard_LRS”。 值为:

Standard_LRS - 数据磁盘应使用标准本地冗余存储。
Premium_LRS - 数据磁盘应使用高级本地冗余存储。
“Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

DeploymentConfiguration

名字 描述 价值
cloudServiceConfiguration 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 CloudServiceConfiguration
virtualMachineConfiguration 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 VirtualMachineConfiguration

DiffDiskSettings

名字 描述 价值
放置 此属性可由请求中的用户使用,以选择操作系统应位于的位置。例如,用于临时 OS 磁盘预配的缓存磁盘空间。 有关临时 OS 磁盘大小要求的详细信息,请参阅 /azure/virtual-machines/windows/ephemeral-os-disks#size-requirements 和 /azure/virtual-machines/linux/ephemeral-os-disks#size-requirements 上的 Windows VM 的临时 OS 磁盘大小要求。 “CacheDisk”

DiskEncryptionConfiguration

名字 描述 价值
目标 在 Linux 池中,仅支持“TemporaryDisk”;在 Windows 池中,必须指定“OsDisk”和“TemporaryDisk”。 包含任一项的字符串数组:
“OsDisk”
“TemporaryDisk”

EnvironmentSetting

名字 描述 价值
名字 环境变量的名称。 string (必需)
价值 环境变量的值。 字符串

FixedScaleSettings

名字 描述 价值
nodeDeallocationOption 如果省略,则默认值为“重新排队”。 “Requeue”
“RetainedData”
“TaskCompletion”
“Terminate”
resizeTimeout 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 字符串
targetDedicatedNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int
targetLowPriorityNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int

ImageReference

名字 描述 价值
id 此属性与其他属性互斥。 Azure 计算库映像必须与 Azure Batch 帐户位于同一区域中的副本。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 字符串
提供 例如,UbuntuServer 或 WindowsServer。 字符串
发行人 例如,Canonical 或 MicrosoftWindowsServer。 字符串
sku 例如,18.04-LTS 或 2022 数据中心。 字符串
版本 可以指定值“latest”以选择映像的最新版本。 如果省略,则默认值为“latest”。 字符串

InboundNatPool

名字 描述 价值
backendPort 这在 Batch 池中必须是唯一的。 可接受的值为 1 到 65535,但保留这些值时为 22、3389、29876 和 29877。 如果提供任何保留值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeEnd 可接受的值介于 1 到 65534 之间,但 Batch 服务保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeStart 可接受的值介于 1 到 65534 之间,但保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
名字 名称在 Batch 池中必须唯一,可以包含字母、数字、下划线、句点和连字符。 名称必须以字母或数字开头,必须以字母、数字或下划线结尾,并且不能超过 77 个字符。 如果提供任何无效值,则请求失败并显示 HTTP 状态代码 400。 string (必需)
networkSecurityGroupRules 可以在 Batch 池的所有终结点上指定的最大规则数为 25。 如果未指定网络安全组规则,则会创建默认规则以允许对指定的 backendPort 进行入站访问。 如果超过网络安全组规则的最大数目,则请求失败并显示 HTTP 状态代码 400。 NetworkSecurityGroupRule[]
协议 终结点的协议。 “TCP”
“UDP”(必需)

LinuxUserConfiguration

名字 描述 价值
gid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 gid。 int
sshPrivateKey 私钥不得受密码保护。 当池的 enableInterNodeCommunication 属性为 true 时,私钥用于在 Linux 池中的节点之间自动配置基于非对称密钥的身份验证(如果 enableInterNodeCommunication 为 false,则忽略该身份验证)。 它通过将密钥对放入用户的 .ssh 目录来执行此操作。 如果未指定,则节点之间未配置无密码 SSH(未修改用户的 .ssh 目录)。 字符串

约束:
敏感值。 以安全参数的形式传入。
uid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 uid。 int

ManagedDisk

名字 描述 价值
storageAccountType 用于创建数据磁盘或 OS 磁盘的存储帐户类型。 “Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

MetadataItem

名字 描述 价值
名字 元数据项的名称。 string (必需)
价值 元数据项的值。 string (必需)

Microsoft.Batch/batchAccounts/pools

名字 描述 价值
身份 用于 Batch 池的标识类型。 BatchPoolIdentity
名字 资源名称 字符串

约束:
最小长度 = 1
最大长度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必需)
父母 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。

有关详细信息,请参阅 父资源外部的子资源
类型资源的符号名称:batchAccounts
性能 与池关联的属性。 PoolProperties

MountConfiguration

名字 描述 价值
azureBlobFileSystemConfiguration 此属性与其他所有属性互斥。 AzureBlobFileSystemConfiguration
azureFileShareConfiguration 此属性与其他所有属性互斥。 AzureFileShareConfiguration
cifsMountConfiguration 此属性与其他所有属性互斥。 CifsMountConfiguration
nfsMountConfiguration 此属性与其他所有属性互斥。 NFSMountConfiguration

NetworkConfiguration

名字 描述 价值
dynamicVnetAssignmentScope 动态 vnet 分配的范围。 “job”
“none”
enableAcceleratedNetworking 加速网络使单个根 I/O 虚拟化(SR-IOV)能够连接到 VM,这可能会导致网络性能得到改善。 有关详细信息,请参阅:/azure/virtual-network/accelerated-networking-overview。 bool
endpointConfiguration 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 PoolEndpointConfiguration
publicIPAddressConfiguration 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 PublicIPAddressConfiguration
subnetId 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 对于 cloudServiceConfiguration 池,仅支持“经典”VNET。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字符串

NetworkSecurityGroupRule

名字 描述 价值
访问 应对指定 IP 地址、子网范围或标记执行的操作。 “允许”
“拒绝”(必需)
优先权 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 4096。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
sourceAddressPrefix 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 string (必需)
sourcePortRanges 有效值为“*”(对于所有端口 0 - 65535)或端口或端口范围的数组(即 100-200)。 端口应介于 0 到 65535 的范围内,端口范围或端口不能重叠。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 默认值为 *。 string[]

NFSMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)

NodePlacementConfiguration

名字 描述 价值
政策 Batch 服务用于预配节点的分配策略。 如果未指定,Batch 将使用区域策略。 “区域”
“区域”

OSDisk

名字 描述 价值
缓存 要为磁盘启用的缓存类型。 “None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新 OS 磁盘时的初始磁盘大小(以 GB 为单位)。 int
ephemeralOSDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
managedDisk ManagedDisk
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

PoolEndpointConfiguration

名字 描述 价值
inboundNatPools 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 如果 IPAddressProvisioningType 为 NoPublicIPAddresses,则无法指定此项。 InboundNatPool[] (必需)

PoolProperties

名字 描述 价值
applicationLicenses 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 string[]
applicationPackages 对应用程序包引用的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 任何给定池上最多有 10 个应用程序包引用。 ApplicationPackageReference[]
证书 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。

警告:此属性已弃用,将在 2024 年 2 月之后删除。 请改用 Azure KeyVault 扩展
CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 DeploymentConfiguration
displayName 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 字符串
interNodeCommunication 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 “Disabled”
“Enabled”
元数据 Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 MetadataItem[]
mountConfiguration 这支持 Azure 文件存储、NFS、CIFS/SMB 和 Blobfuse。 MountConfiguration[]
networkConfiguration 池的网络配置。 NetworkConfiguration
resourceTags 要与 Azure Batch 池关联的用户定义的标记。 指定后,这些标记将传播到与池关联的支持 Azure 资源。 仅当使用 poolAllocationMode 属性设置为“UserSubscription”创建的 Batch 帐户时,才能指定此属性。 PoolPropertiesResourceTags
scaleSettings 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 ScaleSettings
startTask 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 StartTask
targetNodeCommunicationMode 如果省略,则默认值为 Default。 “经典”
“Default”
“简化”
taskSchedulingPolicy 如果未指定,则默认为分散。 TaskSchedulingPolicy
taskSlotsPerNode 默认值为 1。 最大值是池的 vmSize 核心数或 256 的 4 倍。 int
upgradePolicy 描述升级策略 - 自动、手动或滚动。 UpgradePolicy
userAccounts 将在池中的每个节点上创建的用户帐户列表。 UserAccount[]
vmSize 有关云服务池(使用 cloudServiceConfiguration 创建的池)的可用虚拟机大小的信息,请参阅云服务的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支持除 ExtraSmall 之外的所有云服务 VM 大小。 有关使用虚拟机市场(使用 virtualMachineConfiguration 创建的池)中的映像的可用 VM 大小的信息,请参阅虚拟机(Linux)(https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/)或虚拟机(Windows)的大小(https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支持除STANDARD_A0和具有高级存储(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)之外的所有 Azure VM 大小。 字符串

PoolPropertiesResourceTags

名字 描述 价值

PublicIPAddressConfiguration

名字 描述 价值
ipAddressIds 此处指定的 IP 数限制池的最大大小 - 可以为每个公共 IP 分配 100 个专用节点或 100 个现成/低优先级节点。 例如,需要 250 个专用 VM 的池至少需要指定 3 个公共 IP。 此集合的每个元素都采用以下形式:/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}。 string[]
准备 默认值为 BatchManaged “BatchManaged”
“NoPublicIPAddresses”
“UserManaged”

ResourceFile

名字 描述 价值
autoStorageContainerName autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 字符串
blobPrefix 仅当使用 autoStorageContainerName 或 storageContainerUrl 时,该属性才有效。 此前缀可以是部分文件名或子目录。 如果未指定前缀,则会下载容器中的所有文件。 字符串
fileMode 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 字符串
filePath 如果指定了 httpUrl 属性,则需要 filePath,并描述文件将下载到的路径,包括文件名。 否则,如果指定 autoStorageContainerName 或 storageContainerUrl 属性,则 filePath 是可选的,并且是将文件下载到的目录。 如果 filePath 用作目录,则与输入数据关联的任何目录结构都将完整保留并追加到指定的 filePath 目录。 指定的相对路径不能脱离任务的工作目录(例如,使用'.')。 字符串
httpUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 如果 URL 指向 Azure Blob 存储,则必须从计算节点读取该 URL。 可通过三种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),使用具有读取权限的托管标识,或为 Blob 或其容器设置 ACL 以允许公共访问。 字符串
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
storageContainerUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 此 URL 必须可从计算节点读取和列出。 可通过三种方法获取 Azure 存储中容器的此类 URL:包括授予对容器的读取和列表权限的共享访问签名(SAS),使用具有读取和列表权限的托管标识,或为容器设置 ACL 以允许公共访问。 字符串

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 如果未设置此字段,Azure Batch 将不会设置其默认值。 创建的 VirtualMachineScaleSet 上的 enableCrossZoneUpgrade 值将由 VirtualMachineScaleSet 上的默认配置决定。 仅当将 NodePlacementConfiguration 用作 Zonal 时,此字段才可设置为 true 或 false。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此字段的值应介于 5 和 100 之间(含)。 如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都赋值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。 int

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

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

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool
rollbackFailedInstancesOnPolicyBreach 如果违反滚动升级策略,回滚失败实例到以前的模型。 bool

ScaleSettings

名字 描述 价值
autoScale 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 AutoScaleSettings
fixedScale 此属性和 autoScale 互斥,必须指定其中一个属性。 FixedScaleSettings

SecurityProfile

名字 描述 价值
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 bool
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。 “trustedLaunch”
uefiSettings 指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。 UefiSettings

ServiceArtifactReference

名字 描述 价值
id 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID string (必需)

StartTask

名字 描述 价值
commandLine 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 字符串
containerSettings 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,任务命令行在容器中执行。 TaskContainerSettings
environmentSettings 启动任务的环境变量设置列表。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 默认值为 0 int
resourceFiles Batch 服务在运行命令行之前将下载到计算节点的文件列表。 ResourceFile[]
userIdentity 如果省略,任务将作为任务唯一的非管理用户运行。 UserIdentity
waitForSuccess 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 true。 bool

TaskContainerSettings

名字 描述 价值
containerRunOptions 除了 Batch 服务控制的选项外,这些附加选项还作为“docker create”命令的参数提供。 字符串
imageName 这是完整的映像引用,如指定为“docker pull”。 如果未将标记作为映像名称的一部分提供,则标记“:latest”用作默认值。 string (必需)
注册表 如果在创建池时已提供此设置,则可以省略此设置。 ContainerRegistry
workingDirectory 用于指示容器任务工作目录所在的位置的标志。 默认值为“taskWorkingDirectory”。 “ContainerImageDefault”
“TaskWorkingDirectory”

TaskSchedulingPolicy

名字 描述 价值
nodeFillType 如何跨计算节点分配任务。 “Pack”
“分散”(必需)

UefiSettings

名字 描述 价值
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 bool

UpgradePolicy

名字 描述 价值
automaticOSUpgradePolicy 用于执行自动 OS 升级的配置参数。 AutomaticOSUpgradePolicy
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。
“automatic”
“manual”
“滚动”(必需)
rollingUpgradePolicy 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 RollingUpgradePolicy

UserAccount

名字 描述 价值
elevationLevel nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 “Admin”
“NonAdmin”
linuxUserConfiguration 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 LinuxUserConfiguration
名字 用户帐户的名称。 名称可以包含最大长度为 20 的任何 Unicode 字符。 string (必需)
密码 用户帐户的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
windowsUserConfiguration 只有在用户位于 Windows 池中时,才能指定此属性。 如果未指定且在 Windows 池上,则会使用默认选项创建用户。 WindowsUserConfiguration

UserAssignedIdentities

名字 描述 价值

UserIdentity

名字 描述 价值
autoUser userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 AutoUserSpecification
userName userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 字符串

VirtualMachineConfiguration

名字 描述 价值
containerConfiguration 如果指定,则会在池中的每个节点上执行安装程序,以允许任务在容器中运行。 在此池上运行的所有常规任务和作业管理器任务都必须指定 containerSettings 属性,所有其他任务都可以指定它。 ContainerConfiguration
dataDisks 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 DataDisk[]
diskEncryptionConfiguration 如果指定了加密,则会在节点预配期间对池中的每个节点执行加密。 DiskEncryptionConfiguration
扩展 如果指定,此配置中提到的扩展将安装在每个节点上。 VMExtension[]
imageReference 对 Azure 虚拟机市场映像或自定义虚拟机的 Azure 映像资源的引用。 若要获取 Azure Batch 验证的所有 imageReference 的列表,请参阅“列出支持的节点代理 SKU”操作。 ImageReference(必需)
licenseType 这仅适用于包含 Windows 操作系统的映像,并且仅在为将要部署的节点保留有效的本地许可证时使用。 如果省略,则不会应用本地许可折扣。 值为:

Windows_Server - 本地许可证适用于 Windows Server。
Windows_Client - 本地许可证适用于 Windows 客户端。
字符串
nodeAgentSkuId Batch 节点代理是在池中的每个节点上运行的程序,并在节点与 Batch 服务之间提供命令和控制接口。 对于不同的操作系统,节点代理(称为 SKU)有不同的实现。 必须指定与所选映像引用匹配的节点代理 SKU。 若要获取支持的节点代理 SKU 及其已验证映像引用列表,请参阅“列出支持的节点代理 SKU”操作。 string (必需)
nodePlacementConfiguration 此配置将指定池中节点的物理分配方式的规则。 NodePlacementConfiguration
osDisk 包含临时 OSDisk 设置的配置。 OSDisk
securityProfile 指定虚拟机或虚拟机规模集的安全配置文件设置。 SecurityProfile
serviceArtifactReference 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID ServiceArtifactReference
windowsConfiguration 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 WindowsConfiguration

VMExtension

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
名字 虚拟机扩展的名称。 string (必需)
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 string (必需)
设置 扩展的 JSON 格式公共设置。 任何
类型 扩展的类型。 string (必需)
typeHandlerVersion 脚本处理程序的版本。 字符串

WindowsConfiguration

名字 描述 价值
enableAutomaticUpdates 如果省略,则默认值为 true。 bool

WindowsUserConfiguration

名字 描述 价值
loginMode 指定用户的登录模式。 VirtualMachineConfiguration 池的默认值为交互式模式,而 CloudServiceConfiguration 池的默认值为批处理模式。 “Batch”
“Interactive”

快速入门示例

以下快速入门示例部署此资源类型。

Bicep 文件 描述
不带公共 IP 地址的 Azure Batch 池 此模板创建没有公共 IP 地址的 Azure Batch 简化节点通信池。

ARM 模板资源定义

可以使用目标操作部署 batchAccounts/pools 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Batch/batchAccounts/pools",
  "apiVersion": "2024-02-01",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "properties": {
    "applicationLicenses": [ "string" ],
    "applicationPackages": [
      {
        "id": "string",
        "version": "string"
      }
    ],
    "certificates": [
      {
        "id": "string",
        "storeLocation": "string",
        "storeName": "string",
        "visibility": [ "string" ]
      }
    ],
    "deploymentConfiguration": {
      "cloudServiceConfiguration": {
        "osFamily": "string",
        "osVersion": "string"
      },
      "virtualMachineConfiguration": {
        "containerConfiguration": {
          "containerImageNames": [ "string" ],
          "containerRegistries": [
            {
              "identityReference": {
                "resourceId": "string"
              },
              "password": "string",
              "registryServer": "string",
              "username": "string"
            }
          ],
          "type": "string"
        },
        "dataDisks": [
          {
            "caching": "string",
            "diskSizeGB": "int",
            "lun": "int",
            "storageAccountType": "string"
          }
        ],
        "diskEncryptionConfiguration": {
          "targets": [ "string" ]
        },
        "extensions": [
          {
            "autoUpgradeMinorVersion": "bool",
            "enableAutomaticUpgrade": "bool",
            "name": "string",
            "protectedSettings": {},
            "provisionAfterExtensions": [ "string" ],
            "publisher": "string",
            "settings": {},
            "type": "string",
            "typeHandlerVersion": "string"
          }
        ],
        "imageReference": {
          "id": "string",
          "offer": "string",
          "publisher": "string",
          "sku": "string",
          "version": "string"
        },
        "licenseType": "string",
        "nodeAgentSkuId": "string",
        "nodePlacementConfiguration": {
          "policy": "string"
        },
        "osDisk": {
          "caching": "string",
          "diskSizeGB": "int",
          "ephemeralOSDiskSettings": {
            "placement": "CacheDisk"
          },
          "managedDisk": {
            "storageAccountType": "string"
          },
          "writeAcceleratorEnabled": "bool"
        },
        "securityProfile": {
          "encryptionAtHost": "bool",
          "securityType": "trustedLaunch",
          "uefiSettings": {
            "secureBootEnabled": "bool",
            "vTpmEnabled": "bool"
          }
        },
        "serviceArtifactReference": {
          "id": "string"
        },
        "windowsConfiguration": {
          "enableAutomaticUpdates": "bool"
        }
      }
    },
    "displayName": "string",
    "interNodeCommunication": "string",
    "metadata": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "mountConfiguration": [
      {
        "azureBlobFileSystemConfiguration": {
          "accountKey": "string",
          "accountName": "string",
          "blobfuseOptions": "string",
          "containerName": "string",
          "identityReference": {
            "resourceId": "string"
          },
          "relativeMountPath": "string",
          "sasKey": "string"
        },
        "azureFileShareConfiguration": {
          "accountKey": "string",
          "accountName": "string",
          "azureFileUrl": "string",
          "mountOptions": "string",
          "relativeMountPath": "string"
        },
        "cifsMountConfiguration": {
          "mountOptions": "string",
          "password": "string",
          "relativeMountPath": "string",
          "source": "string",
          "userName": "string"
        },
        "nfsMountConfiguration": {
          "mountOptions": "string",
          "relativeMountPath": "string",
          "source": "string"
        }
      }
    ],
    "networkConfiguration": {
      "dynamicVnetAssignmentScope": "string",
      "enableAcceleratedNetworking": "bool",
      "endpointConfiguration": {
        "inboundNatPools": [
          {
            "backendPort": "int",
            "frontendPortRangeEnd": "int",
            "frontendPortRangeStart": "int",
            "name": "string",
            "networkSecurityGroupRules": [
              {
                "access": "string",
                "priority": "int",
                "sourceAddressPrefix": "string",
                "sourcePortRanges": [ "string" ]
              }
            ],
            "protocol": "string"
          }
        ]
      },
      "publicIPAddressConfiguration": {
        "ipAddressIds": [ "string" ],
        "provision": "string"
      },
      "subnetId": "string"
    },
    "resourceTags": {
      "{customized property}": "string"
    },
    "scaleSettings": {
      "autoScale": {
        "evaluationInterval": "string",
        "formula": "string"
      },
      "fixedScale": {
        "nodeDeallocationOption": "string",
        "resizeTimeout": "string",
        "targetDedicatedNodes": "int",
        "targetLowPriorityNodes": "int"
      }
    },
    "startTask": {
      "commandLine": "string",
      "containerSettings": {
        "containerRunOptions": "string",
        "imageName": "string",
        "registry": {
          "identityReference": {
            "resourceId": "string"
          },
          "password": "string",
          "registryServer": "string",
          "username": "string"
        },
        "workingDirectory": "string"
      },
      "environmentSettings": [
        {
          "name": "string",
          "value": "string"
        }
      ],
      "maxTaskRetryCount": "int",
      "resourceFiles": [
        {
          "autoStorageContainerName": "string",
          "blobPrefix": "string",
          "fileMode": "string",
          "filePath": "string",
          "httpUrl": "string",
          "identityReference": {
            "resourceId": "string"
          },
          "storageContainerUrl": "string"
        }
      ],
      "userIdentity": {
        "autoUser": {
          "elevationLevel": "string",
          "scope": "string"
        },
        "userName": "string"
      },
      "waitForSuccess": "bool"
    },
    "targetNodeCommunicationMode": "string",
    "taskSchedulingPolicy": {
      "nodeFillType": "string"
    },
    "taskSlotsPerNode": "int",
    "upgradePolicy": {
      "automaticOSUpgradePolicy": {
        "disableAutomaticRollback": "bool",
        "enableAutomaticOSUpgrade": "bool",
        "osRollingUpgradeDeferral": "bool",
        "useRollingUpgradePolicy": "bool"
      },
      "mode": "string",
      "rollingUpgradePolicy": {
        "enableCrossZoneUpgrade": "bool",
        "maxBatchInstancePercent": "int",
        "maxUnhealthyInstancePercent": "int",
        "maxUnhealthyUpgradedInstancePercent": "int",
        "pauseTimeBetweenBatches": "string",
        "prioritizeUnhealthyInstances": "bool",
        "rollbackFailedInstancesOnPolicyBreach": "bool"
      }
    },
    "userAccounts": [
      {
        "elevationLevel": "string",
        "linuxUserConfiguration": {
          "gid": "int",
          "sshPrivateKey": "string",
          "uid": "int"
        },
        "name": "string",
        "password": "string",
        "windowsUserConfiguration": {
          "loginMode": "string"
        }
      }
    ],
    "vmSize": "string"
  }
}

属性值

ApplicationPackageReference

名字 描述 价值
id 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 string (必需)
版本 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 字符串

AutomaticOSUpgradePolicy

名字 描述 价值
disableAutomaticRollback 是否应禁用 OS 映像回滚功能。 bool
enableAutomaticOSUpgrade 指示当较新版本的 OS 映像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

如果对于基于 Windows 的池,WindowsConfiguration.enableAutomaticUpdates 不能设置为 true。
bool
osRollingUpgradeDeferral 如果 OS 升级正在运行任务,请延迟 TVM 上的 OS 升级。 bool
useRollingUpgradePolicy 指示是否应在自动 OS 升级期间使用滚动升级策略。 如果未在 VMSS 上定义任何策略,则自动 OS 升级将回退到默认策略。 bool

AutoScaleSettings

名字 描述 价值
evaluationInterval 如果省略,则默认值为 15 分钟(PT15M)。 字符串
公式 池中所需计算节点数的公式。 string (必需)

AutoUserSpecification

名字 描述 价值
elevationLevel 默认值为 nonAdmin。 “Admin”
“NonAdmin”
范围 默认值为 Pool。 如果池正在运行 Windows,则应指定任务值(如果需要在任务之间进行更严格的隔离)。 例如,如果任务以可能影响其他任务的方式改变注册表,或者已在池中指定了证书,而正常任务不应可访问,但应可通过启动任务访问。 “Pool”
“Task”

AzureBlobFileSystemConfiguration

名字 描述 价值
accountKey 此属性与 sasKey 和标识互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。
accountName Azure 存储帐户名称。 string (必需)
blobfuseOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
containerName Azure Blob 存储容器名称。 string (必需)
identityReference 此属性与 accountKey 和 sasKey 互斥;必须指定一个。 ComputeNodeIdentityReference
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
sasKey 此属性与 accountKey 和 identity 互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。

AzureFileShareConfiguration

名字 描述 价值
accountKey Azure 存储帐户密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
accountName Azure 存储帐户名称。 string (必需)
azureFileUrl 此格式为“https://{account}.file.core.windows.net/”。 string (必需)
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)

BatchPoolIdentity

名字 描述 价值
类型 用于 Batch 池的标识类型。 “None”
“UserAssigned”(必需)
userAssignedIdentities 与 Batch 池关联的用户标识列表。 BatchPoolIdentityUserAssignedIdentities

BatchPoolIdentityUserAssignedIdentities

名字 描述 价值

CertificateReference

名字 描述 价值
id 要安装在池中的证书的完全限定 ID。 这必须与池位于同一批处理帐户内。 string (必需)
storeLocation 默认值为 currentUser。 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 “CurrentUser”
“LocalMachine”
storeName 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 常见的存储名称包括:My、Root、CA、Trust、Trustallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定义存储名称。 默认值为“我的”。 字符串
能见度 计算节点上的哪些用户帐户应有权访问证书的专用数据。 包含任一项的字符串数组:
“RemoteUser”
“StartTask”
“Task”

CifsMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
密码 用于针对 CIFS 文件系统进行身份验证的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)
userName 用于对 CIFS 文件系统进行身份验证的用户。 string (必需)

CloudServiceConfiguration

名字 描述 价值
osFamily 可能的值为:2 - OS 系列 2,等效于 Windows Server 2008 R2 SP1。 3 - OS 系列 3,等效于 Windows Server 2012。 4 - OS 系列 4,等效于 Windows Server 2012 R2。 5 - OS 系列 5,相当于 Windows Server 2016。 6 - OS 系列 6,等效于 Windows Server 2019。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 string (必需)
osVersion 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 字符串

ComputeNodeIdentityReference

名字 描述 价值
resourceId 用户分配标识的 ARM 资源 ID。 字符串

ContainerConfiguration

名字 描述 价值
containerImageNames 这是完整的映像引用,如指定为“docker pull”。 除非映像使用备用注册表完全限定映像,否则映像将源自默认 Docker 注册表。 string[]
containerRegistries 如果必须从需要凭据的专用注册表下载任何映像,则必须在此处提供这些凭据。 ContainerRegistry[]
类型 要使用的容器技术。 “CriCompatible”
“DockerCompatible”(必需)

ContainerRegistry

名字 描述 价值
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
密码 登录到注册表服务器的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。
registryServer 如果省略,则默认值为“docker.io”。 字符串
username 要登录到注册表服务器的用户名。 字符串

DataDisk

名字 描述 价值
缓存 值为:

none - 未启用磁盘的缓存模式。
readOnly - 磁盘的缓存模式是只读的。
readWrite - 磁盘的缓存模式是读取和写入。

缓存的默认值为 none。 有关缓存选项的信息,请参阅:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
“None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新数据磁盘时的初始磁盘大小(以 GB 为单位)。 int (必需)
lun 用于唯一标识每个数据磁盘。 如果附加多个磁盘,每个磁盘应具有不同的 lun。 该值必须介于 0 和 63 之间(含)。 int (必需)
storageAccountType 如果省略,则默认值为“Standard_LRS”。 值为:

Standard_LRS - 数据磁盘应使用标准本地冗余存储。
Premium_LRS - 数据磁盘应使用高级本地冗余存储。
“Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

DeploymentConfiguration

名字 描述 价值
cloudServiceConfiguration 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 CloudServiceConfiguration
virtualMachineConfiguration 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 VirtualMachineConfiguration

DiffDiskSettings

名字 描述 价值
放置 此属性可由请求中的用户使用,以选择操作系统应位于的位置。例如,用于临时 OS 磁盘预配的缓存磁盘空间。 有关临时 OS 磁盘大小要求的详细信息,请参阅 /azure/virtual-machines/windows/ephemeral-os-disks#size-requirements 和 /azure/virtual-machines/linux/ephemeral-os-disks#size-requirements 上的 Windows VM 的临时 OS 磁盘大小要求。 “CacheDisk”

DiskEncryptionConfiguration

名字 描述 价值
目标 在 Linux 池中,仅支持“TemporaryDisk”;在 Windows 池中,必须指定“OsDisk”和“TemporaryDisk”。 包含任一项的字符串数组:
“OsDisk”
“TemporaryDisk”

EnvironmentSetting

名字 描述 价值
名字 环境变量的名称。 string (必需)
价值 环境变量的值。 字符串

FixedScaleSettings

名字 描述 价值
nodeDeallocationOption 如果省略,则默认值为“重新排队”。 “Requeue”
“RetainedData”
“TaskCompletion”
“Terminate”
resizeTimeout 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 字符串
targetDedicatedNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int
targetLowPriorityNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int

ImageReference

名字 描述 价值
id 此属性与其他属性互斥。 Azure 计算库映像必须与 Azure Batch 帐户位于同一区域中的副本。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 字符串
提供 例如,UbuntuServer 或 WindowsServer。 字符串
发行人 例如,Canonical 或 MicrosoftWindowsServer。 字符串
sku 例如,18.04-LTS 或 2022 数据中心。 字符串
版本 可以指定值“latest”以选择映像的最新版本。 如果省略,则默认值为“latest”。 字符串

InboundNatPool

名字 描述 价值
backendPort 这在 Batch 池中必须是唯一的。 可接受的值为 1 到 65535,但保留这些值时为 22、3389、29876 和 29877。 如果提供任何保留值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeEnd 可接受的值介于 1 到 65534 之间,但 Batch 服务保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeStart 可接受的值介于 1 到 65534 之间,但保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
名字 名称在 Batch 池中必须唯一,可以包含字母、数字、下划线、句点和连字符。 名称必须以字母或数字开头,必须以字母、数字或下划线结尾,并且不能超过 77 个字符。 如果提供任何无效值,则请求失败并显示 HTTP 状态代码 400。 string (必需)
networkSecurityGroupRules 可以在 Batch 池的所有终结点上指定的最大规则数为 25。 如果未指定网络安全组规则,则会创建默认规则以允许对指定的 backendPort 进行入站访问。 如果超过网络安全组规则的最大数目,则请求失败并显示 HTTP 状态代码 400。 NetworkSecurityGroupRule[]
协议 终结点的协议。 “TCP”
“UDP”(必需)

LinuxUserConfiguration

名字 描述 价值
gid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 gid。 int
sshPrivateKey 私钥不得受密码保护。 当池的 enableInterNodeCommunication 属性为 true 时,私钥用于在 Linux 池中的节点之间自动配置基于非对称密钥的身份验证(如果 enableInterNodeCommunication 为 false,则忽略该身份验证)。 它通过将密钥对放入用户的 .ssh 目录来执行此操作。 如果未指定,则节点之间未配置无密码 SSH(未修改用户的 .ssh 目录)。 字符串

约束:
敏感值。 以安全参数的形式传入。
uid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 uid。 int

ManagedDisk

名字 描述 价值
storageAccountType 用于创建数据磁盘或 OS 磁盘的存储帐户类型。 “Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

MetadataItem

名字 描述 价值
名字 元数据项的名称。 string (必需)
价值 元数据项的值。 string (必需)

Microsoft.Batch/batchAccounts/pools

名字 描述 价值
apiVersion API 版本 '2024-02-01'
身份 用于 Batch 池的标识类型。 BatchPoolIdentity
名字 资源名称 字符串

约束:
最小长度 = 1
最大长度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必需)
性能 与池关联的属性。 PoolProperties
类型 资源类型 “Microsoft.Batch/batchAccounts/pools”

MountConfiguration

名字 描述 价值
azureBlobFileSystemConfiguration 此属性与其他所有属性互斥。 AzureBlobFileSystemConfiguration
azureFileShareConfiguration 此属性与其他所有属性互斥。 AzureFileShareConfiguration
cifsMountConfiguration 此属性与其他所有属性互斥。 CifsMountConfiguration
nfsMountConfiguration 此属性与其他所有属性互斥。 NFSMountConfiguration

NetworkConfiguration

名字 描述 价值
dynamicVnetAssignmentScope 动态 vnet 分配的范围。 “job”
“none”
enableAcceleratedNetworking 加速网络使单个根 I/O 虚拟化(SR-IOV)能够连接到 VM,这可能会导致网络性能得到改善。 有关详细信息,请参阅:/azure/virtual-network/accelerated-networking-overview。 bool
endpointConfiguration 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 PoolEndpointConfiguration
publicIPAddressConfiguration 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 PublicIPAddressConfiguration
subnetId 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 对于 cloudServiceConfiguration 池,仅支持“经典”VNET。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字符串

NetworkSecurityGroupRule

名字 描述 价值
访问 应对指定 IP 地址、子网范围或标记执行的操作。 “允许”
“拒绝”(必需)
优先权 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 4096。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
sourceAddressPrefix 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 string (必需)
sourcePortRanges 有效值为“*”(对于所有端口 0 - 65535)或端口或端口范围的数组(即 100-200)。 端口应介于 0 到 65535 的范围内,端口范围或端口不能重叠。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 默认值为 *。 string[]

NFSMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)

NodePlacementConfiguration

名字 描述 价值
政策 Batch 服务用于预配节点的分配策略。 如果未指定,Batch 将使用区域策略。 “区域”
“区域”

OSDisk

名字 描述 价值
缓存 要为磁盘启用的缓存类型。 “None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新 OS 磁盘时的初始磁盘大小(以 GB 为单位)。 int
ephemeralOSDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
managedDisk ManagedDisk
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

PoolEndpointConfiguration

名字 描述 价值
inboundNatPools 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 如果 IPAddressProvisioningType 为 NoPublicIPAddresses,则无法指定此项。 InboundNatPool[] (必需)

PoolProperties

名字 描述 价值
applicationLicenses 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 string[]
applicationPackages 对应用程序包引用的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 任何给定池上最多有 10 个应用程序包引用。 ApplicationPackageReference[]
证书 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。

警告:此属性已弃用,将在 2024 年 2 月之后删除。 请改用 Azure KeyVault 扩展
CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 DeploymentConfiguration
displayName 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 字符串
interNodeCommunication 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 “Disabled”
“Enabled”
元数据 Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 MetadataItem[]
mountConfiguration 这支持 Azure 文件存储、NFS、CIFS/SMB 和 Blobfuse。 MountConfiguration[]
networkConfiguration 池的网络配置。 NetworkConfiguration
resourceTags 要与 Azure Batch 池关联的用户定义的标记。 指定后,这些标记将传播到与池关联的支持 Azure 资源。 仅当使用 poolAllocationMode 属性设置为“UserSubscription”创建的 Batch 帐户时,才能指定此属性。 PoolPropertiesResourceTags
scaleSettings 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 ScaleSettings
startTask 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 StartTask
targetNodeCommunicationMode 如果省略,则默认值为 Default。 “经典”
“Default”
“简化”
taskSchedulingPolicy 如果未指定,则默认为分散。 TaskSchedulingPolicy
taskSlotsPerNode 默认值为 1。 最大值是池的 vmSize 核心数或 256 的 4 倍。 int
upgradePolicy 描述升级策略 - 自动、手动或滚动。 UpgradePolicy
userAccounts 将在池中的每个节点上创建的用户帐户列表。 UserAccount[]
vmSize 有关云服务池(使用 cloudServiceConfiguration 创建的池)的可用虚拟机大小的信息,请参阅云服务的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支持除 ExtraSmall 之外的所有云服务 VM 大小。 有关使用虚拟机市场(使用 virtualMachineConfiguration 创建的池)中的映像的可用 VM 大小的信息,请参阅虚拟机(Linux)(https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/)或虚拟机(Windows)的大小(https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支持除STANDARD_A0和具有高级存储(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)之外的所有 Azure VM 大小。 字符串

PoolPropertiesResourceTags

名字 描述 价值

PublicIPAddressConfiguration

名字 描述 价值
ipAddressIds 此处指定的 IP 数限制池的最大大小 - 可以为每个公共 IP 分配 100 个专用节点或 100 个现成/低优先级节点。 例如,需要 250 个专用 VM 的池至少需要指定 3 个公共 IP。 此集合的每个元素都采用以下形式:/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}。 string[]
准备 默认值为 BatchManaged “BatchManaged”
“NoPublicIPAddresses”
“UserManaged”

ResourceFile

名字 描述 价值
autoStorageContainerName autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 字符串
blobPrefix 仅当使用 autoStorageContainerName 或 storageContainerUrl 时,该属性才有效。 此前缀可以是部分文件名或子目录。 如果未指定前缀,则会下载容器中的所有文件。 字符串
fileMode 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 字符串
filePath 如果指定了 httpUrl 属性,则需要 filePath,并描述文件将下载到的路径,包括文件名。 否则,如果指定 autoStorageContainerName 或 storageContainerUrl 属性,则 filePath 是可选的,并且是将文件下载到的目录。 如果 filePath 用作目录,则与输入数据关联的任何目录结构都将完整保留并追加到指定的 filePath 目录。 指定的相对路径不能脱离任务的工作目录(例如,使用'.')。 字符串
httpUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 如果 URL 指向 Azure Blob 存储,则必须从计算节点读取该 URL。 可通过三种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),使用具有读取权限的托管标识,或为 Blob 或其容器设置 ACL 以允许公共访问。 字符串
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
storageContainerUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 此 URL 必须可从计算节点读取和列出。 可通过三种方法获取 Azure 存储中容器的此类 URL:包括授予对容器的读取和列表权限的共享访问签名(SAS),使用具有读取和列表权限的托管标识,或为容器设置 ACL 以允许公共访问。 字符串

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 如果未设置此字段,Azure Batch 将不会设置其默认值。 创建的 VirtualMachineScaleSet 上的 enableCrossZoneUpgrade 值将由 VirtualMachineScaleSet 上的默认配置决定。 仅当将 NodePlacementConfiguration 用作 Zonal 时,此字段才可设置为 true 或 false。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此字段的值应介于 5 和 100 之间(含)。 如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都赋值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。 int

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

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

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool
rollbackFailedInstancesOnPolicyBreach 如果违反滚动升级策略,回滚失败实例到以前的模型。 bool

ScaleSettings

名字 描述 价值
autoScale 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 AutoScaleSettings
fixedScale 此属性和 autoScale 互斥,必须指定其中一个属性。 FixedScaleSettings

SecurityProfile

名字 描述 价值
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 bool
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。 “trustedLaunch”
uefiSettings 指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。 UefiSettings

ServiceArtifactReference

名字 描述 价值
id 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID string (必需)

StartTask

名字 描述 价值
commandLine 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 字符串
containerSettings 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,任务命令行在容器中执行。 TaskContainerSettings
environmentSettings 启动任务的环境变量设置列表。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 默认值为 0 int
resourceFiles Batch 服务在运行命令行之前将下载到计算节点的文件列表。 ResourceFile[]
userIdentity 如果省略,任务将作为任务唯一的非管理用户运行。 UserIdentity
waitForSuccess 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 true。 bool

TaskContainerSettings

名字 描述 价值
containerRunOptions 除了 Batch 服务控制的选项外,这些附加选项还作为“docker create”命令的参数提供。 字符串
imageName 这是完整的映像引用,如指定为“docker pull”。 如果未将标记作为映像名称的一部分提供,则标记“:latest”用作默认值。 string (必需)
注册表 如果在创建池时已提供此设置,则可以省略此设置。 ContainerRegistry
workingDirectory 用于指示容器任务工作目录所在的位置的标志。 默认值为“taskWorkingDirectory”。 “ContainerImageDefault”
“TaskWorkingDirectory”

TaskSchedulingPolicy

名字 描述 价值
nodeFillType 如何跨计算节点分配任务。 “Pack”
“分散”(必需)

UefiSettings

名字 描述 价值
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 bool

UpgradePolicy

名字 描述 价值
automaticOSUpgradePolicy 用于执行自动 OS 升级的配置参数。 AutomaticOSUpgradePolicy
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。
“automatic”
“manual”
“滚动”(必需)
rollingUpgradePolicy 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 RollingUpgradePolicy

UserAccount

名字 描述 价值
elevationLevel nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 “Admin”
“NonAdmin”
linuxUserConfiguration 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 LinuxUserConfiguration
名字 用户帐户的名称。 名称可以包含最大长度为 20 的任何 Unicode 字符。 string (必需)
密码 用户帐户的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
windowsUserConfiguration 只有在用户位于 Windows 池中时,才能指定此属性。 如果未指定且在 Windows 池上,则会使用默认选项创建用户。 WindowsUserConfiguration

UserAssignedIdentities

名字 描述 价值

UserIdentity

名字 描述 价值
autoUser userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 AutoUserSpecification
userName userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 字符串

VirtualMachineConfiguration

名字 描述 价值
containerConfiguration 如果指定,则会在池中的每个节点上执行安装程序,以允许任务在容器中运行。 在此池上运行的所有常规任务和作业管理器任务都必须指定 containerSettings 属性,所有其他任务都可以指定它。 ContainerConfiguration
dataDisks 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 DataDisk[]
diskEncryptionConfiguration 如果指定了加密,则会在节点预配期间对池中的每个节点执行加密。 DiskEncryptionConfiguration
扩展 如果指定,此配置中提到的扩展将安装在每个节点上。 VMExtension[]
imageReference 对 Azure 虚拟机市场映像或自定义虚拟机的 Azure 映像资源的引用。 若要获取 Azure Batch 验证的所有 imageReference 的列表,请参阅“列出支持的节点代理 SKU”操作。 ImageReference(必需)
licenseType 这仅适用于包含 Windows 操作系统的映像,并且仅在为将要部署的节点保留有效的本地许可证时使用。 如果省略,则不会应用本地许可折扣。 值为:

Windows_Server - 本地许可证适用于 Windows Server。
Windows_Client - 本地许可证适用于 Windows 客户端。
字符串
nodeAgentSkuId Batch 节点代理是在池中的每个节点上运行的程序,并在节点与 Batch 服务之间提供命令和控制接口。 对于不同的操作系统,节点代理(称为 SKU)有不同的实现。 必须指定与所选映像引用匹配的节点代理 SKU。 若要获取支持的节点代理 SKU 及其已验证映像引用列表,请参阅“列出支持的节点代理 SKU”操作。 string (必需)
nodePlacementConfiguration 此配置将指定池中节点的物理分配方式的规则。 NodePlacementConfiguration
osDisk 包含临时 OSDisk 设置的配置。 OSDisk
securityProfile 指定虚拟机或虚拟机规模集的安全配置文件设置。 SecurityProfile
serviceArtifactReference 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID ServiceArtifactReference
windowsConfiguration 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 WindowsConfiguration

VMExtension

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
名字 虚拟机扩展的名称。 string (必需)
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 string (必需)
设置 扩展的 JSON 格式公共设置。 任何
类型 扩展的类型。 string (必需)
typeHandlerVersion 脚本处理程序的版本。 字符串

WindowsConfiguration

名字 描述 价值
enableAutomaticUpdates 如果省略,则默认值为 true。 bool

WindowsUserConfiguration

名字 描述 价值
loginMode 指定用户的登录模式。 VirtualMachineConfiguration 池的默认值为交互式模式,而 CloudServiceConfiguration 池的默认值为批处理模式。 “Batch”
“Interactive”

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
不带公共 IP 地址的 Azure Batch 池

部署到 Azure
此模板创建没有公共 IP 地址的 Azure Batch 简化节点通信池。

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署 batchAccounts/pools 资源类型:

  • 资源组

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Batch/batchAccounts/pools@2024-02-01"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  body = jsonencode({
    properties = {
      applicationLicenses = [
        "string"
      ]
      applicationPackages = [
        {
          id = "string"
          version = "string"
        }
      ]
      certificates = [
        {
          id = "string"
          storeLocation = "string"
          storeName = "string"
          visibility = [
            "string"
          ]
        }
      ]
      deploymentConfiguration = {
        cloudServiceConfiguration = {
          osFamily = "string"
          osVersion = "string"
        }
        virtualMachineConfiguration = {
          containerConfiguration = {
            containerImageNames = [
              "string"
            ]
            containerRegistries = [
              {
                identityReference = {
                  resourceId = "string"
                }
                password = "string"
                registryServer = "string"
                username = "string"
              }
            ]
            type = "string"
          }
          dataDisks = [
            {
              caching = "string"
              diskSizeGB = int
              lun = int
              storageAccountType = "string"
            }
          ]
          diskEncryptionConfiguration = {
            targets = [
              "string"
            ]
          }
          extensions = [
            {
              autoUpgradeMinorVersion = bool
              enableAutomaticUpgrade = bool
              name = "string"
              protectedSettings = ?
              provisionAfterExtensions = [
                "string"
              ]
              publisher = "string"
              settings = ?
              type = "string"
              typeHandlerVersion = "string"
            }
          ]
          imageReference = {
            id = "string"
            offer = "string"
            publisher = "string"
            sku = "string"
            version = "string"
          }
          licenseType = "string"
          nodeAgentSkuId = "string"
          nodePlacementConfiguration = {
            policy = "string"
          }
          osDisk = {
            caching = "string"
            diskSizeGB = int
            ephemeralOSDiskSettings = {
              placement = "CacheDisk"
            }
            managedDisk = {
              storageAccountType = "string"
            }
            writeAcceleratorEnabled = bool
          }
          securityProfile = {
            encryptionAtHost = bool
            securityType = "trustedLaunch"
            uefiSettings = {
              secureBootEnabled = bool
              vTpmEnabled = bool
            }
          }
          serviceArtifactReference = {
            id = "string"
          }
          windowsConfiguration = {
            enableAutomaticUpdates = bool
          }
        }
      }
      displayName = "string"
      interNodeCommunication = "string"
      metadata = [
        {
          name = "string"
          value = "string"
        }
      ]
      mountConfiguration = [
        {
          azureBlobFileSystemConfiguration = {
            accountKey = "string"
            accountName = "string"
            blobfuseOptions = "string"
            containerName = "string"
            identityReference = {
              resourceId = "string"
            }
            relativeMountPath = "string"
            sasKey = "string"
          }
          azureFileShareConfiguration = {
            accountKey = "string"
            accountName = "string"
            azureFileUrl = "string"
            mountOptions = "string"
            relativeMountPath = "string"
          }
          cifsMountConfiguration = {
            mountOptions = "string"
            password = "string"
            relativeMountPath = "string"
            source = "string"
            userName = "string"
          }
          nfsMountConfiguration = {
            mountOptions = "string"
            relativeMountPath = "string"
            source = "string"
          }
        }
      ]
      networkConfiguration = {
        dynamicVnetAssignmentScope = "string"
        enableAcceleratedNetworking = bool
        endpointConfiguration = {
          inboundNatPools = [
            {
              backendPort = int
              frontendPortRangeEnd = int
              frontendPortRangeStart = int
              name = "string"
              networkSecurityGroupRules = [
                {
                  access = "string"
                  priority = int
                  sourceAddressPrefix = "string"
                  sourcePortRanges = [
                    "string"
                  ]
                }
              ]
              protocol = "string"
            }
          ]
        }
        publicIPAddressConfiguration = {
          ipAddressIds = [
            "string"
          ]
          provision = "string"
        }
        subnetId = "string"
      }
      resourceTags = {
        {customized property} = "string"
      }
      scaleSettings = {
        autoScale = {
          evaluationInterval = "string"
          formula = "string"
        }
        fixedScale = {
          nodeDeallocationOption = "string"
          resizeTimeout = "string"
          targetDedicatedNodes = int
          targetLowPriorityNodes = int
        }
      }
      startTask = {
        commandLine = "string"
        containerSettings = {
          containerRunOptions = "string"
          imageName = "string"
          registry = {
            identityReference = {
              resourceId = "string"
            }
            password = "string"
            registryServer = "string"
            username = "string"
          }
          workingDirectory = "string"
        }
        environmentSettings = [
          {
            name = "string"
            value = "string"
          }
        ]
        maxTaskRetryCount = int
        resourceFiles = [
          {
            autoStorageContainerName = "string"
            blobPrefix = "string"
            fileMode = "string"
            filePath = "string"
            httpUrl = "string"
            identityReference = {
              resourceId = "string"
            }
            storageContainerUrl = "string"
          }
        ]
        userIdentity = {
          autoUser = {
            elevationLevel = "string"
            scope = "string"
          }
          userName = "string"
        }
        waitForSuccess = bool
      }
      targetNodeCommunicationMode = "string"
      taskSchedulingPolicy = {
        nodeFillType = "string"
      }
      taskSlotsPerNode = int
      upgradePolicy = {
        automaticOSUpgradePolicy = {
          disableAutomaticRollback = bool
          enableAutomaticOSUpgrade = bool
          osRollingUpgradeDeferral = bool
          useRollingUpgradePolicy = bool
        }
        mode = "string"
        rollingUpgradePolicy = {
          enableCrossZoneUpgrade = bool
          maxBatchInstancePercent = int
          maxUnhealthyInstancePercent = int
          maxUnhealthyUpgradedInstancePercent = int
          pauseTimeBetweenBatches = "string"
          prioritizeUnhealthyInstances = bool
          rollbackFailedInstancesOnPolicyBreach = bool
        }
      }
      userAccounts = [
        {
          elevationLevel = "string"
          linuxUserConfiguration = {
            gid = int
            sshPrivateKey = "string"
            uid = int
          }
          name = "string"
          password = "string"
          windowsUserConfiguration = {
            loginMode = "string"
          }
        }
      ]
      vmSize = "string"
    }
  })
}

属性值

ApplicationPackageReference

名字 描述 价值
id 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 string (必需)
版本 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 字符串

AutomaticOSUpgradePolicy

名字 描述 价值
disableAutomaticRollback 是否应禁用 OS 映像回滚功能。 bool
enableAutomaticOSUpgrade 指示当较新版本的 OS 映像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

如果对于基于 Windows 的池,WindowsConfiguration.enableAutomaticUpdates 不能设置为 true。
bool
osRollingUpgradeDeferral 如果 OS 升级正在运行任务,请延迟 TVM 上的 OS 升级。 bool
useRollingUpgradePolicy 指示是否应在自动 OS 升级期间使用滚动升级策略。 如果未在 VMSS 上定义任何策略,则自动 OS 升级将回退到默认策略。 bool

AutoScaleSettings

名字 描述 价值
evaluationInterval 如果省略,则默认值为 15 分钟(PT15M)。 字符串
公式 池中所需计算节点数的公式。 string (必需)

AutoUserSpecification

名字 描述 价值
elevationLevel 默认值为 nonAdmin。 “Admin”
“NonAdmin”
范围 默认值为 Pool。 如果池正在运行 Windows,则应指定任务值(如果需要在任务之间进行更严格的隔离)。 例如,如果任务以可能影响其他任务的方式改变注册表,或者已在池中指定了证书,而正常任务不应可访问,但应可通过启动任务访问。 “Pool”
“Task”

AzureBlobFileSystemConfiguration

名字 描述 价值
accountKey 此属性与 sasKey 和标识互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。
accountName Azure 存储帐户名称。 string (必需)
blobfuseOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
containerName Azure Blob 存储容器名称。 string (必需)
identityReference 此属性与 accountKey 和 sasKey 互斥;必须指定一个。 ComputeNodeIdentityReference
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
sasKey 此属性与 accountKey 和 identity 互斥;必须指定一个。 字符串

约束:
敏感值。 以安全参数的形式传入。

AzureFileShareConfiguration

名字 描述 价值
accountKey Azure 存储帐户密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
accountName Azure 存储帐户名称。 string (必需)
azureFileUrl 此格式为“https://{account}.file.core.windows.net/”。 string (必需)
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)

BatchPoolIdentity

名字 描述 价值
类型 用于 Batch 池的标识类型。 “None”
“UserAssigned”(必需)
userAssignedIdentities 与 Batch 池关联的用户标识列表。 BatchPoolIdentityUserAssignedIdentities

BatchPoolIdentityUserAssignedIdentities

名字 描述 价值

CertificateReference

名字 描述 价值
id 要安装在池中的证书的完全限定 ID。 这必须与池位于同一批处理帐户内。 string (必需)
storeLocation 默认值为 currentUser。 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 “CurrentUser”
“LocalMachine”
storeName 此属性仅适用于使用 Windows 节点配置的池(即使用 cloudServiceConfiguration 创建或使用 Windows 映像引用的 virtualMachineConfiguration)。 常见的存储名称包括:My、Root、CA、Trust、Trustallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定义存储名称。 默认值为“我的”。 字符串
能见度 计算节点上的哪些用户帐户应有权访问证书的专用数据。 包含任一项的字符串数组:
“RemoteUser”
“StartTask”
“Task”

CifsMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
密码 用于针对 CIFS 文件系统进行身份验证的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)
userName 用于对 CIFS 文件系统进行身份验证的用户。 string (必需)

CloudServiceConfiguration

名字 描述 价值
osFamily 可能的值为:2 - OS 系列 2,等效于 Windows Server 2008 R2 SP1。 3 - OS 系列 3,等效于 Windows Server 2012。 4 - OS 系列 4,等效于 Windows Server 2012 R2。 5 - OS 系列 5,相当于 Windows Server 2016。 6 - OS 系列 6,等效于 Windows Server 2019。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 string (必需)
osVersion 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 字符串

ComputeNodeIdentityReference

名字 描述 价值
resourceId 用户分配标识的 ARM 资源 ID。 字符串

ContainerConfiguration

名字 描述 价值
containerImageNames 这是完整的映像引用,如指定为“docker pull”。 除非映像使用备用注册表完全限定映像,否则映像将源自默认 Docker 注册表。 string[]
containerRegistries 如果必须从需要凭据的专用注册表下载任何映像,则必须在此处提供这些凭据。 ContainerRegistry[]
类型 要使用的容器技术。 “CriCompatible”
“DockerCompatible”(必需)

ContainerRegistry

名字 描述 价值
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
密码 登录到注册表服务器的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。
registryServer 如果省略,则默认值为“docker.io”。 字符串
username 要登录到注册表服务器的用户名。 字符串

DataDisk

名字 描述 价值
缓存 值为:

none - 未启用磁盘的缓存模式。
readOnly - 磁盘的缓存模式是只读的。
readWrite - 磁盘的缓存模式是读取和写入。

缓存的默认值为 none。 有关缓存选项的信息,请参阅:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
“None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新数据磁盘时的初始磁盘大小(以 GB 为单位)。 int (必需)
lun 用于唯一标识每个数据磁盘。 如果附加多个磁盘,每个磁盘应具有不同的 lun。 该值必须介于 0 和 63 之间(含)。 int (必需)
storageAccountType 如果省略,则默认值为“Standard_LRS”。 值为:

Standard_LRS - 数据磁盘应使用标准本地冗余存储。
Premium_LRS - 数据磁盘应使用高级本地冗余存储。
“Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

DeploymentConfiguration

名字 描述 价值
cloudServiceConfiguration 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 CloudServiceConfiguration
virtualMachineConfiguration 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 VirtualMachineConfiguration

DiffDiskSettings

名字 描述 价值
放置 此属性可由请求中的用户使用,以选择操作系统应位于的位置。例如,用于临时 OS 磁盘预配的缓存磁盘空间。 有关临时 OS 磁盘大小要求的详细信息,请参阅 /azure/virtual-machines/windows/ephemeral-os-disks#size-requirements 和 /azure/virtual-machines/linux/ephemeral-os-disks#size-requirements 上的 Windows VM 的临时 OS 磁盘大小要求。 “CacheDisk”

DiskEncryptionConfiguration

名字 描述 价值
目标 在 Linux 池中,仅支持“TemporaryDisk”;在 Windows 池中,必须指定“OsDisk”和“TemporaryDisk”。 包含任一项的字符串数组:
“OsDisk”
“TemporaryDisk”

EnvironmentSetting

名字 描述 价值
名字 环境变量的名称。 string (必需)
价值 环境变量的值。 字符串

FixedScaleSettings

名字 描述 价值
nodeDeallocationOption 如果省略,则默认值为“重新排队”。 “Requeue”
“RetainedData”
“TaskCompletion”
“Terminate”
resizeTimeout 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 字符串
targetDedicatedNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int
targetLowPriorityNodes 必须设置至少一个 targetDedicatedNodes,targetLowPriorityNodes。 int

ImageReference

名字 描述 价值
id 此属性与其他属性互斥。 Azure 计算库映像必须与 Azure Batch 帐户位于同一区域中的副本。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 字符串
提供 例如,UbuntuServer 或 WindowsServer。 字符串
发行人 例如,Canonical 或 MicrosoftWindowsServer。 字符串
sku 例如,18.04-LTS 或 2022 数据中心。 字符串
版本 可以指定值“latest”以选择映像的最新版本。 如果省略,则默认值为“latest”。 字符串

InboundNatPool

名字 描述 价值
backendPort 这在 Batch 池中必须是唯一的。 可接受的值为 1 到 65535,但保留这些值时为 22、3389、29876 和 29877。 如果提供任何保留值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeEnd 可接受的值介于 1 到 65534 之间,但 Batch 服务保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
frontendPortRangeStart 可接受的值介于 1 到 65534 之间,但保留的端口范围为 50000 到 55000。 池中的所有范围都必须是不同的,并且不能重叠。 如果提供任何保留值或重叠值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
名字 名称在 Batch 池中必须唯一,可以包含字母、数字、下划线、句点和连字符。 名称必须以字母或数字开头,必须以字母、数字或下划线结尾,并且不能超过 77 个字符。 如果提供任何无效值,则请求失败并显示 HTTP 状态代码 400。 string (必需)
networkSecurityGroupRules 可以在 Batch 池的所有终结点上指定的最大规则数为 25。 如果未指定网络安全组规则,则会创建默认规则以允许对指定的 backendPort 进行入站访问。 如果超过网络安全组规则的最大数目,则请求失败并显示 HTTP 状态代码 400。 NetworkSecurityGroupRule[]
协议 终结点的协议。 “TCP”
“UDP”(必需)

LinuxUserConfiguration

名字 描述 价值
gid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 gid。 int
sshPrivateKey 私钥不得受密码保护。 当池的 enableInterNodeCommunication 属性为 true 时,私钥用于在 Linux 池中的节点之间自动配置基于非对称密钥的身份验证(如果 enableInterNodeCommunication 为 false,则忽略该身份验证)。 它通过将密钥对放入用户的 .ssh 目录来执行此操作。 如果未指定,则节点之间未配置无密码 SSH(未修改用户的 .ssh 目录)。 字符串

约束:
敏感值。 以安全参数的形式传入。
uid uid 和 gid 属性必须同时指定或根本不指定。 如果未指定基础操作系统,则选取 uid。 int

ManagedDisk

名字 描述 价值
storageAccountType 用于创建数据磁盘或 OS 磁盘的存储帐户类型。 “Premium_LRS”
“StandardSSD_LRS”
“Standard_LRS”

MetadataItem

名字 描述 价值
名字 元数据项的名称。 string (必需)
价值 元数据项的值。 string (必需)

Microsoft.Batch/batchAccounts/pools

名字 描述 价值
身份 用于 Batch 池的标识类型。 BatchPoolIdentity
名字 资源名称 字符串

约束:
最小长度 = 1
最大长度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必需)
parent_id 此资源的父资源的 ID。 类型资源的 ID:batchAccounts
性能 与池关联的属性。 PoolProperties
类型 资源类型 “Microsoft.Batch/batchAccounts/pools@2024-02-01”

MountConfiguration

名字 描述 价值
azureBlobFileSystemConfiguration 此属性与其他所有属性互斥。 AzureBlobFileSystemConfiguration
azureFileShareConfiguration 此属性与其他所有属性互斥。 AzureFileShareConfiguration
cifsMountConfiguration 此属性与其他所有属性互斥。 CifsMountConfiguration
nfsMountConfiguration 此属性与其他所有属性互斥。 NFSMountConfiguration

NetworkConfiguration

名字 描述 价值
dynamicVnetAssignmentScope 动态 vnet 分配的范围。 “job”
“none”
enableAcceleratedNetworking 加速网络使单个根 I/O 虚拟化(SR-IOV)能够连接到 VM,这可能会导致网络性能得到改善。 有关详细信息,请参阅:/azure/virtual-network/accelerated-networking-overview。 bool
endpointConfiguration 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 PoolEndpointConfiguration
publicIPAddressConfiguration 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 PublicIPAddressConfiguration
subnetId 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 对于 cloudServiceConfiguration 池,仅支持“经典”VNET。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字符串

NetworkSecurityGroupRule

名字 描述 价值
访问 应对指定 IP 地址、子网范围或标记执行的操作。 “允许”
“拒绝”(必需)
优先权 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 4096。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 int (必需)
sourceAddressPrefix 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 string (必需)
sourcePortRanges 有效值为“*”(对于所有端口 0 - 65535)或端口或端口范围的数组(即 100-200)。 端口应介于 0 到 65535 的范围内,端口范围或端口不能重叠。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 默认值为 *。 string[]

NFSMountConfiguration

名字 描述 价值
mountOptions 这些是 Windows 中的“net use”选项,Linux 中的“装载”选项。 字符串
relativeMountPath 所有文件系统都相对于 Batch 装载目录进行装载,可通过AZ_BATCH_NODE_MOUNTS_DIR环境变量进行访问。 string (必需)
要装载的文件系统的 URI。 string (必需)

NodePlacementConfiguration

名字 描述 价值
政策 Batch 服务用于预配节点的分配策略。 如果未指定,Batch 将使用区域策略。 “区域”
“区域”

OSDisk

名字 描述 价值
缓存 要为磁盘启用的缓存类型。 “None”
“ReadOnly”
“ReadWrite”
diskSizeGB 创建新 OS 磁盘时的初始磁盘大小(以 GB 为单位)。 int
ephemeralOSDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
managedDisk ManagedDisk
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

PoolEndpointConfiguration

名字 描述 价值
inboundNatPools 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 如果 IPAddressProvisioningType 为 NoPublicIPAddresses,则无法指定此项。 InboundNatPool[] (必需)

PoolProperties

名字 描述 价值
applicationLicenses 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 string[]
applicationPackages 对应用程序包引用的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 任何给定池上最多有 10 个应用程序包引用。 ApplicationPackageReference[]
证书 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。

警告:此属性已弃用,将在 2024 年 2 月之后删除。 请改用 Azure KeyVault 扩展
CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 DeploymentConfiguration
displayName 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 字符串
interNodeCommunication 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 “Disabled”
“Enabled”
元数据 Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 MetadataItem[]
mountConfiguration 这支持 Azure 文件存储、NFS、CIFS/SMB 和 Blobfuse。 MountConfiguration[]
networkConfiguration 池的网络配置。 NetworkConfiguration
resourceTags 要与 Azure Batch 池关联的用户定义的标记。 指定后,这些标记将传播到与池关联的支持 Azure 资源。 仅当使用 poolAllocationMode 属性设置为“UserSubscription”创建的 Batch 帐户时,才能指定此属性。 PoolPropertiesResourceTags
scaleSettings 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 ScaleSettings
startTask 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 StartTask
targetNodeCommunicationMode 如果省略,则默认值为 Default。 “经典”
“Default”
“简化”
taskSchedulingPolicy 如果未指定,则默认为分散。 TaskSchedulingPolicy
taskSlotsPerNode 默认值为 1。 最大值是池的 vmSize 核心数或 256 的 4 倍。 int
upgradePolicy 描述升级策略 - 自动、手动或滚动。 UpgradePolicy
userAccounts 将在池中的每个节点上创建的用户帐户列表。 UserAccount[]
vmSize 有关云服务池(使用 cloudServiceConfiguration 创建的池)的可用虚拟机大小的信息,请参阅云服务的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支持除 ExtraSmall 之外的所有云服务 VM 大小。 有关使用虚拟机市场(使用 virtualMachineConfiguration 创建的池)中的映像的可用 VM 大小的信息,请参阅虚拟机(Linux)(https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/)或虚拟机(Windows)的大小(https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支持除STANDARD_A0和具有高级存储(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)之外的所有 Azure VM 大小。 字符串

PoolPropertiesResourceTags

名字 描述 价值

PublicIPAddressConfiguration

名字 描述 价值
ipAddressIds 此处指定的 IP 数限制池的最大大小 - 可以为每个公共 IP 分配 100 个专用节点或 100 个现成/低优先级节点。 例如,需要 250 个专用 VM 的池至少需要指定 3 个公共 IP。 此集合的每个元素都采用以下形式:/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}。 string[]
准备 默认值为 BatchManaged “BatchManaged”
“NoPublicIPAddresses”
“UserManaged”

ResourceFile

名字 描述 价值
autoStorageContainerName autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 字符串
blobPrefix 仅当使用 autoStorageContainerName 或 storageContainerUrl 时,该属性才有效。 此前缀可以是部分文件名或子目录。 如果未指定前缀,则会下载容器中的所有文件。 字符串
fileMode 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 字符串
filePath 如果指定了 httpUrl 属性,则需要 filePath,并描述文件将下载到的路径,包括文件名。 否则,如果指定 autoStorageContainerName 或 storageContainerUrl 属性,则 filePath 是可选的,并且是将文件下载到的目录。 如果 filePath 用作目录,则与输入数据关联的任何目录结构都将完整保留并追加到指定的 filePath 目录。 指定的相对路径不能脱离任务的工作目录(例如,使用'.')。 字符串
httpUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 如果 URL 指向 Azure Blob 存储,则必须从计算节点读取该 URL。 可通过三种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),使用具有读取权限的托管标识,或为 Blob 或其容器设置 ACL 以允许公共访问。 字符串
identityReference 对与计算节点将使用的 Batch 池关联的用户分配标识的引用。 ComputeNodeIdentityReference
storageContainerUrl autoStorageContainerName、storageContainerUrl 和 httpUrl 属性互斥,必须指定其中一个属性。 此 URL 必须可从计算节点读取和列出。 可通过三种方法获取 Azure 存储中容器的此类 URL:包括授予对容器的读取和列表权限的共享访问签名(SAS),使用具有读取和列表权限的托管标识,或为容器设置 ACL 以允许公共访问。 字符串

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 如果未设置此字段,Azure Batch 将不会设置其默认值。 创建的 VirtualMachineScaleSet 上的 enableCrossZoneUpgrade 值将由 VirtualMachineScaleSet 上的默认配置决定。 仅当将 NodePlacementConfiguration 用作 Zonal 时,此字段才可设置为 true 或 false。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此字段的值应介于 5 和 100 之间(含)。 如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都赋值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。 int

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

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

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool
rollbackFailedInstancesOnPolicyBreach 如果违反滚动升级策略,回滚失败实例到以前的模型。 bool

ScaleSettings

名字 描述 价值
autoScale 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 AutoScaleSettings
fixedScale 此属性和 autoScale 互斥,必须指定其中一个属性。 FixedScaleSettings

SecurityProfile

名字 描述 价值
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 bool
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定值才能启用 UefiSettings。 “trustedLaunch”
uefiSettings 指定在创建虚拟机时使用的安全启动和 vTPM 等安全设置。 UefiSettings

ServiceArtifactReference

名字 描述 价值
id 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID string (必需)

StartTask

名字 描述 价值
commandLine 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 字符串
containerSettings 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,任务命令行在容器中执行。 TaskContainerSettings
environmentSettings 启动任务的环境变量设置列表。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 默认值为 0 int
resourceFiles Batch 服务在运行命令行之前将下载到计算节点的文件列表。 ResourceFile[]
userIdentity 如果省略,任务将作为任务唯一的非管理用户运行。 UserIdentity
waitForSuccess 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 true。 bool

TaskContainerSettings

名字 描述 价值
containerRunOptions 除了 Batch 服务控制的选项外,这些附加选项还作为“docker create”命令的参数提供。 字符串
imageName 这是完整的映像引用,如指定为“docker pull”。 如果未将标记作为映像名称的一部分提供,则标记“:latest”用作默认值。 string (必需)
注册表 如果在创建池时已提供此设置,则可以省略此设置。 ContainerRegistry
workingDirectory 用于指示容器任务工作目录所在的位置的标志。 默认值为“taskWorkingDirectory”。 “ContainerImageDefault”
“TaskWorkingDirectory”

TaskSchedulingPolicy

名字 描述 价值
nodeFillType 如何跨计算节点分配任务。 “Pack”
“分散”(必需)

UefiSettings

名字 描述 价值
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 bool

UpgradePolicy

名字 描述 价值
automaticOSUpgradePolicy 用于执行自动 OS 升级的配置参数。 AutomaticOSUpgradePolicy
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

滚动 - 规模集按批执行更新,并在两者之间有可选的暂停时间。
“automatic”
“manual”
“滚动”(必需)
rollingUpgradePolicy 此属性仅在具有 virtualMachineConfiguration 属性的池上受支持。 RollingUpgradePolicy

UserAccount

名字 描述 价值
elevationLevel nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 “Admin”
“NonAdmin”
linuxUserConfiguration 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 LinuxUserConfiguration
名字 用户帐户的名称。 名称可以包含最大长度为 20 的任何 Unicode 字符。 string (必需)
密码 用户帐户的密码。 字符串

约束:
敏感值。 以安全参数的形式传入。 (必需)
windowsUserConfiguration 只有在用户位于 Windows 池中时,才能指定此属性。 如果未指定且在 Windows 池上,则会使用默认选项创建用户。 WindowsUserConfiguration

UserAssignedIdentities

名字 描述 价值

UserIdentity

名字 描述 价值
autoUser userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 AutoUserSpecification
userName userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 字符串

VirtualMachineConfiguration

名字 描述 价值
containerConfiguration 如果指定,则会在池中的每个节点上执行安装程序,以允许任务在容器中运行。 在此池上运行的所有常规任务和作业管理器任务都必须指定 containerSettings 属性,所有其他任务都可以指定它。 ContainerConfiguration
dataDisks 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 DataDisk[]
diskEncryptionConfiguration 如果指定了加密,则会在节点预配期间对池中的每个节点执行加密。 DiskEncryptionConfiguration
扩展 如果指定,此配置中提到的扩展将安装在每个节点上。 VMExtension[]
imageReference 对 Azure 虚拟机市场映像或自定义虚拟机的 Azure 映像资源的引用。 若要获取 Azure Batch 验证的所有 imageReference 的列表,请参阅“列出支持的节点代理 SKU”操作。 ImageReference(必需)
licenseType 这仅适用于包含 Windows 操作系统的映像,并且仅在为将要部署的节点保留有效的本地许可证时使用。 如果省略,则不会应用本地许可折扣。 值为:

Windows_Server - 本地许可证适用于 Windows Server。
Windows_Client - 本地许可证适用于 Windows 客户端。
字符串
nodeAgentSkuId Batch 节点代理是在池中的每个节点上运行的程序,并在节点与 Batch 服务之间提供命令和控制接口。 对于不同的操作系统,节点代理(称为 SKU)有不同的实现。 必须指定与所选映像引用匹配的节点代理 SKU。 若要获取支持的节点代理 SKU 及其已验证映像引用列表,请参阅“列出支持的节点代理 SKU”操作。 string (必需)
nodePlacementConfiguration 此配置将指定池中节点的物理分配方式的规则。 NodePlacementConfiguration
osDisk 包含临时 OSDisk 设置的配置。 OSDisk
securityProfile 指定虚拟机或虚拟机规模集的安全配置文件设置。 SecurityProfile
serviceArtifactReference 以 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/gallerys/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} 的形式的服务项目引用 ID ServiceArtifactReference
windowsConfiguration 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 WindowsConfiguration

VMExtension

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
名字 虚拟机扩展的名称。 string (必需)
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 string (必需)
设置 扩展的 JSON 格式公共设置。 任何
类型 扩展的类型。 string (必需)
typeHandlerVersion 脚本处理程序的版本。 字符串

WindowsConfiguration

名字 描述 价值
enableAutomaticUpdates 如果省略,则默认值为 true。 bool

WindowsUserConfiguration

名字 描述 价值
loginMode 指定用户的登录模式。 VirtualMachineConfiguration 池的默认值为交互式模式,而 CloudServiceConfiguration 池的默认值为批处理模式。 “Batch”
“Interactive”