你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Batch batchAccounts/pools 2017-09-01
Bicep 资源定义
可以使用目标操作部署 batchAccounts/pools 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Batch/batchAccounts/pools@2017-09-01' = {
parent: resourceSymbolicName
name: 'string'
properties: {
applicationLicenses: [
'string'
]
applicationPackages: [
{
id: 'string'
version: 'string'
}
]
certificates: [
{
id: 'string'
storeLocation: 'string'
storeName: 'string'
visibility: [
'string'
]
}
]
deploymentConfiguration: {
cloudServiceConfiguration: {
currentOSVersion: 'string'
osFamily: 'string'
targetOSVersion: 'string'
}
virtualMachineConfiguration: {
dataDisks: [
{
caching: 'string'
diskSizeGB: int
lun: int
storageAccountType: 'string'
}
]
imageReference: {
id: 'string'
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
licenseType: 'string'
nodeAgentSkuId: 'string'
osDisk: {
caching: 'string'
}
windowsConfiguration: {
enableAutomaticUpdates: bool
}
}
}
displayName: 'string'
interNodeCommunication: 'string'
maxTasksPerNode: int
metadata: [
{
name: 'string'
value: 'string'
}
]
networkConfiguration: {
endpointConfiguration: {
inboundNatPools: [
{
backendPort: int
frontendPortRangeEnd: int
frontendPortRangeStart: int
name: 'string'
networkSecurityGroupRules: [
{
access: 'string'
priority: int
sourceAddressPrefix: 'string'
}
]
protocol: 'string'
}
]
}
subnetId: 'string'
}
scaleSettings: {
autoScale: {
evaluationInterval: 'string'
formula: 'string'
}
fixedScale: {
nodeDeallocationOption: 'string'
resizeTimeout: 'string'
targetDedicatedNodes: int
targetLowPriorityNodes: int
}
}
startTask: {
commandLine: 'string'
environmentSettings: [
{
name: 'string'
value: 'string'
}
]
maxTaskRetryCount: int
resourceFiles: [
{
blobSource: 'string'
fileMode: 'string'
filePath: 'string'
}
]
userIdentity: {
autoUser: {
elevationLevel: 'string'
scope: 'string'
}
userName: 'string'
}
waitForSuccess: bool
}
taskSchedulingPolicy: {
nodeFillType: 'string'
}
userAccounts: [
{
elevationLevel: 'string'
linuxUserConfiguration: {
gid: int
sshPrivateKey: 'string'
uid: int
}
name: 'string'
password: 'string'
}
]
vmSize: 'string'
}
}
属性值
ApplicationPackageReference
名字 | 描述 | 价值 |
---|---|---|
id | 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 | string (必需) |
版本 | 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 | 字符串 |
AutoScaleSettings
名字 | 描述 | 价值 |
---|---|---|
evaluationInterval | 如果省略,则默认值为 15 分钟(PT15M)。 | 字符串 |
公式 | 池中所需计算节点数的公式。 | string (必需) |
AutoUserSpecification
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
范围 | pool - 指定任务作为在池中的每个节点上创建的通用自动用户帐户运行。 task - 指定服务应为任务创建新用户。 默认值为任务。 | “Pool” “Task” |
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,但也可以使用任何自定义存储名称。 默认值为“我的”。 | 字符串 |
能见度 | 值为: starttask - 运行启动任务的用户帐户。 任务 - 运行作业任务的帐户。 remoteuser - 用户远程访问节点的帐户。 可以在此集合中指定多个可见性。 默认值为所有帐户。 |
包含任一项的字符串数组: “RemoteUser” “StartTask” “Task” |
CloudServiceConfiguration
名字 | 描述 | 价值 |
---|---|---|
currentOSVersion | 如果池状态为“正在升级”,则这可能与 targetOSVersion 不同。 在这种情况下,某些虚拟机可能位于 targetOSVersion 上,有些虚拟机可能在升级过程中在 currentOSVersion 上。 升级所有虚拟机后,currentOSVersion 将更新为与 targetOSVersion 相同。 | 字符串 |
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。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 | string (必需) |
targetOSVersion | 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 | 字符串 |
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。 | int (必需) |
storageAccountType | 如果省略,则默认值为“Standard_LRS”。 值为: Standard_LRS - 数据磁盘应使用标准本地冗余存储。 Premium_LRS - 数据磁盘应使用高级本地冗余存储。 |
“Premium_LRS” “Standard_LRS” |
DeploymentConfiguration
名字 | 描述 | 价值 |
---|---|---|
cloudServiceConfiguration | 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 | CloudServiceConfiguration |
virtualMachineConfiguration | 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 | VirtualMachineConfiguration |
EnvironmentSetting
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量的名称。 | string (必需) |
价值 | 环境变量的值。 | 字符串 |
FixedScaleSettings
名字 | 描述 | 价值 |
---|---|---|
nodeDeallocationOption | 如果省略,则默认值为“重新排队”。 | “Requeue” “RetainedData” “TaskCompletion” “Terminate” |
resizeTimeout | 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 | 字符串 |
targetDedicatedNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
targetLowPriorityNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
id | 此属性与其他属性互斥。 虚拟机映像必须与 Azure Batch 帐户位于同一区域和订阅中。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 | 字符串 |
提供 | 例如,UbuntuServer 或 WindowsServer。 | 字符串 |
发行人 | 例如,Canonical 或 MicrosoftWindowsServer。 | 字符串 |
sku | 例如,14.04.0-LTS 或 2012-R2-Datacenter。 | 字符串 |
版本 | 可以指定值“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 |
MetadataItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 元数据项的名称。 | string (必需) |
价值 | 元数据项的值。 | string (必需) |
Microsoft.Batch/batchAccounts/pools
名字 | 描述 | 价值 |
---|---|---|
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z0-9_-]+$ (必需) |
父母 | 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。 有关详细信息,请参阅 父资源外部的子资源。 |
类型资源的符号名称:batchAccounts |
性能 | 与池关联的属性。 | PoolProperties |
NetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
endpointConfiguration | 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 | PoolEndpointConfiguration |
subnetId | 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并且会发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 对于通过 virtualMachineConfiguration 创建的池,Batch 帐户必须具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration | 字符串 |
NetworkSecurityGroupRule
名字 | 描述 | 价值 |
---|---|---|
访问 | 应对指定 IP 地址、子网范围或标记执行的操作。 | “允许” “拒绝”(必需) |
优先权 | 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 3500。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 | int (必需) |
sourceAddressPrefix | 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 | string (必需) |
OSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 默认值为 none。 | “None” “ReadOnly” “ReadWrite” |
PoolEndpointConfiguration
名字 | 描述 | 价值 |
---|---|---|
inboundNatPools | 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 | InboundNatPool[] (必需) |
PoolProperties
名字 | 描述 | 价值 |
---|---|---|
applicationLicenses | 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 | string[] |
applicationPackages | 对应用程序包的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 | ApplicationPackageReference[] |
证书 | 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 | CertificateReference[] |
deploymentConfiguration | 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 | DeploymentConfiguration |
displayName | 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 | 字符串 |
interNodeCommunication | 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 | “Disabled” “Enabled” |
maxTasksPerNode | 可在池中的单个计算节点上并发运行的最大任务数。 | int |
元数据 | Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 | MetadataItem[] |
networkConfiguration | 池的网络配置。 | NetworkConfiguration |
scaleSettings | 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 | ScaleSettings |
startTask | 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 | StartTask |
taskSchedulingPolicy | 指定应如何跨计算节点分配任务。 | TaskSchedulingPolicy |
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 大小。 | 字符串 |
ResourceFile
名字 | 描述 | 价值 |
---|---|---|
blobSource | 此 URL 必须使用匿名访问进行读取;也就是说,下载 Blob 时 Batch 服务不提供任何凭据。 可通过两种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),或为 Blob 或其容器设置 ACL 以允许公共访问。 | string (必需) |
fileMode | 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 | 字符串 |
filePath | 要下载文件的计算节点上相对于任务的工作目录的位置。 | string (必需) |
ScaleSettings
名字 | 描述 | 价值 |
---|---|---|
autoScale | 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 | AutoScaleSettings |
fixedScale | 此属性和 autoScale 互斥,必须指定其中一个属性。 | FixedScaleSettings |
StartTask
名字 | 描述 | 价值 |
---|---|---|
commandLine | 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 | 字符串 |
environmentSettings | 启动任务的环境变量设置列表。 | EnvironmentSetting[] |
maxTaskRetryCount | 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 | int |
resourceFiles | Batch 服务在运行命令行之前将下载到计算节点的文件列表。 | ResourceFile[] |
userIdentity | 如果省略,任务将作为任务唯一的非管理用户运行。 | UserIdentity |
waitForSuccess | 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 false。 | bool |
TaskSchedulingPolicy
名字 | 描述 | 价值 |
---|---|---|
nodeFillType | 如何跨计算节点分配任务。 | “Pack” “分散”(必需) |
UserAccount
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
linuxUserConfiguration | 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 | LinuxUserConfiguration |
名字 | 用户帐户的名称。 | string (必需) |
密码 | 用户帐户的密码。 | string (必需) |
UserIdentity
名字 | 描述 | 价值 |
---|---|---|
autoUser | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | AutoUserSpecification |
userName | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | 字符串 |
VirtualMachineConfiguration
名字 | 描述 | 价值 |
---|---|---|
dataDisks | 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 | DataDisk[] |
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 (必需) |
osDisk | 虚拟机操作系统磁盘的设置。 | OSDisk |
windowsConfiguration | 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 | WindowsConfiguration |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
enableAutomaticUpdates | 如果省略,则默认值为 true。 | bool |
快速入门示例
以下快速入门示例部署此资源类型。
Bicep 文件 | 描述 |
---|---|
不带公共 IP 地址的 Azure Batch 池 |
此模板创建没有公共 IP 地址的 Azure Batch 简化节点通信池。 |
ARM 模板资源定义
可以使用目标操作部署 batchAccounts/pools 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Batch/batchAccounts/pools",
"apiVersion": "2017-09-01",
"name": "string",
"properties": {
"applicationLicenses": [ "string" ],
"applicationPackages": [
{
"id": "string",
"version": "string"
}
],
"certificates": [
{
"id": "string",
"storeLocation": "string",
"storeName": "string",
"visibility": [ "string" ]
}
],
"deploymentConfiguration": {
"cloudServiceConfiguration": {
"currentOSVersion": "string",
"osFamily": "string",
"targetOSVersion": "string"
},
"virtualMachineConfiguration": {
"dataDisks": [
{
"caching": "string",
"diskSizeGB": "int",
"lun": "int",
"storageAccountType": "string"
}
],
"imageReference": {
"id": "string",
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"licenseType": "string",
"nodeAgentSkuId": "string",
"osDisk": {
"caching": "string"
},
"windowsConfiguration": {
"enableAutomaticUpdates": "bool"
}
}
},
"displayName": "string",
"interNodeCommunication": "string",
"maxTasksPerNode": "int",
"metadata": [
{
"name": "string",
"value": "string"
}
],
"networkConfiguration": {
"endpointConfiguration": {
"inboundNatPools": [
{
"backendPort": "int",
"frontendPortRangeEnd": "int",
"frontendPortRangeStart": "int",
"name": "string",
"networkSecurityGroupRules": [
{
"access": "string",
"priority": "int",
"sourceAddressPrefix": "string"
}
],
"protocol": "string"
}
]
},
"subnetId": "string"
},
"scaleSettings": {
"autoScale": {
"evaluationInterval": "string",
"formula": "string"
},
"fixedScale": {
"nodeDeallocationOption": "string",
"resizeTimeout": "string",
"targetDedicatedNodes": "int",
"targetLowPriorityNodes": "int"
}
},
"startTask": {
"commandLine": "string",
"environmentSettings": [
{
"name": "string",
"value": "string"
}
],
"maxTaskRetryCount": "int",
"resourceFiles": [
{
"blobSource": "string",
"fileMode": "string",
"filePath": "string"
}
],
"userIdentity": {
"autoUser": {
"elevationLevel": "string",
"scope": "string"
},
"userName": "string"
},
"waitForSuccess": "bool"
},
"taskSchedulingPolicy": {
"nodeFillType": "string"
},
"userAccounts": [
{
"elevationLevel": "string",
"linuxUserConfiguration": {
"gid": "int",
"sshPrivateKey": "string",
"uid": "int"
},
"name": "string",
"password": "string"
}
],
"vmSize": "string"
}
}
属性值
ApplicationPackageReference
名字 | 描述 | 价值 |
---|---|---|
id | 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 | string (必需) |
版本 | 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 | 字符串 |
AutoScaleSettings
名字 | 描述 | 价值 |
---|---|---|
evaluationInterval | 如果省略,则默认值为 15 分钟(PT15M)。 | 字符串 |
公式 | 池中所需计算节点数的公式。 | string (必需) |
AutoUserSpecification
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
范围 | pool - 指定任务作为在池中的每个节点上创建的通用自动用户帐户运行。 task - 指定服务应为任务创建新用户。 默认值为任务。 | “Pool” “Task” |
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,但也可以使用任何自定义存储名称。 默认值为“我的”。 | 字符串 |
能见度 | 值为: starttask - 运行启动任务的用户帐户。 任务 - 运行作业任务的帐户。 remoteuser - 用户远程访问节点的帐户。 可以在此集合中指定多个可见性。 默认值为所有帐户。 |
包含任一项的字符串数组: “RemoteUser” “StartTask” “Task” |
CloudServiceConfiguration
名字 | 描述 | 价值 |
---|---|---|
currentOSVersion | 如果池状态为“正在升级”,则这可能与 targetOSVersion 不同。 在这种情况下,某些虚拟机可能位于 targetOSVersion 上,有些虚拟机可能在升级过程中在 currentOSVersion 上。 升级所有虚拟机后,currentOSVersion 将更新为与 targetOSVersion 相同。 | 字符串 |
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。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 | string (必需) |
targetOSVersion | 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 | 字符串 |
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。 | int (必需) |
storageAccountType | 如果省略,则默认值为“Standard_LRS”。 值为: Standard_LRS - 数据磁盘应使用标准本地冗余存储。 Premium_LRS - 数据磁盘应使用高级本地冗余存储。 |
“Premium_LRS” “Standard_LRS” |
DeploymentConfiguration
名字 | 描述 | 价值 |
---|---|---|
cloudServiceConfiguration | 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 | CloudServiceConfiguration |
virtualMachineConfiguration | 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 | VirtualMachineConfiguration |
EnvironmentSetting
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量的名称。 | string (必需) |
价值 | 环境变量的值。 | 字符串 |
FixedScaleSettings
名字 | 描述 | 价值 |
---|---|---|
nodeDeallocationOption | 如果省略,则默认值为“重新排队”。 | “Requeue” “RetainedData” “TaskCompletion” “Terminate” |
resizeTimeout | 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 | 字符串 |
targetDedicatedNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
targetLowPriorityNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
id | 此属性与其他属性互斥。 虚拟机映像必须与 Azure Batch 帐户位于同一区域和订阅中。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 | 字符串 |
提供 | 例如,UbuntuServer 或 WindowsServer。 | 字符串 |
发行人 | 例如,Canonical 或 MicrosoftWindowsServer。 | 字符串 |
sku | 例如,14.04.0-LTS 或 2012-R2-Datacenter。 | 字符串 |
版本 | 可以指定值“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 |
MetadataItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 元数据项的名称。 | string (必需) |
价值 | 元数据项的值。 | string (必需) |
Microsoft.Batch/batchAccounts/pools
名字 | 描述 | 价值 |
---|---|---|
apiVersion | API 版本 | '2017-09-01' |
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z0-9_-]+$ (必需) |
性能 | 与池关联的属性。 | PoolProperties |
类型 | 资源类型 | “Microsoft.Batch/batchAccounts/pools” |
NetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
endpointConfiguration | 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 | PoolEndpointConfiguration |
subnetId | 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并且会发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 对于通过 virtualMachineConfiguration 创建的池,Batch 帐户必须具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration | 字符串 |
NetworkSecurityGroupRule
名字 | 描述 | 价值 |
---|---|---|
访问 | 应对指定 IP 地址、子网范围或标记执行的操作。 | “允许” “拒绝”(必需) |
优先权 | 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 3500。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 | int (必需) |
sourceAddressPrefix | 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 | string (必需) |
OSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 默认值为 none。 | “None” “ReadOnly” “ReadWrite” |
PoolEndpointConfiguration
名字 | 描述 | 价值 |
---|---|---|
inboundNatPools | 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 | InboundNatPool[] (必需) |
PoolProperties
名字 | 描述 | 价值 |
---|---|---|
applicationLicenses | 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 | string[] |
applicationPackages | 对应用程序包的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 | ApplicationPackageReference[] |
证书 | 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 | CertificateReference[] |
deploymentConfiguration | 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 | DeploymentConfiguration |
displayName | 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 | 字符串 |
interNodeCommunication | 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 | “Disabled” “Enabled” |
maxTasksPerNode | 可在池中的单个计算节点上并发运行的最大任务数。 | int |
元数据 | Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 | MetadataItem[] |
networkConfiguration | 池的网络配置。 | NetworkConfiguration |
scaleSettings | 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 | ScaleSettings |
startTask | 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 | StartTask |
taskSchedulingPolicy | 指定应如何跨计算节点分配任务。 | TaskSchedulingPolicy |
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 大小。 | 字符串 |
ResourceFile
名字 | 描述 | 价值 |
---|---|---|
blobSource | 此 URL 必须使用匿名访问进行读取;也就是说,下载 Blob 时 Batch 服务不提供任何凭据。 可通过两种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),或为 Blob 或其容器设置 ACL 以允许公共访问。 | string (必需) |
fileMode | 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 | 字符串 |
filePath | 要下载文件的计算节点上相对于任务的工作目录的位置。 | string (必需) |
ScaleSettings
名字 | 描述 | 价值 |
---|---|---|
autoScale | 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 | AutoScaleSettings |
fixedScale | 此属性和 autoScale 互斥,必须指定其中一个属性。 | FixedScaleSettings |
StartTask
名字 | 描述 | 价值 |
---|---|---|
commandLine | 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 | 字符串 |
environmentSettings | 启动任务的环境变量设置列表。 | EnvironmentSetting[] |
maxTaskRetryCount | 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 | int |
resourceFiles | Batch 服务在运行命令行之前将下载到计算节点的文件列表。 | ResourceFile[] |
userIdentity | 如果省略,任务将作为任务唯一的非管理用户运行。 | UserIdentity |
waitForSuccess | 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 false。 | bool |
TaskSchedulingPolicy
名字 | 描述 | 价值 |
---|---|---|
nodeFillType | 如何跨计算节点分配任务。 | “Pack” “分散”(必需) |
UserAccount
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
linuxUserConfiguration | 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 | LinuxUserConfiguration |
名字 | 用户帐户的名称。 | string (必需) |
密码 | 用户帐户的密码。 | string (必需) |
UserIdentity
名字 | 描述 | 价值 |
---|---|---|
autoUser | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | AutoUserSpecification |
userName | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | 字符串 |
VirtualMachineConfiguration
名字 | 描述 | 价值 |
---|---|---|
dataDisks | 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 | DataDisk[] |
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 (必需) |
osDisk | 虚拟机操作系统磁盘的设置。 | OSDisk |
windowsConfiguration | 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 | WindowsConfiguration |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
enableAutomaticUpdates | 如果省略,则默认值为 true。 | bool |
快速入门模板
以下快速入门模板部署此资源类型。
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 batchAccounts/pools 资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Batch/batchAccounts/pools 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Batch/batchAccounts/pools@2017-09-01"
name = "string"
body = jsonencode({
properties = {
applicationLicenses = [
"string"
]
applicationPackages = [
{
id = "string"
version = "string"
}
]
certificates = [
{
id = "string"
storeLocation = "string"
storeName = "string"
visibility = [
"string"
]
}
]
deploymentConfiguration = {
cloudServiceConfiguration = {
currentOSVersion = "string"
osFamily = "string"
targetOSVersion = "string"
}
virtualMachineConfiguration = {
dataDisks = [
{
caching = "string"
diskSizeGB = int
lun = int
storageAccountType = "string"
}
]
imageReference = {
id = "string"
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
licenseType = "string"
nodeAgentSkuId = "string"
osDisk = {
caching = "string"
}
windowsConfiguration = {
enableAutomaticUpdates = bool
}
}
}
displayName = "string"
interNodeCommunication = "string"
maxTasksPerNode = int
metadata = [
{
name = "string"
value = "string"
}
]
networkConfiguration = {
endpointConfiguration = {
inboundNatPools = [
{
backendPort = int
frontendPortRangeEnd = int
frontendPortRangeStart = int
name = "string"
networkSecurityGroupRules = [
{
access = "string"
priority = int
sourceAddressPrefix = "string"
}
]
protocol = "string"
}
]
}
subnetId = "string"
}
scaleSettings = {
autoScale = {
evaluationInterval = "string"
formula = "string"
}
fixedScale = {
nodeDeallocationOption = "string"
resizeTimeout = "string"
targetDedicatedNodes = int
targetLowPriorityNodes = int
}
}
startTask = {
commandLine = "string"
environmentSettings = [
{
name = "string"
value = "string"
}
]
maxTaskRetryCount = int
resourceFiles = [
{
blobSource = "string"
fileMode = "string"
filePath = "string"
}
]
userIdentity = {
autoUser = {
elevationLevel = "string"
scope = "string"
}
userName = "string"
}
waitForSuccess = bool
}
taskSchedulingPolicy = {
nodeFillType = "string"
}
userAccounts = [
{
elevationLevel = "string"
linuxUserConfiguration = {
gid = int
sshPrivateKey = "string"
uid = int
}
name = "string"
password = "string"
}
]
vmSize = "string"
}
})
}
属性值
ApplicationPackageReference
名字 | 描述 | 价值 |
---|---|---|
id | 要安装的应用程序包的 ID。 这必须与池位于同一批处理帐户内。 这可以是对特定版本的引用,也可以是默认版本(如果存在)。 | string (必需) |
版本 | 如果省略此项,并且没有为此应用程序指定默认版本,则请求将失败,错误代码 InvalidApplicationPackageReferences。 如果直接调用 REST API,则 HTTP 状态代码为 409。 | 字符串 |
AutoScaleSettings
名字 | 描述 | 价值 |
---|---|---|
evaluationInterval | 如果省略,则默认值为 15 分钟(PT15M)。 | 字符串 |
公式 | 池中所需计算节点数的公式。 | string (必需) |
AutoUserSpecification
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
范围 | pool - 指定任务作为在池中的每个节点上创建的通用自动用户帐户运行。 task - 指定服务应为任务创建新用户。 默认值为任务。 | “Pool” “Task” |
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,但也可以使用任何自定义存储名称。 默认值为“我的”。 | 字符串 |
能见度 | 值为: starttask - 运行启动任务的用户帐户。 任务 - 运行作业任务的帐户。 remoteuser - 用户远程访问节点的帐户。 可以在此集合中指定多个可见性。 默认值为所有帐户。 |
包含任一项的字符串数组: “RemoteUser” “StartTask” “Task” |
CloudServiceConfiguration
名字 | 描述 | 价值 |
---|---|---|
currentOSVersion | 如果池状态为“正在升级”,则这可能与 targetOSVersion 不同。 在这种情况下,某些虚拟机可能位于 targetOSVersion 上,有些虚拟机可能在升级过程中在 currentOSVersion 上。 升级所有虚拟机后,currentOSVersion 将更新为与 targetOSVersion 相同。 | 字符串 |
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。 有关详细信息,请参阅 Azure 来宾 OS 版本(https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 | string (必需) |
targetOSVersion | 默认值为 * ,指定指定 OS 系列的最新操作系统版本。 | 字符串 |
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。 | int (必需) |
storageAccountType | 如果省略,则默认值为“Standard_LRS”。 值为: Standard_LRS - 数据磁盘应使用标准本地冗余存储。 Premium_LRS - 数据磁盘应使用高级本地冗余存储。 |
“Premium_LRS” “Standard_LRS” |
DeploymentConfiguration
名字 | 描述 | 价值 |
---|---|---|
cloudServiceConfiguration | 此属性和 virtualMachineConfiguration 互斥,必须指定其中一个属性。 如果将 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则无法指定此属性。 | CloudServiceConfiguration |
virtualMachineConfiguration | 此属性和 cloudServiceConfiguration 互斥,必须指定其中一个属性。 | VirtualMachineConfiguration |
EnvironmentSetting
名字 | 描述 | 价值 |
---|---|---|
名字 | 环境变量的名称。 | string (必需) |
价值 | 环境变量的值。 | 字符串 |
FixedScaleSettings
名字 | 描述 | 价值 |
---|---|---|
nodeDeallocationOption | 如果省略,则默认值为“重新排队”。 | “Requeue” “RetainedData” “TaskCompletion” “Terminate” |
resizeTimeout | 默认值为 15 分钟。 超时值使用 ISO 8601 格式。 例如,使用 PT10M 10 分钟。 最小值为 5 分钟。 如果指定的值小于 5 分钟,Batch 服务将拒绝请求并显示错误;如果直接调用 REST API,则 HTTP 状态代码为 400(请求错误)。 | 字符串 |
targetDedicatedNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
targetLowPriorityNodes | 必须设置至少一个 targetDedicatedNodes,targetLowPriority 节点。 | int |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
id | 此属性与其他属性互斥。 虚拟机映像必须与 Azure Batch 帐户位于同一区域和订阅中。 有关 Batch 节点代理与 Batch 服务通信的防火墙设置的信息,请参阅 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration。 | 字符串 |
提供 | 例如,UbuntuServer 或 WindowsServer。 | 字符串 |
发行人 | 例如,Canonical 或 MicrosoftWindowsServer。 | 字符串 |
sku | 例如,14.04.0-LTS 或 2012-R2-Datacenter。 | 字符串 |
版本 | 可以指定值“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 |
MetadataItem
名字 | 描述 | 价值 |
---|---|---|
名字 | 元数据项的名称。 | string (必需) |
价值 | 元数据项的值。 | string (必需) |
Microsoft.Batch/batchAccounts/pools
名字 | 描述 | 价值 |
---|---|---|
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z0-9_-]+$ (必需) |
parent_id | 此资源的父资源的 ID。 | 类型资源的 ID:batchAccounts |
性能 | 与池关联的属性。 | PoolProperties |
类型 | 资源类型 | “Microsoft.Batch/batchAccounts/pools@2017-09-01” |
NetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
endpointConfiguration | 池终结点配置仅在具有 virtualMachineConfiguration 属性的池上受支持。 | PoolEndpointConfiguration |
subnetId | 虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。 指定的子网应有足够的可用 IP 地址来容纳池中的节点数。 如果子网没有足够的可用 IP 地址,池将部分分配计算节点,并且会发生调整大小错误。 “MicrosoftAzureBatch”服务主体必须具有指定 VNet 的“经典虚拟机参与者”Role-Based 访问控制(RBAC)角色。 指定的子网必须允许来自 Azure Batch 服务的通信,以便能够在计算节点上计划任务。 可以通过检查指定的 VNet 是否具有任何关联的网络安全组(NSG)来验证这一点。 如果 NSG 拒绝与指定子网中的计算节点的通信,Batch 服务会将计算节点的状态设置为不可用。 对于通过 virtualMachineConfiguration 创建的池,Batch 帐户必须具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 具有任何关联的网络安全组(NSG),则必须为入站通信启用一些保留的系统端口。 对于使用虚拟机配置创建的池,请启用端口 29876 和 29877,以及适用于 Linux 的端口 22 和适用于 Windows 的端口 3389。 对于使用云服务配置创建的池,请启用端口 10100、20100 和 30100。 此外,在端口 443 上启用到 Azure 存储的出站连接。 有关详细信息,请参阅:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration | 字符串 |
NetworkSecurityGroupRule
名字 | 描述 | 价值 |
---|---|---|
访问 | 应对指定 IP 地址、子网范围或标记执行的操作。 | “允许” “拒绝”(必需) |
优先权 | 池中的优先级必须是唯一的,并且按优先级顺序进行评估。 优先级越高的数字越低。 例如,可以使用订单号 150、250 和 350 指定规则。 顺序编号为 150 的规则优先于顺序为 250 的规则。 允许的优先级为 150 到 3500。 如果提供了任何保留值或重复值,则请求失败并显示 HTTP 状态代码 400。 | int (必需) |
sourceAddressPrefix | 有效值为单个 IP 地址(即 10.10.10.10)、IP 子网(即 192.168.1.0/24)、默认标记或 * (适用于所有地址)。 如果提供了任何其他值,请求将失败并显示 HTTP 状态代码 400。 | string (必需) |
OSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 默认值为 none。 | “None” “ReadOnly” “ReadWrite” |
PoolEndpointConfiguration
名字 | 描述 | 价值 |
---|---|---|
inboundNatPools | 每个 Batch 池的最大入站 NAT 池数为 5。 如果超出最大入站 NAT 池数,则请求失败并显示 HTTP 状态代码 400。 | InboundNatPool[] (必需) |
PoolProperties
名字 | 描述 | 价值 |
---|---|---|
applicationLicenses | 应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。 如果请求的许可证不受支持,则池创建将失败。 | string[] |
applicationPackages | 对应用程序包的更改会影响所有加入池的新计算节点,但在重新启动或重新映像之前,不会影响池中已有的计算节点。 | ApplicationPackageReference[] |
证书 | 对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储和位置。 对于 Linux 计算节点,证书存储在任务工作目录中的目录中,并向任务提供环境变量AZ_BATCH_CERTIFICATES_DIR以查询此位置。 对于可见性为“remoteUser”的证书,将在用户的主目录中(例如 /home/{user-name}/certs)中创建一个“certs”目录,并将证书置于该目录中。 | CertificateReference[] |
deploymentConfiguration | 使用 CloudServiceConfiguration 指定应使用 Azure 云服务(PaaS)创建节点,而 VirtualMachineConfiguration 使用 Azure 虚拟机(IaaS)。 | DeploymentConfiguration |
displayName | 显示名称不一定是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 | 字符串 |
interNodeCommunication | 这会对可分配给池的节点施加限制。 启用此值可以减少在池中分配请求的节点数的可能性。 如果未指定,则此值默认为“Disabled”。 | “Disabled” “Enabled” |
maxTasksPerNode | 可在池中的单个计算节点上并发运行的最大任务数。 | int |
元数据 | Batch 服务不向元数据分配任何含义;它仅用于使用用户代码。 | MetadataItem[] |
networkConfiguration | 池的网络配置。 | NetworkConfiguration |
scaleSettings | 定义池的所需大小。 这可以是指定所请求的目标DedicatedNode 的“fixedScale”,也可以是定义定期重新计算的公式的“autoScale”。 如果未指定此属性,则池将具有具有 0 个 targetDedicatedNodes 的固定缩放。 | ScaleSettings |
startTask | 在 PATCH(更新)操作中,此属性可以设置为空对象,以从池中删除启动任务。 | StartTask |
taskSchedulingPolicy | 指定应如何跨计算节点分配任务。 | TaskSchedulingPolicy |
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 大小。 | 字符串 |
ResourceFile
名字 | 描述 | 价值 |
---|---|---|
blobSource | 此 URL 必须使用匿名访问进行读取;也就是说,下载 Blob 时 Batch 服务不提供任何凭据。 可通过两种方法获取 Azure 存储中 Blob 的此类 URL:包括授予对 Blob 的读取权限的共享访问签名(SAS),或为 Blob 或其容器设置 ACL 以允许公共访问。 | string (必需) |
fileMode | 此属性仅适用于下载到 Linux 计算节点的文件。 如果为将下载到 Windows 节点的 resourceFile 指定,将忽略它。 如果未为 Linux 节点指定此属性,则将默认值 0770 应用于该文件。 | 字符串 |
filePath | 要下载文件的计算节点上相对于任务的工作目录的位置。 | string (必需) |
ScaleSettings
名字 | 描述 | 价值 |
---|---|---|
autoScale | 此属性和 fixedScale 是互斥的,必须指定其中一个属性。 | AutoScaleSettings |
fixedScale | 此属性和 autoScale 互斥,必须指定其中一个属性。 | FixedScaleSettings |
StartTask
名字 | 描述 | 价值 |
---|---|---|
commandLine | 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果要利用这些功能,则应在命令行中调用 shell,例如在 Windows 中使用“cmd /c MyCommand”或在 Linux 中使用“/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他属性,则为必需。 | 字符串 |
environmentSettings | 启动任务的环境变量设置列表。 | EnvironmentSetting[] |
maxTaskRetryCount | 如果 Batch 服务退出代码为非零,则重试任务。 请注意,此值专门控制重试次数。 Batch 服务将尝试一次任务,然后最多可以重试此限制。 例如,如果最大重试计数为 3,Batch 将尝试任务最多 4 次(一次初始尝试和 3 次重试)。 如果最大重试计数为 0,Batch 服务不会重试该任务。 如果最大重试计数为 -1,Batch 服务将重试任务,且没有限制。 | int |
resourceFiles | Batch 服务在运行命令行之前将下载到计算节点的文件列表。 | ResourceFile[] |
userIdentity | 如果省略,任务将作为任务唯一的非管理用户运行。 | UserIdentity |
waitForSuccess | 如果 true 并且启动任务在计算节点上失败,Batch 服务将启动任务重试到其最大重试计数(maxTaskRetryCount)。 如果任务在所有重试后仍未成功完成,Batch 服务会将计算节点标记为不可用,并且不会为其计划任务。 可以通过节点状态和计划错误详细信息来检测此条件。 如果为 false,Batch 服务不会等待启动任务完成。 在这种情况下,当启动任务仍在运行时,其他任务可以开始在计算节点上执行;即使启动任务失败,新任务也会继续在节点上计划。 默认值为 false。 | bool |
TaskSchedulingPolicy
名字 | 描述 | 价值 |
---|---|---|
nodeFillType | 如何跨计算节点分配任务。 | “Pack” “分散”(必需) |
UserAccount
名字 | 描述 | 价值 |
---|---|---|
elevationLevel | nonAdmin - 自动用户是没有提升访问权限的标准用户。 管理员 - 自动用户是具有提升访问权限并具有完全管理员权限的用户。 默认值为 nonAdmin。 | “Admin” “NonAdmin” |
linuxUserConfiguration | 如果在 Windows 池上指定此属性,则忽略此属性。 如果未指定,则使用默认选项创建用户。 | LinuxUserConfiguration |
名字 | 用户帐户的名称。 | string (必需) |
密码 | 用户帐户的密码。 | string (必需) |
UserIdentity
名字 | 描述 | 价值 |
---|---|---|
autoUser | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | AutoUserSpecification |
userName | userName 和 autoUser 属性互斥;必须指定一个,但不能同时指定两者。 | 字符串 |
VirtualMachineConfiguration
名字 | 描述 | 价值 |
---|---|---|
dataDisks | 如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。 | DataDisk[] |
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 (必需) |
osDisk | 虚拟机操作系统磁盘的设置。 | OSDisk |
windowsConfiguration | 如果 imageReference 指定 Linux OS 映像,则不能指定此属性。 | WindowsConfiguration |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
enableAutomaticUpdates | 如果省略,则默认值为 true。 | bool |