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

Microsoft.Compute virtualMachineScaleSets 2016-04-30-preview

Bicep 资源定义

可以使用目标操作部署 virtualMachineScaleSets 资源类型:

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

资源格式

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

resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets@2016-04-30-preview' = {
  identity: {
    type: 'SystemAssigned'
  }
  location: 'string'
  name: 'string'
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
  }
  properties: {
    overProvision: bool
    singlePlacementGroup: bool
    upgradePolicy: {
      mode: 'string'
    }
    virtualMachineProfile: {
      extensionProfile: {
        extensions: [
          {
            name: 'string'
            properties: {
              autoUpgradeMinorVersion: bool
              protectedSettings: any(Azure.Bicep.Types.Concrete.AnyType)
              publisher: 'string'
              settings: any(Azure.Bicep.Types.Concrete.AnyType)
              type: 'string'
              typeHandlerVersion: 'string'
            }
          }
        ]
      }
      networkProfile: {
        networkInterfaceConfigurations: [
          {
            id: 'string'
            name: 'string'
            properties: {
              ipConfigurations: [
                {
                  id: 'string'
                  name: 'string'
                  properties: {
                    applicationGatewayBackendAddressPools: [
                      {
                        id: 'string'
                      }
                    ]
                    loadBalancerBackendAddressPools: [
                      {
                        id: 'string'
                      }
                    ]
                    loadBalancerInboundNatPools: [
                      {
                        id: 'string'
                      }
                    ]
                    subnet: {
                      id: 'string'
                    }
                  }
                }
              ]
              primary: bool
            }
          }
        ]
      }
      osProfile: {
        adminPassword: 'string'
        adminUsername: 'string'
        computerNamePrefix: 'string'
        customData: 'string'
        linuxConfiguration: {
          disablePasswordAuthentication: bool
          ssh: {
            publicKeys: [
              {
                keyData: 'string'
                path: 'string'
              }
            ]
          }
        }
        secrets: [
          {
            sourceVault: {
              id: 'string'
            }
            vaultCertificates: [
              {
                certificateStore: 'string'
                certificateUrl: 'string'
              }
            ]
          }
        ]
        windowsConfiguration: {
          additionalUnattendContent: [
            {
              componentName: 'Microsoft-Windows-Shell-Setup'
              content: 'string'
              passName: 'OobeSystem'
              settingName: 'string'
            }
          ]
          enableAutomaticUpdates: bool
          provisionVMAgent: bool
          timeZone: 'string'
          winRM: {
            listeners: [
              {
                certificateUrl: 'string'
                protocol: 'string'
              }
            ]
          }
        }
      }
      storageProfile: {
        dataDisks: [
          {
            caching: 'string'
            createOption: 'string'
            diskSizeGB: int
            lun: int
            managedDisk: {
              storageAccountType: 'string'
            }
            name: 'string'
          }
        ]
        imageReference: {
          id: 'string'
          offer: 'string'
          publisher: 'string'
          sku: 'string'
          version: 'string'
        }
        osDisk: {
          caching: 'string'
          createOption: 'string'
          image: {
            uri: 'string'
          }
          managedDisk: {
            storageAccountType: 'string'
          }
          name: 'string'
          osType: 'string'
          vhdContainers: [
            'string'
          ]
        }
      }
    }
  }
  sku: {
    capacity: int
    name: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

属性值

AdditionalUnattendContent

名字 描述 价值
componentName 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 “Microsoft-Windows-Shell-Setup”
内容 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 字符串
passName 传递名称。 目前,唯一允许的值是 OobeSystem。 “OobeSystem”
settingName 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 “AutoLogon”
“FirstLogonCommands”

ApiEntityReference

名字 描述 价值
id /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID 字符串

ImageReference

名字 描述 价值
id 资源 ID 字符串
提供 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 字符串
发行人 映像发布者。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 字符串

LinuxConfiguration

名字 描述 价值
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
ssh 指定 Linux OS 的 ssh 密钥配置。 SshConfiguration

Microsoft.Compute/virtualMachineScaleSets

名字 描述 价值
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
位置 资源位置 string (必需)
名字 资源名称 string (必需)
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
sku 虚拟机规模集 SKU。 Sku
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记

计划

名字 描述 价值
名字 计划 ID。 字符串
产品 指定来自市场的映像的产品。 此值与 imageReference 元素下的 Offer 相同。 字符串
promotionCode 促销代码。 字符串
发行人 发布者 ID。 字符串

ResourceTags

名字 描述 价值

Sku

名字 描述 价值
能力 指定规模集中的虚拟机数。 int
名字 SKU 名称。 字符串
指定规模集中的虚拟机层。

可能的值:

标准

基本
字符串

SshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名字 描述 价值
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。

有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。
字符串
路径 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys 字符串

SubResource

名字 描述 价值
id 资源 ID 字符串

UpgradePolicy

名字 描述 价值
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

VaultCertificate

名字 描述 价值
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。
字符串
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串

VaultSecretGroup

名字 描述 价值
sourceVault Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VirtualHardDisk

名字 描述 价值
uri 指定虚拟硬盘的 URI。 字符串

VirtualMachineScaleSetDataDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串

VirtualMachineScaleSetExtension

名字 描述 价值
名字 扩展的名称。 字符串
性能 描述虚拟机规模集扩展的属性。 VirtualMachineScaleSetExtensionProperties

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。 任何
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 “SystemAssigned”

VirtualMachineScaleSetIPConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 IP 配置名称。 string (必需)
性能 描述虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名字 描述 价值
applicationGatewayBackendAddressPools 应用程序网关后端地址池。 SubResource[]
loadBalancerBackendAddressPools 负载均衡器后端地址池。 SubResource[]
loadBalancerInboundNatPools 负载均衡器入站 nat 池。 SubResource[]
子网。 ApiEntityReference(必需)

VirtualMachineScaleSetManagedDiskParameters

名字 描述 价值
storageAccountType 指定托管磁盘的存储帐户类型。 可能的值为:Standard_LRS或Premium_LRS。 “Premium_LRS”
“Standard_LRS”

VirtualMachineScaleSetNetworkConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 网络配置名称。 string (必需)
性能 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名字 描述 价值
ipConfigurations 虚拟机规模集 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (必需)
主要 这是否是虚拟机上的主 NIC。 bool

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetOSDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建规模集中的虚拟机。

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
图像 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 虚拟硬盘容器 URI 的列表。 string[]

VirtualMachineScaleSetOSProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度(Windows): 8 个字符

最小长度(Linux): 6 个字符

最大长度(Windows): 123 个字符

最大长度(Linux): 72 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”

若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘
字符串
adminUsername 指定管理员帐户的名称。

仅限 Windows 的限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度(Linux): 1 个字符

最大长度(Linux): 64 个字符

最大长度(Windows): 20 个字符

<li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限
<li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 自定义数据的 base-64 编码字符串。 字符串
linuxConfiguration OS 配置文件的 Linux 配置。 LinuxConfiguration
秘密 用于添加到 VM 的证书列表。 VaultSecretGroup[]
windowsConfiguration OS 配置文件的 Windows 配置。 WindowsConfiguration

VirtualMachineScaleSetProperties

名字 描述 价值
overProvision 指定是否应过度预配虚拟机规模集。 bool
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 数据磁盘。 VirtualMachineScaleSetDataDisk[]
imageReference 图像引用。 ImageReference
osDisk OS 磁盘。 VirtualMachineScaleSetOSDisk

VirtualMachineScaleSetVMProfile

名字 描述 价值
extensionProfile 虚拟机规模集扩展配置文件。 VirtualMachineScaleSetExtensionProfile
networkProfile 虚拟机规模集网络配置文件。 VirtualMachineScaleSetNetworkProfile
osProfile 虚拟机规模集 OS 配置文件。 VirtualMachineScaleSetOSProfile
storageProfile 虚拟机规模集存储配置文件。 VirtualMachineScaleSetStorageProfile

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为自动更新启用虚拟机。 bool
provisionVMAgent 指示是否应在虚拟机上预配虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timeZone 指定虚拟机的时区。 例如“太平洋标准时间” 字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

WinRMConfiguration

名字 描述 价值
听众 Windows 远程管理侦听器列表 WinRMListener[]

WinRMListener

名字 描述 价值
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串
协议 指定侦听器的协议。

可能的值包括:
http

https
“Http”
“Https”

快速入门示例

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

Bicep 文件 描述
Azure 游戏开发人员虚拟机规模集 Azure 游戏开发人员虚拟机规模集包括 Unreal 等授权引擎。
部署 5 节点安全群集 使用此模板,可以在Standard_D2_v2大小 VMSS 上部署运行 Windows Server 2019 Datacenter 的安全 5 节点 Service Fabric 群集。
部署 Nextflow 基因组学群集 此模板使用 Jumpbox、n 群集节点、docker 支持和共享存储部署可缩放的 Nextflow 群集。
部署支持受信任的启动的 Windows VM 规模集 使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明
使用 Windows VM 和自动缩放 部署 VM 规模集 使用此模板,可以使用最新修补版本的 Windows 2008-R2-SP1、2012-Datacenter 或 2012-R2-Datacenter 部署简单的 WINDOWS VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 它们还集成了自动缩放
部署将每个 VM 连接到 Azure 文件共享的 VMSS 此模板部署 Ubuntu 虚拟机规模集,并使用自定义脚本扩展将每个 VM 连接到 Azure 文件共享
使用 Azure 应用程序网关部署 Windows VM 规模集 此模板允许部署与 Azure 应用程序网关集成的简单 Windows VM 规模集,并支持最多 1000 个 VM
使用 Python Bottle 服务器部署 VM 规模集 & 自动缩放 在负载均衡器/NAT 后面部署 VM 规模集 & 运行一个简单的 Python Bottle 应用的每个 VM。 使用自动缩放配置的规模集,可根据需要横向扩展 &
运行 IIS WebApp 的自动缩放的 VM 规模集 部署运行 IIS 的 Windows VM 规模集和非常基本的 .NET MVC Web 应用。 VMSS PowerShell DSC 扩展用于执行 IIS 安装和 WebDeploy 包部署。
VMSS 灵活业务流程模式快速入门 Linux 此模板部署一个简单的 VM 规模集,其中包含 Azure 负载均衡器后面的实例。 VM 规模集处于灵活的业务流程模式。 使用 os 参数选择 Linux(Ubuntu)或 Windows(Windows Server Datacenter 2019)部署。 注意:本快速入门模板允许从任何 Internet 地址访问 VM 管理端口(SSH、RDP),并且不应用于生产部署。
使用公共 IP 前缀 VMSS 用于部署具有公共 IP 前缀的 VMSS 的模板

ARM 模板资源定义

可以使用目标操作部署 virtualMachineScaleSets 资源类型:

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

资源格式

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

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "apiVersion": "2016-04-30-preview",
  "name": "string",
  "identity": {
    "type": "SystemAssigned"
  },
  "location": "string",
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string"
  },
  "properties": {
    "overProvision": "bool",
    "singlePlacementGroup": "bool",
    "upgradePolicy": {
      "mode": "string"
    },
    "virtualMachineProfile": {
      "extensionProfile": {
        "extensions": [
          {
            "name": "string",
            "properties": {
              "autoUpgradeMinorVersion": "bool",
              "protectedSettings": {},
              "publisher": "string",
              "settings": {},
              "type": "string",
              "typeHandlerVersion": "string"
            }
          }
        ]
      },
      "networkProfile": {
        "networkInterfaceConfigurations": [
          {
            "id": "string",
            "name": "string",
            "properties": {
              "ipConfigurations": [
                {
                  "id": "string",
                  "name": "string",
                  "properties": {
                    "applicationGatewayBackendAddressPools": [
                      {
                        "id": "string"
                      }
                    ],
                    "loadBalancerBackendAddressPools": [
                      {
                        "id": "string"
                      }
                    ],
                    "loadBalancerInboundNatPools": [
                      {
                        "id": "string"
                      }
                    ],
                    "subnet": {
                      "id": "string"
                    }
                  }
                }
              ],
              "primary": "bool"
            }
          }
        ]
      },
      "osProfile": {
        "adminPassword": "string",
        "adminUsername": "string",
        "computerNamePrefix": "string",
        "customData": "string",
        "linuxConfiguration": {
          "disablePasswordAuthentication": "bool",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "string",
                "path": "string"
              }
            ]
          }
        },
        "secrets": [
          {
            "sourceVault": {
              "id": "string"
            },
            "vaultCertificates": [
              {
                "certificateStore": "string",
                "certificateUrl": "string"
              }
            ]
          }
        ],
        "windowsConfiguration": {
          "additionalUnattendContent": [
            {
              "componentName": "Microsoft-Windows-Shell-Setup",
              "content": "string",
              "passName": "OobeSystem",
              "settingName": "string"
            }
          ],
          "enableAutomaticUpdates": "bool",
          "provisionVMAgent": "bool",
          "timeZone": "string",
          "winRM": {
            "listeners": [
              {
                "certificateUrl": "string",
                "protocol": "string"
              }
            ]
          }
        }
      },
      "storageProfile": {
        "dataDisks": [
          {
            "caching": "string",
            "createOption": "string",
            "diskSizeGB": "int",
            "lun": "int",
            "managedDisk": {
              "storageAccountType": "string"
            },
            "name": "string"
          }
        ],
        "imageReference": {
          "id": "string",
          "offer": "string",
          "publisher": "string",
          "sku": "string",
          "version": "string"
        },
        "osDisk": {
          "caching": "string",
          "createOption": "string",
          "image": {
            "uri": "string"
          },
          "managedDisk": {
            "storageAccountType": "string"
          },
          "name": "string",
          "osType": "string",
          "vhdContainers": [ "string" ]
        }
      }
    }
  },
  "sku": {
    "capacity": "int",
    "name": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

属性值

AdditionalUnattendContent

名字 描述 价值
componentName 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 “Microsoft-Windows-Shell-Setup”
内容 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 字符串
passName 传递名称。 目前,唯一允许的值是 OobeSystem。 “OobeSystem”
settingName 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 “AutoLogon”
“FirstLogonCommands”

ApiEntityReference

名字 描述 价值
id /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID 字符串

ImageReference

名字 描述 价值
id 资源 ID 字符串
提供 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 字符串
发行人 映像发布者。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 字符串

LinuxConfiguration

名字 描述 价值
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
ssh 指定 Linux OS 的 ssh 密钥配置。 SshConfiguration

Microsoft.Compute/virtualMachineScaleSets

名字 描述 价值
apiVersion API 版本 '2016-04-30-preview'
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
位置 资源位置 string (必需)
名字 资源名称 string (必需)
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
sku 虚拟机规模集 SKU。 Sku
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
类型 资源类型 “Microsoft.Compute/virtualMachineScaleSets”

计划

名字 描述 价值
名字 计划 ID。 字符串
产品 指定来自市场的映像的产品。 此值与 imageReference 元素下的 Offer 相同。 字符串
promotionCode 促销代码。 字符串
发行人 发布者 ID。 字符串

ResourceTags

名字 描述 价值

Sku

名字 描述 价值
能力 指定规模集中的虚拟机数。 int
名字 SKU 名称。 字符串
指定规模集中的虚拟机层。

可能的值:

标准

基本
字符串

SshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名字 描述 价值
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。

有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。
字符串
路径 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys 字符串

SubResource

名字 描述 价值
id 资源 ID 字符串

UpgradePolicy

名字 描述 价值
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

VaultCertificate

名字 描述 价值
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。
字符串
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串

VaultSecretGroup

名字 描述 价值
sourceVault Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VirtualHardDisk

名字 描述 价值
uri 指定虚拟硬盘的 URI。 字符串

VirtualMachineScaleSetDataDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串

VirtualMachineScaleSetExtension

名字 描述 价值
名字 扩展的名称。 字符串
性能 描述虚拟机规模集扩展的属性。 VirtualMachineScaleSetExtensionProperties

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。 任何
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 “SystemAssigned”

VirtualMachineScaleSetIPConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 IP 配置名称。 string (必需)
性能 描述虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名字 描述 价值
applicationGatewayBackendAddressPools 应用程序网关后端地址池。 SubResource[]
loadBalancerBackendAddressPools 负载均衡器后端地址池。 SubResource[]
loadBalancerInboundNatPools 负载均衡器入站 nat 池。 SubResource[]
子网。 ApiEntityReference(必需)

VirtualMachineScaleSetManagedDiskParameters

名字 描述 价值
storageAccountType 指定托管磁盘的存储帐户类型。 可能的值为:Standard_LRS或Premium_LRS。 “Premium_LRS”
“Standard_LRS”

VirtualMachineScaleSetNetworkConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 网络配置名称。 string (必需)
性能 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名字 描述 价值
ipConfigurations 虚拟机规模集 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (必需)
主要 这是否是虚拟机上的主 NIC。 bool

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetOSDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建规模集中的虚拟机。

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
图像 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 虚拟硬盘容器 URI 的列表。 string[]

VirtualMachineScaleSetOSProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度(Windows): 8 个字符

最小长度(Linux): 6 个字符

最大长度(Windows): 123 个字符

最大长度(Linux): 72 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”

若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘
字符串
adminUsername 指定管理员帐户的名称。

仅限 Windows 的限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度(Linux): 1 个字符

最大长度(Linux): 64 个字符

最大长度(Windows): 20 个字符

<li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限
<li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 自定义数据的 base-64 编码字符串。 字符串
linuxConfiguration OS 配置文件的 Linux 配置。 LinuxConfiguration
秘密 用于添加到 VM 的证书列表。 VaultSecretGroup[]
windowsConfiguration OS 配置文件的 Windows 配置。 WindowsConfiguration

VirtualMachineScaleSetProperties

名字 描述 价值
overProvision 指定是否应过度预配虚拟机规模集。 bool
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 数据磁盘。 VirtualMachineScaleSetDataDisk[]
imageReference 图像引用。 ImageReference
osDisk OS 磁盘。 VirtualMachineScaleSetOSDisk

VirtualMachineScaleSetVMProfile

名字 描述 价值
extensionProfile 虚拟机规模集扩展配置文件。 VirtualMachineScaleSetExtensionProfile
networkProfile 虚拟机规模集网络配置文件。 VirtualMachineScaleSetNetworkProfile
osProfile 虚拟机规模集 OS 配置文件。 VirtualMachineScaleSetOSProfile
storageProfile 虚拟机规模集存储配置文件。 VirtualMachineScaleSetStorageProfile

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为自动更新启用虚拟机。 bool
provisionVMAgent 指示是否应在虚拟机上预配虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timeZone 指定虚拟机的时区。 例如“太平洋标准时间” 字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

WinRMConfiguration

名字 描述 价值
听众 Windows 远程管理侦听器列表 WinRMListener[]

WinRMListener

名字 描述 价值
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串
协议 指定侦听器的协议。

可能的值包括:
http

https
“Http”
“Https”

快速入门模板

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

模板 描述
将多个 VM 添加到虚拟机规模集

部署到 Azure
此模板将使用托管磁盘、公共 IP 和网络接口创建 N 个 VM 数量。 它将在灵活业务流程模式下在虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
使用 Azure SQL 数据库 自动缩放 LANSA Windows VM ScaleSet

部署到 Azure
该模板部署具有规模集中所需 VM 计数的 Windows VMSS,以及要安装到每个 VM 中的 LANSA MSI。 部署 VM 规模集后,将使用自定义脚本扩展安装 LANSA MSI)
Azure 容器服务引擎 (acs-engine) - 群模式

部署到 Azure
Azure 容器服务引擎(acs-engine)使用你选择的 DC/OS、Kubernetes、Swarm 模式或 Swarm 业务流程协调程序,为 Microsoft Azure 上启用了 Docker 的群集生成 ARM(Azure 资源管理器)模板。 该工具的输入是群集定义。 群集定义与用于部署 Microsoft Azure 容器服务群集的 ARM 模板语法非常相似(在许多情况下相同)。
Azure 游戏开发人员虚拟机规模集

部署到 Azure
Azure 游戏开发人员虚拟机规模集包括 Unreal 等授权引擎。
Azure VM 规模集作为 Intel Lustre 客户端

部署到 Azure
此模板使用 Azure VM 规模集和 Azure 库 OpenLogic CentOS 6.6 或 7.0 映像创建一组 Intel Lustre 2.7 客户端,并装载现有的 Intel Lustre 文件系统
使用机密磁盘加密 机密 VM 规模集

部署到 Azure
使用此模板,可以使用多个 Windows 和 Linux 映像版本的最新修补版本部署启用了机密 OS 磁盘加密的机密 VM 规模集。
Couchbase Enterprise

部署到 Azure
用于安装 Couchbase Enterprise 的 Azure 资源管理器 (ARM) 模板
使用 jumpbox 创建和加密新的 Linux VMSS

部署到 Azure
此模板使用最新的 Linux 映像部署 Linux VMSS,添加数据卷,然后加密每个 Linux VMSS 实例的数据卷。 它还在与具有专用 IP 地址的 Linux VMSS 实例相同的虚拟网络中部署具有公共 IP 地址的 jumpbox。 这允许通过其公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址连接到 Linux VMSS 实例。
使用 jumpbox 创建和加密新的 Windows VMSS

部署到 Azure
使用此模板,可以使用服务器 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 此模板还会在同一虚拟网络中部署具有公共 IP 地址的 jumpbox。 可以通过此公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址从那里连接到规模集中的 VM。此模板在 WINDOWS VM 的 VM 规模集上启用加密。
部署启用了 NSG 的 3 Nodetype 安全群集

部署到 Azure
此模板允许在Standard_D2大小 VM 上部署运行 Windows Server 2016 数据中心的安全 3 节点类型 Service Fabric 群集。 使用此模板,可以使用网络安全组控制入站和出站网络流量。
部署 5 节点安全群集

部署到 Azure
使用此模板,可以在Standard_D2_v2大小 VMSS 上部署运行 Windows Server 2019 Datacenter 的安全 5 节点 Service Fabric 群集。
部署 5 节点 Ubuntu Service Fabric 群集

部署到 Azure
此模板允许在Standard_D2_V2大小 VMSS 上部署运行 Ubuntu 的安全 5 节点 Service Fabric 群集。
部署 Linux VMSS 主要/辅助体系结构

部署到 Azure
使用此模板,可以在主要辅助体系结构中使用自定义脚本扩展部署 Linux VMSS
部署 Nextflow 基因组学群集

部署到 Azure
此模板使用 Jumpbox、n 群集节点、docker 支持和共享存储部署可缩放的 Nextflow 群集。
将规模集部署到现有 vnet

部署到 Azure
此模板将 VM 规模集部署到一个前发的 vnet 中。
将规模集部署到 Windows 上的现有 vnet

部署到 Azure
此模板将 Windows 2016 Datacenter VM 规模集部署到除名资源组、vnet 和子网中。
使用 Linux VM 部署简单的 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Ubuntu Linux 14.04.4-LTS 或 16.04-LTS 部署简单的 Linux VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。
使用 Linux VM 和 Jumpbox 部署简单的 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署简单的 VM 规模集。 还有一个 jumpbox,用于启用 VM 位于 VNet 外部的连接。
使用 Windows VM 部署简单的 VM 规模集

部署到 Azure
使用此模板,可以使用各种 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 这些 VM 位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。
使用 Windows VM 和 Jumpbox 部署简单的 VM 规模集

部署到 Azure
使用此模板,可以使用服务器 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 此模板还会在同一虚拟网络中部署具有公共 IP 地址的 jumpbox。 可以通过此公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址从那里连接到规模集中的 VM。
部署支持受信任的启动的 Windows VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明
从 Azure 数据科学 VM 部署 VM 规模集

部署到 Azure
这些模板使用 Azure 数据科学 VM 作为源映像部署 VM 规模集。
使用 Linux 自定义映像部署 VM 规模集

部署到 Azure
此模板允许在规模集中部署自定义 VM Linux 映像。 这些 VM 位于具有 HTTP 负载均衡的负载均衡器后面(默认情况下在端口 80 上)。 该示例使用自定义脚本执行应用程序部署和更新,可能需要为自己的更新过程提供自定义脚本。 必须在创建 VMSS 的同一订阅和区域中提供 VM 的通用化映像。
使用 Windows 自定义映像部署 VM 规模集

部署到 Azure
使用此模板可以部署简单的 VM 规模集,从而部署自定义 Windows 映像。 这些 VM 位于具有 HTTP 负载均衡的负载均衡器后面(默认情况下在端口 80 上)
使用 Linux VM 和自动缩放 部署 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.04 或 14.04.4-LTS 部署简单的 LINUX VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。它们还集成了自动缩放
在 ILB 后面部署具有 Linux VM 的 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署 VM 规模集。 这些 VM 位于内部负载均衡器后面,其中包含 SSH 连接的 NAT 规则。
在可用性区域中部署具有 Linux VM 的 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Ubuntu Linux 14.04.4-LTS 或 16.04-LTS 部署简单的 Linux VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。
使用 Windows VM 和自动缩放 部署 VM 规模集

部署到 Azure
使用此模板,可以使用最新修补版本的 Windows 2008-R2-SP1、2012-Datacenter 或 2012-R2-Datacenter 部署简单的 WINDOWS VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 它们还集成了自动缩放
在可用性区域中部署具有 Windows VM 的 VM 规模集

部署到 Azure
使用此模板,可以使用各种 Windows 版本的最新修补版本部署 Windows VM 的 VM 规模集。 这些 VM 位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。
部署将每个 VM 连接到 Azure 文件共享的 VMSS

部署到 Azure
此模板部署 Ubuntu 虚拟机规模集,并使用自定义脚本扩展将每个 VM 连接到 Azure 文件共享
使用自定义脚本扩展部署 Windows VM 规模集

部署到 Azure
使用此模板,可以使用各种 Windows 版本的最新修补版本部署 Windows VM 的 VM 规模集。 这些 VM 具有用于自定义的自定义脚本扩展,并且位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。
使用 Azure 应用程序网关部署 Windows VM 规模集

部署到 Azure
此模板允许部署与 Azure 应用程序网关集成的简单 Windows VM 规模集,并支持最多 1000 个 VM
为虚拟机 ScaleSet 部署自动缩放设置

部署到 Azure
此模板允许为虚拟机 ScaleSet 资源部署自动缩放策略。
使用 Azure 应用程序网关部署 Ubuntu VM 规模集

部署到 Azure
此模板允许部署与 Azure 应用程序网关集成的简单 Ubuntu VM 规模集,并支持最多 1000 个 VM
部署 Darktrace 自动缩放 vSensors

部署到 Azure
此模板允许你部署 Darktrace vSensors 的自动自动缩放部署
使用 VM 规模集、Azure 文件和 Mysql 部署 Drupal

部署到 Azure
在负载均衡器/NAT 后面部署 VM 规模集,& 运行 Drupal(Apache/PHP)的每个 VM。 所有节点共享创建的 Azure 文件共享存储和 MySQL 数据库
使用 LB 探测和自动修复部署 VM 规模集

部署到 Azure
使用此模板,可以在配置了运行状况探测的负载均衡器后面部署一组 Linux VM 规模集。 规模集还启用了自动实例修复策略,宽限期为 30 分钟。
使用 Python Bottle 服务器部署 VM 规模集 & 自动缩放

部署到 Azure
在负载均衡器/NAT 后面部署 VM 规模集 & 运行一个简单的 Python Bottle 应用的每个 VM。 使用自动缩放配置的规模集,可根据需要横向扩展 &
部署 Windows VMSS 配置 Windows 特征 SSL DSC

部署到 Azure
此模板允许你部署两个 Windows VMSS,配置 WINDOWS 功能,如 IIS/Web 角色、.Net Framework 4.5、windows 身份验证、应用程序初始化、下载应用程序部署包、URL 重写 & 使用 DSC 和 Azure Key Vault 的 SSL 配置
在现有 Linux VMSS 上禁用加密

部署到 Azure
在现有 Linux VMSS 上禁用加密
在正在运行的 Linux VMSS 上启用数据卷加密

部署到 Azure
在正在运行的 Linux VMSS 上启用数据卷加密
在虚拟机规模集上安装 Elasticsearch 群集

部署到 Azure
此模板在虚拟机规模集上部署 Elasticsearch 群集。 该模板预配 3 个专用主节点,其中包含在托管磁盘上运行的可选数据节点数。
RHEL 上的 JBoss EAP (群集 VMSS)

部署到 Azure
此模板允许创建运行 JBoss EAP 7.4 群集的 RHEL 8.6 VMSS 实例,并部署名为 eap-session-replication 的 Web 应用程序,可以使用部署时配置的 JBoss EAP 用户名和密码登录到管理控制台。
使用 VMSS 群集自动缩放程序 Kubernetes 群集

部署到 Azure
此模板部署使用 kubeadm 初始化的 vanilla kubernetes 群集。 它使用群集自动缩放程序部署配置的主节点。 预配置的虚拟机规模集(VMSS)也会部署并自动附加到群集。 然后,群集自动缩放程序可以根据群集的工作负荷自动纵向扩展/缩减群集。
使用 Linux VM 和每个 VM 的公共 IPv4 简单 VM 规模集

部署到 Azure
此模板演示如何为每个 VM 部署一个包含负载均衡器、入站 NAT 规则和公共 IP 的简单规模集。
已启用 SSL 的 VM 规模集

部署到 Azure
使用安全部署的 SSL 证书部署 Web 服务器配置 Azure Key Vault
使用可用性区域 虚拟机规模集示例

部署到 Azure
此模板创建一个 VMSS,该 VMSS 放置在具有负载均衡器的单独可用性区域中。
运行 IIS WebApp 的自动缩放的 VM 规模集

部署到 Azure
部署运行 IIS 的 Windows VM 规模集和非常基本的 .NET MVC Web 应用。 VMSS PowerShell DSC 扩展用于执行 IIS 安装和 WebDeploy 包部署。
Azure 虚拟网络(VNET)中 IPv6 的 VMSS 部署

部署到 Azure
使用双堆栈 IPv4/IPv6 VNET 和 Std 负载均衡器创建 VM 规模集。
VMSS 灵活业务流程模式快速入门 Linux

部署到 Azure
此模板部署一个简单的 VM 规模集,其中包含 Azure 负载均衡器后面的实例。 VM 规模集处于灵活的业务流程模式。 使用 os 参数选择 Linux(Ubuntu)或 Windows(Windows Server Datacenter 2019)部署。 注意:本快速入门模板允许从任何 Internet 地址访问 VM 管理端口(SSH、RDP),并且不应用于生产部署。
使用公共 IP 前缀 VMSS

部署到 Azure
用于部署具有公共 IP 前缀的 VMSS 的模板

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

可以使用目标操作部署 virtualMachineScaleSets 资源类型:

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/virtualMachineScaleSets@2016-04-30-preview"
  name = "string"
  identity = {
    type = "SystemAssigned"
  }
  location = "string"
  plan = {
    name = "string"
    product = "string"
    promotionCode = "string"
    publisher = "string"
  }
  sku = {
    capacity = int
    name = "string"
    tier = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      overProvision = bool
      singlePlacementGroup = bool
      upgradePolicy = {
        mode = "string"
      }
      virtualMachineProfile = {
        extensionProfile = {
          extensions = [
            {
              name = "string"
              properties = {
                autoUpgradeMinorVersion = bool
                protectedSettings = ?
                publisher = "string"
                settings = ?
                type = "string"
                typeHandlerVersion = "string"
              }
            }
          ]
        }
        networkProfile = {
          networkInterfaceConfigurations = [
            {
              id = "string"
              name = "string"
              properties = {
                ipConfigurations = [
                  {
                    id = "string"
                    name = "string"
                    properties = {
                      applicationGatewayBackendAddressPools = [
                        {
                          id = "string"
                        }
                      ]
                      loadBalancerBackendAddressPools = [
                        {
                          id = "string"
                        }
                      ]
                      loadBalancerInboundNatPools = [
                        {
                          id = "string"
                        }
                      ]
                      subnet = {
                        id = "string"
                      }
                    }
                  }
                ]
                primary = bool
              }
            }
          ]
        }
        osProfile = {
          adminPassword = "string"
          adminUsername = "string"
          computerNamePrefix = "string"
          customData = "string"
          linuxConfiguration = {
            disablePasswordAuthentication = bool
            ssh = {
              publicKeys = [
                {
                  keyData = "string"
                  path = "string"
                }
              ]
            }
          }
          secrets = [
            {
              sourceVault = {
                id = "string"
              }
              vaultCertificates = [
                {
                  certificateStore = "string"
                  certificateUrl = "string"
                }
              ]
            }
          ]
          windowsConfiguration = {
            additionalUnattendContent = [
              {
                componentName = "Microsoft-Windows-Shell-Setup"
                content = "string"
                passName = "OobeSystem"
                settingName = "string"
              }
            ]
            enableAutomaticUpdates = bool
            provisionVMAgent = bool
            timeZone = "string"
            winRM = {
              listeners = [
                {
                  certificateUrl = "string"
                  protocol = "string"
                }
              ]
            }
          }
        }
        storageProfile = {
          dataDisks = [
            {
              caching = "string"
              createOption = "string"
              diskSizeGB = int
              lun = int
              managedDisk = {
                storageAccountType = "string"
              }
              name = "string"
            }
          ]
          imageReference = {
            id = "string"
            offer = "string"
            publisher = "string"
            sku = "string"
            version = "string"
          }
          osDisk = {
            caching = "string"
            createOption = "string"
            image = {
              uri = "string"
            }
            managedDisk = {
              storageAccountType = "string"
            }
            name = "string"
            osType = "string"
            vhdContainers = [
              "string"
            ]
          }
        }
      }
    }
  })
}

属性值

AdditionalUnattendContent

名字 描述 价值
componentName 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 “Microsoft-Windows-Shell-Setup”
内容 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 字符串
passName 传递名称。 目前,唯一允许的值是 OobeSystem。 “OobeSystem”
settingName 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 “AutoLogon”
“FirstLogonCommands”

ApiEntityReference

名字 描述 价值
id /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID 字符串

ImageReference

名字 描述 价值
id 资源 ID 字符串
提供 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 字符串
发行人 映像发布者。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 字符串

LinuxConfiguration

名字 描述 价值
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
ssh 指定 Linux OS 的 ssh 密钥配置。 SshConfiguration

Microsoft.Compute/virtualMachineScaleSets

名字 描述 价值
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
位置 资源位置 string (必需)
名字 资源名称 string (必需)
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
sku 虚拟机规模集 SKU。 Sku
标签 资源标记 标记名称和值的字典。
类型 资源类型 “Microsoft.Compute/virtualMachineScaleSets@2016-04-30-preview”

计划

名字 描述 价值
名字 计划 ID。 字符串
产品 指定来自市场的映像的产品。 此值与 imageReference 元素下的 Offer 相同。 字符串
promotionCode 促销代码。 字符串
发行人 发布者 ID。 字符串

ResourceTags

名字 描述 价值

Sku

名字 描述 价值
能力 指定规模集中的虚拟机数。 int
名字 SKU 名称。 字符串
指定规模集中的虚拟机层。

可能的值:

标准

基本
字符串

SshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名字 描述 价值
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。

有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。
字符串
路径 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys 字符串

SubResource

名字 描述 价值
id 资源 ID 字符串

UpgradePolicy

名字 描述 价值
模式 指定升级到规模集中虚拟机的模式。

可能的值包括:

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

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

VaultCertificate

名字 描述 价值
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。
字符串
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串

VaultSecretGroup

名字 描述 价值
sourceVault Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VirtualHardDisk

名字 描述 价值
uri 指定虚拟硬盘的 URI。 字符串

VirtualMachineScaleSetDataDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串

VirtualMachineScaleSetExtension

名字 描述 价值
名字 扩展的名称。 字符串
性能 描述虚拟机规模集扩展的属性。 VirtualMachineScaleSetExtensionProperties

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 任何
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。 任何
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 “SystemAssigned”

VirtualMachineScaleSetIPConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 IP 配置名称。 string (必需)
性能 描述虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名字 描述 价值
applicationGatewayBackendAddressPools 应用程序网关后端地址池。 SubResource[]
loadBalancerBackendAddressPools 负载均衡器后端地址池。 SubResource[]
loadBalancerInboundNatPools 负载均衡器入站 nat 池。 SubResource[]
子网。 ApiEntityReference(必需)

VirtualMachineScaleSetManagedDiskParameters

名字 描述 价值
storageAccountType 指定托管磁盘的存储帐户类型。 可能的值为:Standard_LRS或Premium_LRS。 “Premium_LRS”
“Standard_LRS”

VirtualMachineScaleSetNetworkConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 网络配置名称。 string (必需)
性能 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名字 描述 价值
ipConfigurations 虚拟机规模集 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (必需)
主要 这是否是虚拟机上的主 NIC。 bool

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetOSDisk

名字 描述 价值
缓存 指定缓存要求。

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建规模集中的虚拟机。

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
图像 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 虚拟硬盘容器 URI 的列表。 string[]

VirtualMachineScaleSetOSProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度(Windows): 8 个字符

最小长度(Linux): 6 个字符

最大长度(Windows): 123 个字符

最大长度(Linux): 72 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”

若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘
字符串
adminUsername 指定管理员帐户的名称。

仅限 Windows 的限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度(Linux): 1 个字符

最大长度(Linux): 64 个字符

最大长度(Windows): 20 个字符

<li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限
<li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 自定义数据的 base-64 编码字符串。 字符串
linuxConfiguration OS 配置文件的 Linux 配置。 LinuxConfiguration
秘密 用于添加到 VM 的证书列表。 VaultSecretGroup[]
windowsConfiguration OS 配置文件的 Windows 配置。 WindowsConfiguration

VirtualMachineScaleSetProperties

名字 描述 价值
overProvision 指定是否应过度预配虚拟机规模集。 bool
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 数据磁盘。 VirtualMachineScaleSetDataDisk[]
imageReference 图像引用。 ImageReference
osDisk OS 磁盘。 VirtualMachineScaleSetOSDisk

VirtualMachineScaleSetVMProfile

名字 描述 价值
extensionProfile 虚拟机规模集扩展配置文件。 VirtualMachineScaleSetExtensionProfile
networkProfile 虚拟机规模集网络配置文件。 VirtualMachineScaleSetNetworkProfile
osProfile 虚拟机规模集 OS 配置文件。 VirtualMachineScaleSetOSProfile
storageProfile 虚拟机规模集存储配置文件。 VirtualMachineScaleSetStorageProfile

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为自动更新启用虚拟机。 bool
provisionVMAgent 指示是否应在虚拟机上预配虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timeZone 指定虚拟机的时区。 例如“太平洋标准时间” 字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

WinRMConfiguration

名字 描述 价值
听众 Windows 远程管理侦听器列表 WinRMListener[]

WinRMListener

名字 描述 价值
certificateUrl 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码:

{
“data”:“<Base64 编码的证书>”,
“dataType”:“pfx”,
“password”:“<pfx-file-password>”
}
字符串
协议 指定侦听器的协议。

可能的值包括:
http

https
“Http”
“Https”