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

Microsoft.Compute virtualMachineScaleSets/virtualmachines 2021-07-01

Bicep 资源定义

virtualMachineScaleSets/virtualmachines 资源类型可以通过针对以下操作进行部署:

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

资源格式

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

resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets/virtualmachines@2021-07-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  parent: resourceSymbolicName
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
  }
  properties: {
    additionalCapabilities: {
      hibernationEnabled: bool
      ultraSSDEnabled: bool
    }
    availabilitySet: {
      id: 'string'
    }
    diagnosticsProfile: {
      bootDiagnostics: {
        enabled: bool
        storageUri: 'string'
      }
    }
    hardwareProfile: {
      vmSize: 'string'
      vmSizeProperties: {
        vCPUsAvailable: int
        vCPUsPerCore: int
      }
    }
    licenseType: 'string'
    networkProfile: {
      networkApiVersion: '2020-11-01'
      networkInterfaceConfigurations: [
        {
          name: 'string'
          properties: {
            deleteOption: 'string'
            dnsSettings: {
              dnsServers: [
                'string'
              ]
            }
            dscpConfiguration: {
              id: 'string'
            }
            enableAcceleratedNetworking: bool
            enableFpga: bool
            enableIPForwarding: bool
            ipConfigurations: [
              {
                name: 'string'
                properties: {
                  applicationGatewayBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  applicationSecurityGroups: [
                    {
                      id: 'string'
                    }
                  ]
                  loadBalancerBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  primary: bool
                  privateIPAddressVersion: 'string'
                  publicIPAddressConfiguration: {
                    name: 'string'
                    properties: {
                      deleteOption: 'string'
                      dnsSettings: {
                        domainNameLabel: 'string'
                      }
                      idleTimeoutInMinutes: int
                      ipTags: [
                        {
                          ipTagType: 'string'
                          tag: 'string'
                        }
                      ]
                      publicIPAddressVersion: 'string'
                      publicIPAllocationMethod: 'string'
                      publicIPPrefix: {
                        id: 'string'
                      }
                    }
                    sku: {
                      name: 'string'
                      tier: 'string'
                    }
                  }
                  subnet: {
                    id: 'string'
                  }
                }
              }
            ]
            networkSecurityGroup: {
              id: 'string'
            }
            primary: bool
          }
        }
      ]
      networkInterfaces: [
        {
          id: 'string'
          properties: {
            deleteOption: 'string'
            primary: bool
          }
        }
      ]
    }
    networkProfileConfiguration: {
      networkInterfaceConfigurations: [
        {
          id: 'string'
          name: 'string'
          properties: {
            deleteOption: 'string'
            dnsSettings: {
              dnsServers: [
                'string'
              ]
            }
            enableAcceleratedNetworking: bool
            enableFpga: bool
            enableIPForwarding: bool
            ipConfigurations: [
              {
                id: 'string'
                name: 'string'
                properties: {
                  applicationGatewayBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  applicationSecurityGroups: [
                    {
                      id: 'string'
                    }
                  ]
                  loadBalancerBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  loadBalancerInboundNatPools: [
                    {
                      id: 'string'
                    }
                  ]
                  primary: bool
                  privateIPAddressVersion: 'string'
                  publicIPAddressConfiguration: {
                    name: 'string'
                    properties: {
                      deleteOption: 'string'
                      dnsSettings: {
                        domainNameLabel: 'string'
                      }
                      idleTimeoutInMinutes: int
                      ipTags: [
                        {
                          ipTagType: 'string'
                          tag: 'string'
                        }
                      ]
                      publicIPAddressVersion: 'string'
                      publicIPPrefix: {
                        id: 'string'
                      }
                    }
                    sku: {
                      name: 'string'
                      tier: 'string'
                    }
                  }
                  subnet: {
                    id: 'string'
                  }
                }
              }
            ]
            networkSecurityGroup: {
              id: 'string'
            }
            primary: bool
          }
        }
      ]
    }
    osProfile: {
      adminPassword: 'string'
      adminUsername: 'string'
      allowExtensionOperations: bool
      computerName: 'string'
      customData: 'string'
      linuxConfiguration: {
        disablePasswordAuthentication: bool
        patchSettings: {
          assessmentMode: 'string'
          patchMode: 'string'
        }
        provisionVMAgent: bool
        ssh: {
          publicKeys: [
            {
              keyData: 'string'
              path: 'string'
            }
          ]
        }
      }
      requireGuestProvisionSignal: bool
      secrets: [
        {
          sourceVault: {
            id: 'string'
          }
          vaultCertificates: [
            {
              certificateStore: 'string'
              certificateUrl: 'string'
            }
          ]
        }
      ]
      windowsConfiguration: {
        additionalUnattendContent: [
          {
            componentName: 'Microsoft-Windows-Shell-Setup'
            content: 'string'
            passName: 'OobeSystem'
            settingName: 'string'
          }
        ]
        enableAutomaticUpdates: bool
        patchSettings: {
          assessmentMode: 'string'
          enableHotpatching: bool
          patchMode: 'string'
        }
        provisionVMAgent: bool
        timeZone: 'string'
        winRM: {
          listeners: [
            {
              certificateUrl: 'string'
              protocol: 'string'
            }
          ]
        }
      }
    }
    protectionPolicy: {
      protectFromScaleIn: bool
      protectFromScaleSetActions: bool
    }
    securityProfile: {
      encryptionAtHost: bool
      securityType: 'TrustedLaunch'
      uefiSettings: {
        secureBootEnabled: bool
        vTpmEnabled: bool
      }
    }
    storageProfile: {
      dataDisks: [
        {
          caching: 'string'
          createOption: 'string'
          deleteOption: 'string'
          detachOption: 'ForceDetach'
          diskSizeGB: int
          image: {
            uri: 'string'
          }
          lun: int
          managedDisk: {
            diskEncryptionSet: {
              id: 'string'
            }
            id: 'string'
            storageAccountType: 'string'
          }
          name: 'string'
          toBeDetached: bool
          vhd: {
            uri: 'string'
          }
          writeAcceleratorEnabled: bool
        }
      ]
      imageReference: {
        id: 'string'
        offer: 'string'
        publisher: 'string'
        sharedGalleryImageId: 'string'
        sku: 'string'
        version: 'string'
      }
      osDisk: {
        caching: 'string'
        createOption: 'string'
        deleteOption: 'string'
        diffDiskSettings: {
          option: 'Local'
          placement: 'string'
        }
        diskSizeGB: int
        encryptionSettings: {
          diskEncryptionKey: {
            secretUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
          enabled: bool
          keyEncryptionKey: {
            keyUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
        }
        image: {
          uri: 'string'
        }
        managedDisk: {
          diskEncryptionSet: {
            id: 'string'
          }
          id: 'string'
          storageAccountType: 'string'
        }
        name: 'string'
        osType: 'string'
        vhd: {
          uri: 'string'
        }
        writeAcceleratorEnabled: bool
      }
    }
    userData: 'string'
  }
}

属性值

virtualMachineScaleSets/virtualmachines

名称 说明
name 资源名称

了解如何在 Bicep 中为子资源设置名称和类型。
字符串 (必需)
location 资源位置 字符串 (必需)
标记 资源标记 标记名称和值的字典。 请参阅 模板中的标记
父级 (parent) 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。

有关详细信息,请参阅 父资源之外的子资源
类型为资源的符号名称: virtualMachineScaleSets
plan 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 介绍虚拟机规模集虚拟机的属性。 VirtualMachineScaleSetVMProperties

计划

名称 说明
name 计划 ID。 字符串
product 指定市场中映像的产品。 此值与 imageReference 元素下的 Offer 相同。 字符串
promotionCode 促销代码。 字符串
发布者 发布者 ID。 字符串

VirtualMachineScaleSetVMProperties

名称 说明
additionalCapabilities 指定在规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否支持附加UltraSSD_LRS存储帐户类型的托管数据磁盘。 AdditionalCapabilities
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述

有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新

目前,只能在创建时将 VM 添加到可用性集。 无法将现有 VM 添加到可用性集。
SubResource
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
LicenseType 指定正在使用的映像或磁盘已在本地获得许可。

Windows Server 操作系统的可能值为:

Windows_Client

Windows_Server

Linux Server 操作系统的可能值为:

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

有关详细信息,请参阅 适用于 Windows Server 的 Azure 混合使用权益

适用于 Linux Server 的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
networkProfileConfiguration 指定虚拟机的网络配置文件配置。 VirtualMachineScaleSetVMNetworkProfileConfiguration
osProfile 指定虚拟机的操作系统设置。 OSProfile
protectionPolicy 指定虚拟机的保护策略。 VirtualMachineScaleSetVMProtectionPolicy
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。

最低 API 版本:2021-03-01
字符串

AdditionalCapabilities

名称 说明
hibernationEnabled 在 VM 上启用或禁用休眠功能的标志。 bool
ultraSSDEnabled 一个标志,用于启用或禁用在 VM 或 VMSS 上具有UltraSSD_LRS存储帐户类型的一个或多个托管数据磁盘的功能。 仅当启用此属性时,才能将存储帐户类型为 UltraSSD_LRS 的托管磁盘添加到虚拟机或虚拟机规模集。 bool

SubResource

名称 说明 Value
id 资源 ID 字符串

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。
注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。

可以轻松查看控制台日志的输出。

Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。

如果在启用启动诊断时未指定 storageUri,则将使用托管存储。
字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。

枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。

获取可用大小列表的建议方法是使用以下 API:

列出可用性集中的所有可用虚拟机大小

列出区域中所有可用的虚拟机大小

列出所有可用于调整大小的虚拟机大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小

可用的 VM 大小取决于区域和可用性集。
“Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。

有关更多详细信息,请按照 VM 自定义 中的说明进行操作。
VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。

如果未在请求正文中指定此属性,则默认行为是将其设置为可用于该 VM 大小的 vCPU 的值,该 VM 大小在 API 响应中公开, 即列出区域中的所有可用虚拟机大小
int
vCPUsPerCore 指定 vCPU 与物理核心的比率。

如果未在请求正文中指定此属性,则对于列出区域中所有可用虚拟机大小的 API 响应中公开的 VM 大小,默认行为设置为 vCPUsPerCore 的值

将此属性设置为 1 还意味着禁用超线程。
int

NetworkProfile

名称 说明
networkApiVersion 指定在网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 '2020-11-01'
networkInterfaceConfigurations 指定将用于创建虚拟机网络资源的网络配置。 VirtualMachineNetworkInterfaceConfiguration[]
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

VirtualMachineNetworkInterfaceConfiguration

名称 说明
name 网络接口配置名称。 字符串 (必需)
properties 描述虚拟机网络配置文件的 IP 配置。 VirtualMachineNetworkInterfaceConfigurationPropertie...

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineNetworkInterfaceIPConfiguration

名称 说明
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机网络接口 IP 配置属性。 VirtualMachineNetworkInterfaceIPConfigurationPropert...

VirtualMachineNetworkInterfaceIPConfigurationPropert...

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 虚拟机可以引用多个应用程序网关的后端地址池。 多个虚拟机不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 虚拟机可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 [多个虚拟机不能使用相同的基本 SKU 负载均衡器]。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachinePublicIPAddressConfiguration
子网 指定子网的标识符。 SubResource

VirtualMachinePublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机 IP 配置的 PublicIPAddress 配置 VirtualMachinePublicIPAddressConfigurationProperties
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachinePublicIPAddressConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时公共 IP 地址会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于 publicIP 地址 的 dns 设置。 VirtualMachinePublicIPAddressDnsSettingsConfiguratio...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAllocationMethod 指定公共 IP 分配类型 “Dynamic”
“Static”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)

VirtualMachineIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等 字符串

PublicIPAddressSku

名称 说明
name 指定公共 IP SKU 名称 “Basic”
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

NetworkInterfaceReference

名称 说明 Value
id 资源 ID string
properties 介绍网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetVMNetworkProfileConfiguration

名称 说明
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetNetworkConfiguration

名称 说明 Value
id 资源 ID 字符串
name 网络配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineScaleSetNetworkConfigurationDnsSetting...
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (所需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetNetworkConfigurationDnsSetting...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineScaleSetIPConfiguration

名称 说明 Value
id 资源 ID 字符串
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 规模集可以引用多个应用程序网关的后端地址池。 多个规模集不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
loadBalancerInboundNatPools 指定对负载均衡器的入站 Nat 池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的入站 nat 池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachineScaleSetPublicIPAddressConfiguration
子网 指定子网的标识符。 ApiEntityReference

VirtualMachineScaleSetPublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机规模集 IP 配置的 PublicIPAddress 配置 VirtualMachineScaleSetPublicIPAddressConfigurationPr...
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachineScaleSetPublicIPAddressConfigurationPr...

名称 说明
deleteOption 指定删除 VM 时公共 IP 会发生什么情况 'Delete'
“分离”
dnsSettings 要应用于 publicIP 地址 的 DNS 设置。 VirtualMachineScaleSetPublicIPAddressConfigurationDn...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineScaleSetIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名称 说明
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 字符串 (必需)

VirtualMachineScaleSetIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等 字符串

ApiEntityReference

名称 说明 Value
id 采用 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 格式的 ARM 资源 ID。 字符串

OSProfile

名称 说明
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 扩展管理 Azure Linux VM 上的用户、SSH 和检查或修复磁盘
字符串

约束:
敏感值。 作为安全参数传入。
adminUsername 指定管理员帐户的名称。

创建 VM 后,无法更新此属性。

仅限 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”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

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

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

Windows) (最大长度: 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。

仅当虚拟机上没有扩展时,才能将其设置为 False。
bool
computerName 指定虚拟机的主机 OS 名称。

创建 VM 后,无法更新此名称。

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

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

有关命名约定和限制,请参阅 Azure 基础结构服务实现指南
字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。

注意:请勿在 customData 属性中传递任何机密或密码

创建 VM 后,无法更新此属性。

customData 传递到 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据

有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM
字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。

有关支持的 Linux 分发版的列表,请参阅 Linux on Azure-Endorsed Distributions
LinuxConfiguration
requireGuestProvisionSignal 指定是否需要来宾预配信号来推断虚拟机的预配成功。 注意:此属性仅用于专用测试,所有客户不得将属性设置为 false。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
patchSettings [预览功能]指定与 Linux 上的 VM 来宾修补相关的设置。 LinuxPatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
ssh 指定 Linux OS 的 SSH 密钥配置。 SshConfiguration

LinuxPatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
'AutomaticByPlatform'
“ImageDefault”
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

ImageDefault - 使用虚拟机的默认修补配置。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 必须为 true
'AutomaticByPlatform'
“ImageDefault”

SshConfiguration

名称 说明
publicKeys 用于在基于 Linux 的 VM 中进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。

若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。
字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

名称 说明
sourceVault 包含 VaultCertificates 中所有证书的密钥保管库的相对 URL。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VaultCertificate

名称 说明
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。

对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。
bool
patchSettings [预览功能]指定与 Windows 上的 VM 来宾修补相关的设置。 PatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timezone 指定虚拟机的时区。 例如“太平洋标准时间”。

可以从 TimeZoneInfo.GetSystemTimeZones 返回的时区 TimeZoneInfo.Id 值。
字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

AdditionalUnattendContent

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

PatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间安排。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
“AutomaticByPlatform”
“ImageDefault”
enableHotpatching 使客户无需重新启动即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,其中 OrchestrationMode 为灵活。

可能的值为:

手动 - 控制将修补程序应用到虚拟机。 为此,可以在 VM 中手动应用修补程序。 在此模式下,自动更新处于禁用状态;属性 WindowsConfiguration.enableAutomaticUpdates 必须为 false

AutomaticByOS - 操作系统会自动更新虚拟机。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 和 WindowsConfiguration.enableAutomaticUpdates 必须为 true
“AutomaticByOS”
“AutomaticByPlatform”
“手动”

WinRMConfiguration

名称 说明
侦听器 Windows 远程管理侦听器的列表 WinRMListener[]

WinRMListener

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串
protocol 指定 WinRM 侦听器的协议。

可能的值为:
http

https
“Http”
“Https”

VirtualMachineScaleSetVMProtectionPolicy

名称 说明
protectFromScaleIn 指示不应考虑在缩减操作期间删除虚拟机规模集 VM。 bool
protectFromScaleSetActions 指示 (包括虚拟机规模集上启动的横向缩减) 在内的模型更新或操作不应应用于虚拟机规模集 VM。 bool

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。

默认值:除非资源的此属性设置为 true,否则将禁用主机加密。
bool
securityType 指定虚拟机的 SecurityType。 它设置为 TrustedLaunch 以启用 UefiSettings。

默认值:除非此属性设置为 TrustedLaunch,否则不会启用 UefiSettings。
'TrustedLaunch'
uefiSettings 指定创建虚拟机时使用的安全设置,例如安全启动和 vTPM。

最低 API 版本:2020-12-01
UefiSettings

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。

最低 API 版本:2020-12-01
bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。

最低 API 版本:2020-12-01
bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
DataDisk[]
imageReference 指定有关要使用的映像的信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于标准存储,无。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

Attach \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还要使用上述 imageReference 元素。 如果使用市场映像,则还需使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是应分离数据磁盘。

可能的值:

删除 如果使用此值,则会在删除 VM 时删除数据磁盘。

分离 如果使用此值,则会在删除 VM 后保留数据磁盘。

默认值设置为 分离
'Delete'
“分离”
detachOption 指定分离磁盘时要使用的分离行为,或者已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach

detachOption: ForceDetach 仅适用于托管数据磁盘。 如果由于虚拟机的意外故障而未完成对数据磁盘的分离尝试,并且磁盘仍未释放,则使用强制分离作为最后手段,强行从 VM 分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘,请将 toBeDetached 更新为“true”,同时设置 detachOption:“ForceDetach”。
'ForceDetach'
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

名称 说明
uri 指定虚拟硬盘的 URI。 字符串

ManagedDiskParameters

名称 说明
diskEncryptionSet 指定托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
id 资源 ID 字符串
storageAccountType 指定托管磁盘的存储帐户类型。 注意:UltraSSD_LRS只能与数据磁盘一起使用,它不能与 OS 磁盘一起使用。 “Premium_LRS”
“Premium_ZRS”
“StandardSSD_LRS”
“StandardSSD_ZRS”
“Standard_LRS”
“UltraSSD_LRS”

DiskEncryptionSetParameters

名称 说明 Value
id 资源 ID 字符串

ImageReference

名称 说明 Value
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和内部版本是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“最新”,VM 映像也不会在部署后自动更新,即使新版本可用。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于 标准存储,无。 高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

附加 \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还需要使用上述 imageReference 元素。 如果使用的是市场映像,则还需要使用前面所述的 plan 元素。
“附加”
“空”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离 OS 磁盘。

可能的值:

删除 如果使用此值,则会在删除 VM 时删除 OS 磁盘。

分离 如果使用此值,则删除 VM 后,OS 磁盘将保留。

默认值设置为 分离。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。
“Delete”
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
encryptionSettings 指定 OS 磁盘的加密设置。

最低 API 版本:2015-06-15
DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 的类型。

可能的值为:

Windows

Linux
“Linux”
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘放置。

可能的值为:

CacheDisk

ResourceDisk

默认值:如果为 VM 大小配置了 缓存磁盘 ,则使用 ResourceDisk

请参阅 /azure/virtual-machines/windows/size 和 /azure/virtual-machines/linux/size 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。
“CacheDisk”
“ResourceDisk”

DiskEncryptionSettings

名称 说明
diskEncryptionKey 指定磁盘加密密钥的位置,这是密钥保管库机密。 KeyVaultSecretReference
enabled 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定密钥加密密钥在 密钥保管库 中的位置。 KeyVaultKeyReference

KeyVaultSecretReference

名称 说明
secretUrl 引用密钥保管库中的机密的 URL。 字符串 (必需)
sourceVault 包含机密的密钥保管库的相对 URL。 需要 SubResource ()

KeyVaultKeyReference

名称 说明
keyUrl 引用 密钥保管库 中密钥加密密钥的 URL。 字符串 (必需)
sourceVault 包含密钥的密钥保管库的相对 URL。 需要子资源 ()

ARM 模板资源定义

可以使用面向以下操作部署 virtualMachineScaleSets/virtualmachines 资源类型:

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

资源格式

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

{
  "type": "Microsoft.Compute/virtualMachineScaleSets/virtualmachines",
  "apiVersion": "2021-07-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string"
  },
  "properties": {
    "additionalCapabilities": {
      "hibernationEnabled": "bool",
      "ultraSSDEnabled": "bool"
    },
    "availabilitySet": {
      "id": "string"
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": "bool",
        "storageUri": "string"
      }
    },
    "hardwareProfile": {
      "vmSize": "string",
      "vmSizeProperties": {
        "vCPUsAvailable": "int",
        "vCPUsPerCore": "int"
      }
    },
    "licenseType": "string",
    "networkProfile": {
      "networkApiVersion": "2020-11-01",
      "networkInterfaceConfigurations": [
        {
          "name": "string",
          "properties": {
            "deleteOption": "string",
            "dnsSettings": {
              "dnsServers": [ "string" ]
            },
            "dscpConfiguration": {
              "id": "string"
            },
            "enableAcceleratedNetworking": "bool",
            "enableFpga": "bool",
            "enableIPForwarding": "bool",
            "ipConfigurations": [
              {
                "name": "string",
                "properties": {
                  "applicationGatewayBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "applicationSecurityGroups": [
                    {
                      "id": "string"
                    }
                  ],
                  "loadBalancerBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "primary": "bool",
                  "privateIPAddressVersion": "string",
                  "publicIPAddressConfiguration": {
                    "name": "string",
                    "properties": {
                      "deleteOption": "string",
                      "dnsSettings": {
                        "domainNameLabel": "string"
                      },
                      "idleTimeoutInMinutes": "int",
                      "ipTags": [
                        {
                          "ipTagType": "string",
                          "tag": "string"
                        }
                      ],
                      "publicIPAddressVersion": "string",
                      "publicIPAllocationMethod": "string",
                      "publicIPPrefix": {
                        "id": "string"
                      }
                    },
                    "sku": {
                      "name": "string",
                      "tier": "string"
                    }
                  },
                  "subnet": {
                    "id": "string"
                  }
                }
              }
            ],
            "networkSecurityGroup": {
              "id": "string"
            },
            "primary": "bool"
          }
        }
      ],
      "networkInterfaces": [
        {
          "id": "string",
          "properties": {
            "deleteOption": "string",
            "primary": "bool"
          }
        }
      ]
    },
    "networkProfileConfiguration": {
      "networkInterfaceConfigurations": [
        {
          "id": "string",
          "name": "string",
          "properties": {
            "deleteOption": "string",
            "dnsSettings": {
              "dnsServers": [ "string" ]
            },
            "enableAcceleratedNetworking": "bool",
            "enableFpga": "bool",
            "enableIPForwarding": "bool",
            "ipConfigurations": [
              {
                "id": "string",
                "name": "string",
                "properties": {
                  "applicationGatewayBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "applicationSecurityGroups": [
                    {
                      "id": "string"
                    }
                  ],
                  "loadBalancerBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "loadBalancerInboundNatPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "primary": "bool",
                  "privateIPAddressVersion": "string",
                  "publicIPAddressConfiguration": {
                    "name": "string",
                    "properties": {
                      "deleteOption": "string",
                      "dnsSettings": {
                        "domainNameLabel": "string"
                      },
                      "idleTimeoutInMinutes": "int",
                      "ipTags": [
                        {
                          "ipTagType": "string",
                          "tag": "string"
                        }
                      ],
                      "publicIPAddressVersion": "string",
                      "publicIPPrefix": {
                        "id": "string"
                      }
                    },
                    "sku": {
                      "name": "string",
                      "tier": "string"
                    }
                  },
                  "subnet": {
                    "id": "string"
                  }
                }
              }
            ],
            "networkSecurityGroup": {
              "id": "string"
            },
            "primary": "bool"
          }
        }
      ]
    },
    "osProfile": {
      "adminPassword": "string",
      "adminUsername": "string",
      "allowExtensionOperations": "bool",
      "computerName": "string",
      "customData": "string",
      "linuxConfiguration": {
        "disablePasswordAuthentication": "bool",
        "patchSettings": {
          "assessmentMode": "string",
          "patchMode": "string"
        },
        "provisionVMAgent": "bool",
        "ssh": {
          "publicKeys": [
            {
              "keyData": "string",
              "path": "string"
            }
          ]
        }
      },
      "requireGuestProvisionSignal": "bool",
      "secrets": [
        {
          "sourceVault": {
            "id": "string"
          },
          "vaultCertificates": [
            {
              "certificateStore": "string",
              "certificateUrl": "string"
            }
          ]
        }
      ],
      "windowsConfiguration": {
        "additionalUnattendContent": [
          {
            "componentName": "Microsoft-Windows-Shell-Setup",
            "content": "string",
            "passName": "OobeSystem",
            "settingName": "string"
          }
        ],
        "enableAutomaticUpdates": "bool",
        "patchSettings": {
          "assessmentMode": "string",
          "enableHotpatching": "bool",
          "patchMode": "string"
        },
        "provisionVMAgent": "bool",
        "timeZone": "string",
        "winRM": {
          "listeners": [
            {
              "certificateUrl": "string",
              "protocol": "string"
            }
          ]
        }
      }
    },
    "protectionPolicy": {
      "protectFromScaleIn": "bool",
      "protectFromScaleSetActions": "bool"
    },
    "securityProfile": {
      "encryptionAtHost": "bool",
      "securityType": "TrustedLaunch",
      "uefiSettings": {
        "secureBootEnabled": "bool",
        "vTpmEnabled": "bool"
      }
    },
    "storageProfile": {
      "dataDisks": [
        {
          "caching": "string",
          "createOption": "string",
          "deleteOption": "string",
          "detachOption": "ForceDetach",
          "diskSizeGB": "int",
          "image": {
            "uri": "string"
          },
          "lun": "int",
          "managedDisk": {
            "diskEncryptionSet": {
              "id": "string"
            },
            "id": "string",
            "storageAccountType": "string"
          },
          "name": "string",
          "toBeDetached": "bool",
          "vhd": {
            "uri": "string"
          },
          "writeAcceleratorEnabled": "bool"
        }
      ],
      "imageReference": {
        "id": "string",
        "offer": "string",
        "publisher": "string",
        "sharedGalleryImageId": "string",
        "sku": "string",
        "version": "string"
      },
      "osDisk": {
        "caching": "string",
        "createOption": "string",
        "deleteOption": "string",
        "diffDiskSettings": {
          "option": "Local",
          "placement": "string"
        },
        "diskSizeGB": "int",
        "encryptionSettings": {
          "diskEncryptionKey": {
            "secretUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          },
          "enabled": "bool",
          "keyEncryptionKey": {
            "keyUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          }
        },
        "image": {
          "uri": "string"
        },
        "managedDisk": {
          "diskEncryptionSet": {
            "id": "string"
          },
          "id": "string",
          "storageAccountType": "string"
        },
        "name": "string",
        "osType": "string",
        "vhd": {
          "uri": "string"
        },
        "writeAcceleratorEnabled": "bool"
      }
    },
    "userData": "string"
  }
}

属性值

virtualMachineScaleSets/virtualmachines

名称 说明 Value
type 资源类型 “Microsoft.Compute/virtualMachineScaleSets/virtualmachines”
apiVersion 资源 API 版本 '2021-07-01'
name 资源名称

了解如何在 JSON ARM 模板中设置子资源的名称和类型。
字符串 (必需)
location 资源位置 字符串 (必需)
标记 资源标记 标记名称和值的字典。 请参阅 模板中的标记
plan 指定用于创建虚拟机的市场映像的相关信息。 此元素仅用于市场映像。 必须先启用该映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 描述虚拟机规模集虚拟机的属性。 VirtualMachineScaleSetVMProperties

计划

名称 说明
name 计划 ID。 字符串
product 指定市场中映像的乘积。 此值与 imageReference 元素下的 Offer 值相同。 字符串
promotionCode 促销代码。 字符串
发布者 发布者 ID。 字符串

VirtualMachineScaleSetVMProperties

名称 说明
additionalCapabilities 指定在规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否能够支持使用UltraSSD_LRS存储帐户类型附加托管数据磁盘。 AdditionalCapabilities
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述

有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新

目前,只能在创建时将 VM 添加到可用性集。 无法将现有 VM 添加到可用性集。
SubResource
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
LicenseType 指定正在使用的映像或磁盘在本地获得许可。

Windows Server 操作系统的可能值为:

Windows_Client

Windows_Server

Linux Server 操作系统的可能值为:

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

有关详细信息,请参阅 适用于 Windows Server 的 Azure 混合使用权益

适用于 Linux 服务器的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
networkProfileConfiguration 指定虚拟机的网络配置文件配置。 VirtualMachineScaleSetVMNetworkProfileConfiguration
osProfile 指定虚拟机的操作系统设置。 OSProfile
protectionPolicy 指定虚拟机的保护策略。 VirtualMachineScaleSetVMProtectionPolicy
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。

最低 API 版本:2021-03-01
字符串

AdditionalCapabilities

名称 说明
hibernationEnabled 在 VM 上启用或禁用休眠功能的标志。 bool
ultraSSDEnabled 用于启用或禁用在 VM 或 VMSS 上具有UltraSSD_LRS存储帐户类型的一个或多个托管数据磁盘的功能的标志。 仅当启用此属性时,才能将存储帐户类型UltraSSD_LRS的托管磁盘添加到虚拟机或虚拟机规模集。 bool

SubResource

名称 说明 Value
id 资源 ID 字符串

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。
注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。

可以轻松查看控制台日志的输出。

Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。

如果在启用启动诊断时未指定 storageUri,则将使用托管存储。
字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。

枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。

获取可用大小列表的建议方法是使用以下 API:

列出可用性集中所有可用的虚拟机大小

列出区域中所有可用的虚拟机大小

列出所有可用于调整大小的虚拟机大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小

可用的 VM 大小取决于区域和可用性集。
“Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。

有关更多详细信息,请按照 VM 自定义 中的说明进行操作。
VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。

如果未在请求正文中指定此属性,则默认行为是将其设置为可用于该 VM 大小的 vCPU 值,该值在列出 区域 中的所有可用虚拟机大小的 API 响应中公开。
int
vCPUPerCore 指定 vCPU 与物理核心的比率。

如果未在请求正文中指定此属性,则对于列出区域中所有可用虚拟机大小的 API 响应中公开的 VM 大小,默认行为设置为 vCPUPerCore 的值

将此属性设置为 1 还意味着禁用超线程。
int

NetworkProfile

名称 说明
networkApiVersion 指定在网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 '2020-11-01'
networkInterfaceConfigurations 指定将用于创建虚拟机网络资源的网络配置。 VirtualMachineNetworkInterfaceConfiguration[]
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

VirtualMachineNetworkInterfaceConfiguration

名称 说明
name 网络接口配置名称。 字符串 (必需)
properties 描述虚拟机网络配置文件的 IP 配置。 VirtualMachineNetworkInterfaceConfigurationPropertie...

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 'Delete'
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineNetworkInterfaceIPConfiguration

名称 说明
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机网络接口 IP 配置属性。 VirtualMachineNetworkInterfaceIPConfigurationPropert...

VirtualMachineNetworkInterfaceIPConfigurationPropert...

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 虚拟机可以引用多个应用程序网关的后端地址池。 多个虚拟机不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 虚拟机可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 [多个虚拟机不能使用相同的基本 SKU 负载均衡器]。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachinePublicIPAddressConfiguration
子网 指定子网的标识符。 SubResource

VirtualMachinePublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机 IP 配置的 PublicIPAddress 配置 VirtualMachinePublicIPAddressConfigurationProperties
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachinePublicIPAddressConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时公共 IP 地址会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于 publicIP 地址 的 dns 设置。 VirtualMachinePublicIPAddressDnsSettingsConfiguratio...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAllocationMethod 指定公共 IP 分配类型 “Dynamic”
“Static”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)

VirtualMachineIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等 字符串

PublicIPAddressSku

名称 说明
name 指定公共 IP SKU 名称 “Basic”
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

NetworkInterfaceReference

名称 说明 Value
id 资源 ID string
properties 介绍网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetVMNetworkProfileConfiguration

名称 说明
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetNetworkConfiguration

名称 说明 Value
id 资源 ID 字符串
name 网络配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineScaleSetNetworkConfigurationDnsSetting...
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetNetworkConfigurationDnsSetting...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineScaleSetIPConfiguration

名称 说明 Value
id 资源 ID 字符串
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 规模集可以引用多个应用程序网关的后端地址池。 多个规模集不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
loadBalancerInboundNatPools 指定对负载均衡器的入站 Nat 池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的入站 nat 池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachineScaleSetPublicIPAddressConfiguration
子网 指定子网的标识符。 ApiEntityReference

VirtualMachineScaleSetPublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机规模集 IP 配置的 PublicIPAddress 配置 VirtualMachineScaleSetPublicIPAddressConfigurationPr...
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachineScaleSetPublicIPAddressConfigurationPr...

名称 说明
deleteOption 指定删除 VM 时公共 IP 会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于 publicIP 地址 的 dns 设置。 VirtualMachineScaleSetPublicIPAddressConfigurationDn...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineScaleSetIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名称 说明
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 字符串 (必需)

VirtualMachineScaleSetIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等 字符串

ApiEntityReference

名称 说明 Value
id 采用 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 格式的 ARM 资源 ID。 字符串

OSProfile

名称 说明
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 扩展管理 Azure Linux VM 上的用户、SSH 和检查或修复磁盘
字符串

约束:
敏感值。 作为安全参数传入。
adminUsername 指定管理员帐户的名称。

创建 VM 后,无法更新此属性。

仅限 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”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

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

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

Windows) (最大长度: 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。

仅当虚拟机上没有扩展时,才能将其设置为 False。
bool
computerName 指定虚拟机的主机 OS 名称。

创建 VM 后,无法更新此名称。

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

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

有关命名约定和限制,请参阅 Azure 基础结构服务实现指南
字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。

注意:请勿在 customData 属性中传递任何机密或密码

创建 VM 后,无法更新此属性。

customData 传递到 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据

有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM
字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。

有关支持的 Linux 分发版的列表,请参阅 Linux on Azure-Endorsed Distributions
LinuxConfiguration
requireGuestProvisionSignal 指定是否需要来宾预配信号来推断虚拟机的预配成功。 注意:此属性仅用于专用测试,所有客户不得将属性设置为 false。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
patchSettings [预览功能]指定与 Linux 上的 VM 来宾修补相关的设置。 LinuxPatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
ssh 指定 Linux OS 的 SSH 密钥配置。 SshConfiguration

LinuxPatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
'AutomaticByPlatform'
“ImageDefault”
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

ImageDefault - 使用虚拟机的默认修补配置。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 必须为 true
'AutomaticByPlatform'
“ImageDefault”

SshConfiguration

名称 说明
publicKeys 用于在基于 Linux 的 VM 中进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。

若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。
字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

名称 说明
sourceVault 包含 VaultCertificates 中所有证书的密钥保管库的相对 URL。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VaultCertificate

名称 说明
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。

对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。
bool
patchSettings [预览功能]指定与 Windows 上的 VM 来宾修补相关的设置。 PatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timezone 指定虚拟机的时区。 例如“太平洋标准时间”。

可能的值可以是 TimeZoneInfo.GetSystemTimeZones 返回的时区 TimeZoneInfo.Id 值。
字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

AdditionalUnattendContent

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

PatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
'AutomaticByPlatform'
“ImageDefault”
enableHotpatching 使客户无需重启即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

手动 - 控制将修补程序应用到虚拟机。 为此,请在 VM 中手动应用修补程序。 在此模式下,自动更新被禁用;属性 WindowsConfiguration.enableAutomaticUpdates 必须为 false

AutomaticByOS - 操作系统会自动更新虚拟机。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 和 WindowsConfiguration.enableAutomaticUpdates 必须为 true
'AutomaticByOS'
'AutomaticByPlatform'
“Manual”

WinRMConfiguration

名称 说明
侦听器 Windows 远程管理侦听器的列表 WinRMListener[]

WinRMListener

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串
protocol 指定 WinRM 侦听器的协议。

可能的值为:
http

https
'Http'
'Https'

VirtualMachineScaleSetVMProtectionPolicy

名称 说明
protectFromScaleIn 指示不应考虑在缩减操作期间删除虚拟机规模集 VM。 bool
protectFromScaleSetActions 指示 (包括虚拟机规模集上启动的横向缩减) 在内的模型更新或操作不应应用于虚拟机规模集 VM。 bool

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。

默认值:除非资源的此属性设置为 true,否则将禁用主机加密。
bool
securityType 指定虚拟机的 SecurityType。 它设置为 TrustedLaunch 以启用 UefiSettings。

默认值:除非将此属性设置为 TrustedLaunch,否则不会启用 UefiSettings。
“TrustedLaunch”
uefiSettings 指定创建虚拟机时使用的安全启动和 vTPM 等安全设置。

最低 API 版本:2020-12-01
UefiSettings

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。

最低 API 版本:2020-12-01
bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。

最低 API 版本:2020-12-01
bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
DataDisk[]
imageReference 指定要使用的映像的相关信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于标准存储,无。适用于高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

附加 \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还需要使用上述 imageReference 元素。 如果使用的是市场映像,则还需要使用前面所述的 plan 元素。
“附加”
“空”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离数据磁盘。

可能的值:

删除 如果使用此值,则删除 VM 时会删除数据磁盘。

分离 如果使用此值,则删除 VM 后会保留数据磁盘。

默认值设置为 分离
“Delete”
“分离”
detachOption 指定要在分离磁盘时使用的分离行为或已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach

detachOption: ForceDetach 仅适用于托管数据磁盘。 如果数据磁盘的上一次分离尝试由于虚拟机意外故障而未完成,并且磁盘仍未释放,请使用强制分离作为最后手段,从 VM 中强行分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘更新到BeDetached 到“true”,同时设置 detachOption:“ForceDetach”。
“ForceDetach”
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

名称 说明
uri 指定虚拟硬盘的 URI。 字符串

ManagedDiskParameters

名称 说明
diskEncryptionSet 指定托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
id 资源 ID 字符串
storageAccountType 指定托管磁盘的存储帐户类型。 注意:UltraSSD_LRS只能与数据磁盘一起使用,它不能与 OS 磁盘一起使用。 “Premium_LRS”
“Premium_ZRS”
“StandardSSD_LRS”
“StandardSSD_ZRS”
“Standard_LRS”
“UltraSSD_LRS”

DiskEncryptionSetParameters

名称 说明 Value
id 资源 ID 字符串

ImageReference

名称 说明 Value
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和内部版本是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“最新”,VM 映像也不会在部署后自动更新,即使新版本可用。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于 标准存储,无。 高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

附加 \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还需要使用上述 imageReference 元素。 如果使用的是市场映像,则还需要使用前面所述的 plan 元素。
“附加”
“空”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离 OS 磁盘。

可能的值:

删除 如果使用此值,则会在删除 VM 时删除 OS 磁盘。

分离 如果使用此值,则删除 VM 后,OS 磁盘将保留。

默认值设置为 分离。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。
'Delete'
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
encryptionSettings 指定 OS 磁盘的加密设置。

最低 API 版本:2015-06-15
DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值为:

Windows

Linux
'Linux'
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是否应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 'Local'
放置 指定操作系统磁盘的临时磁盘位置。

可能的值为:

CacheDisk

ResourceDisk

默认值:如果为 VM 大小配置了 CacheDisk ,则使用 ResourceDisk

请参阅 /azure/virtual-machines/windows/sizes 和 /azure/virtual-machines/linux/sizes 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。
'CacheDisk'
“ResourceDisk”

DiskEncryptionSettings

名称 说明
diskEncryptionKey 指定磁盘加密密钥的位置,即密钥保管库机密。 KeyVaultSecretReference
enabled 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定密钥加密密钥在 密钥保管库 中的位置。 KeyVaultKeyReference

KeyVaultSecretReference

名称 说明
secretUrl 引用密钥保管库中的机密的 URL。 字符串 (必需)
sourceVault 包含机密的密钥保管库的相对 URL。 需要子资源 ()

KeyVaultKeyReference

名称 说明
keyUrl 引用 密钥保管库 中的密钥加密密钥的 URL。 字符串 (必需)
sourceVault 包含密钥的密钥保管库的相对 URL。 需要子资源 ()

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

可以使用面向以下操作部署 virtualMachineScaleSets/virtualmachines 资源类型:

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/virtualMachineScaleSets/virtualmachines@2021-07-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      additionalCapabilities = {
        hibernationEnabled = bool
        ultraSSDEnabled = bool
      }
      availabilitySet = {
        id = "string"
      }
      diagnosticsProfile = {
        bootDiagnostics = {
          enabled = bool
          storageUri = "string"
        }
      }
      hardwareProfile = {
        vmSize = "string"
        vmSizeProperties = {
          vCPUsAvailable = int
          vCPUsPerCore = int
        }
      }
      licenseType = "string"
      networkProfile = {
        networkApiVersion = "2020-11-01"
        networkInterfaceConfigurations = [
          {
            name = "string"
            properties = {
              deleteOption = "string"
              dnsSettings = {
                dnsServers = [
                  "string"
                ]
              }
              dscpConfiguration = {
                id = "string"
              }
              enableAcceleratedNetworking = bool
              enableFpga = bool
              enableIPForwarding = bool
              ipConfigurations = [
                {
                  name = "string"
                  properties = {
                    applicationGatewayBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    applicationSecurityGroups = [
                      {
                        id = "string"
                      }
                    ]
                    loadBalancerBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    primary = bool
                    privateIPAddressVersion = "string"
                    publicIPAddressConfiguration = {
                      name = "string"
                      properties = {
                        deleteOption = "string"
                        dnsSettings = {
                          domainNameLabel = "string"
                        }
                        idleTimeoutInMinutes = int
                        ipTags = [
                          {
                            ipTagType = "string"
                            tag = "string"
                          }
                        ]
                        publicIPAddressVersion = "string"
                        publicIPAllocationMethod = "string"
                        publicIPPrefix = {
                          id = "string"
                        }
                      }
                      sku = {
                        name = "string"
                        tier = "string"
                      }
                    }
                    subnet = {
                      id = "string"
                    }
                  }
                }
              ]
              networkSecurityGroup = {
                id = "string"
              }
              primary = bool
            }
          }
        ]
        networkInterfaces = [
          {
            id = "string"
            properties = {
              deleteOption = "string"
              primary = bool
            }
          }
        ]
      }
      networkProfileConfiguration = {
        networkInterfaceConfigurations = [
          {
            id = "string"
            name = "string"
            properties = {
              deleteOption = "string"
              dnsSettings = {
                dnsServers = [
                  "string"
                ]
              }
              enableAcceleratedNetworking = bool
              enableFpga = bool
              enableIPForwarding = bool
              ipConfigurations = [
                {
                  id = "string"
                  name = "string"
                  properties = {
                    applicationGatewayBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    applicationSecurityGroups = [
                      {
                        id = "string"
                      }
                    ]
                    loadBalancerBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    loadBalancerInboundNatPools = [
                      {
                        id = "string"
                      }
                    ]
                    primary = bool
                    privateIPAddressVersion = "string"
                    publicIPAddressConfiguration = {
                      name = "string"
                      properties = {
                        deleteOption = "string"
                        dnsSettings = {
                          domainNameLabel = "string"
                        }
                        idleTimeoutInMinutes = int
                        ipTags = [
                          {
                            ipTagType = "string"
                            tag = "string"
                          }
                        ]
                        publicIPAddressVersion = "string"
                        publicIPPrefix = {
                          id = "string"
                        }
                      }
                      sku = {
                        name = "string"
                        tier = "string"
                      }
                    }
                    subnet = {
                      id = "string"
                    }
                  }
                }
              ]
              networkSecurityGroup = {
                id = "string"
              }
              primary = bool
            }
          }
        ]
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        allowExtensionOperations = bool
        computerName = "string"
        customData = "string"
        linuxConfiguration = {
          disablePasswordAuthentication = bool
          patchSettings = {
            assessmentMode = "string"
            patchMode = "string"
          }
          provisionVMAgent = bool
          ssh = {
            publicKeys = [
              {
                keyData = "string"
                path = "string"
              }
            ]
          }
        }
        requireGuestProvisionSignal = bool
        secrets = [
          {
            sourceVault = {
              id = "string"
            }
            vaultCertificates = [
              {
                certificateStore = "string"
                certificateUrl = "string"
              }
            ]
          }
        ]
        windowsConfiguration = {
          additionalUnattendContent = [
            {
              componentName = "Microsoft-Windows-Shell-Setup"
              content = "string"
              passName = "OobeSystem"
              settingName = "string"
            }
          ]
          enableAutomaticUpdates = bool
          patchSettings = {
            assessmentMode = "string"
            enableHotpatching = bool
            patchMode = "string"
          }
          provisionVMAgent = bool
          timeZone = "string"
          winRM = {
            listeners = [
              {
                certificateUrl = "string"
                protocol = "string"
              }
            ]
          }
        }
      }
      protectionPolicy = {
        protectFromScaleIn = bool
        protectFromScaleSetActions = bool
      }
      securityProfile = {
        encryptionAtHost = bool
        securityType = "TrustedLaunch"
        uefiSettings = {
          secureBootEnabled = bool
          vTpmEnabled = bool
        }
      }
      storageProfile = {
        dataDisks = [
          {
            caching = "string"
            createOption = "string"
            deleteOption = "string"
            detachOption = "ForceDetach"
            diskSizeGB = int
            image = {
              uri = "string"
            }
            lun = int
            managedDisk = {
              diskEncryptionSet = {
                id = "string"
              }
              id = "string"
              storageAccountType = "string"
            }
            name = "string"
            toBeDetached = bool
            vhd = {
              uri = "string"
            }
            writeAcceleratorEnabled = bool
          }
        ]
        imageReference = {
          id = "string"
          offer = "string"
          publisher = "string"
          sharedGalleryImageId = "string"
          sku = "string"
          version = "string"
        }
        osDisk = {
          caching = "string"
          createOption = "string"
          deleteOption = "string"
          diffDiskSettings = {
            option = "Local"
            placement = "string"
          }
          diskSizeGB = int
          encryptionSettings = {
            diskEncryptionKey = {
              secretUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
            enabled = bool
            keyEncryptionKey = {
              keyUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
          }
          image = {
            uri = "string"
          }
          managedDisk = {
            diskEncryptionSet = {
              id = "string"
            }
            id = "string"
            storageAccountType = "string"
          }
          name = "string"
          osType = "string"
          vhd = {
            uri = "string"
          }
          writeAcceleratorEnabled = bool
        }
      }
      userData = "string"
    }
    plan = {
      name = "string"
      product = "string"
      promotionCode = "string"
      publisher = "string"
    }
  })
}

属性值

virtualMachineScaleSets/virtualmachines

名称 说明 Value
type 资源类型 “Microsoft.Compute/virtualMachineScaleSets/virtualmachines@2021-07-01”
name 资源名称 字符串 (必需)
location 资源位置 字符串 (必需)
parent_id 此资源的父资源的 ID。 类型为:virtualMachineScaleSets 的资源的 ID
标记 资源标记 标记名称和值的字典。
plan 指定用于创建虚拟机的市场映像的相关信息。 此元素仅用于市场映像。 必须先启用该映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 描述虚拟机规模集虚拟机的属性。 VirtualMachineScaleSetVMProperties

计划

名称 说明
name 计划 ID。 字符串
product 指定市场中映像的乘积。 此值与 imageReference 元素下的 Offer 值相同。 字符串
promotionCode 促销代码。 字符串
发布者 发布者 ID。 字符串

VirtualMachineScaleSetVMProperties

名称 说明
additionalCapabilities 指定在规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否能够支持使用UltraSSD_LRS存储帐户类型附加托管数据磁盘。 AdditionalCapabilities
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述

有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新

目前,只能在创建时将 VM 添加到可用性集。 无法将现有 VM 添加到可用性集。
SubResource
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
LicenseType 指定正在使用的映像或磁盘在本地获得许可。

Windows Server 操作系统的可能值为:

Windows_Client

Windows_Server

Linux Server 操作系统的可能值为:

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

有关详细信息,请参阅 适用于 Windows Server 的 Azure 混合使用权益

适用于 Linux 服务器的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
networkProfileConfiguration 指定虚拟机的网络配置文件配置。 VirtualMachineScaleSetVMNetworkProfileConfiguration
osProfile 指定虚拟机的操作系统设置。 OSProfile
protectionPolicy 指定虚拟机的保护策略。 VirtualMachineScaleSetVMProtectionPolicy
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。

最低 API 版本:2021-03-01
字符串

AdditionalCapabilities

名称 说明
hibernationEnabled 在 VM 上启用或禁用休眠功能的标志。 bool
ultraSSDEnabled 一个标志,用于启用或禁用在 VM 或 VMSS 上具有UltraSSD_LRS存储帐户类型的一个或多个托管数据磁盘的功能。 仅当启用此属性时,才能将存储帐户类型为 UltraSSD_LRS 的托管磁盘添加到虚拟机或虚拟机规模集。 bool

SubResource

名称 说明 Value
id 资源 ID 字符串

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。
注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。

可以轻松查看控制台日志的输出。

Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。

如果在启用启动诊断时未指定 storageUri,则将使用托管存储。
字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。

枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。

获取可用大小列表的建议方法是使用以下 API:

列出可用性集中的所有可用虚拟机大小

列出区域中所有可用的虚拟机大小

列出所有可用于调整大小的虚拟机大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小

可用的 VM 大小取决于区域和可用性集。
“Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。

有关更多详细信息,请按照 VM 自定义 中的说明进行操作。
VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。

如果未在请求正文中指定此属性,则默认行为是将其设置为可用于该 VM 大小的 vCPU 的值,该 VM 大小在 API 响应中公开, 即列出区域中的所有可用虚拟机大小
int
vCPUsPerCore 指定 vCPU 与物理核心的比率。

如果未在请求正文中指定此属性,则对于列出区域中所有可用虚拟机大小的 API 响应中公开的 VM 大小,默认行为设置为 vCPUsPerCore 的值

将此属性设置为 1 还意味着禁用超线程。
int

NetworkProfile

名称 说明
networkApiVersion 指定在网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 "2020-11-01"
networkInterfaceConfigurations 指定将用于创建虚拟机网络资源的网络配置。 VirtualMachineNetworkInterfaceConfiguration[]
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

VirtualMachineNetworkInterfaceConfiguration

名称 说明
name 网络接口配置名称。 字符串 (必需)
properties 描述虚拟机网络配置文件的 IP 配置。 VirtualMachineNetworkInterfaceConfigurationPropertie...

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineNetworkInterfaceIPConfiguration

名称 说明
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机网络接口 IP 配置属性。 VirtualMachineNetworkInterfaceIPConfigurationPropert...

VirtualMachineNetworkInterfaceIPConfigurationPropert...

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 虚拟机可以引用多个应用程序网关的后端地址池。 多个虚拟机不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 虚拟机可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 [多个虚拟机不能使用相同的基本 SKU 负载均衡器]。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachinePublicIPAddressConfiguration
子网 指定子网的标识符。 SubResource

VirtualMachinePublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机 IP 配置的 PublicIPAddress 配置 VirtualMachinePublicIPAddressConfigurationProperties
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachinePublicIPAddressConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时公共 IP 地址会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于 publicIP 地址 的 dns 设置。 VirtualMachinePublicIPAddressDnsSettingsConfiguratio...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAllocationMethod 指定公共 IP 分配类型 “动态”
“Static”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)

VirtualMachineIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等。 字符串

PublicIPAddressSku

名称 说明
name 指定公共 IP SKU 名称 "Basic"
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

NetworkInterfaceReference

名称 说明 Value
id 资源 ID string
properties 描述网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetVMNetworkProfileConfiguration

名称 说明
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

VirtualMachineScaleSetNetworkConfiguration

名称 说明 Value
id 资源 ID 字符串
name 网络配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置。 VirtualMachineScaleSetNetworkConfigurationProperties

VirtualMachineScaleSetNetworkConfigurationProperties

名称 说明
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineScaleSetNetworkConfigurationDnsSetting...
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineScaleSetIPConfiguration[] (所需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineScaleSetNetworkConfigurationDnsSetting...

名称 说明
dnsServers DNS 服务器 IP 地址列表 string[]

VirtualMachineScaleSetIPConfiguration

名称 说明 Value
id 资源 ID 字符串
name IP 配置名称。 字符串 (必需)
properties 介绍虚拟机规模集网络配置文件的 IP 配置属性。 VirtualMachineScaleSetIPConfigurationProperties

VirtualMachineScaleSetIPConfigurationProperties

名称 说明
applicationGatewayBackendAddressPools 指定对应用程序网关的后端地址池的引用数组。 规模集可以引用多个应用程序网关的后端地址池。 多个规模集不能使用相同的应用程序网关。 SubResource[]
applicationSecurityGroups 指定对应用程序安全组的引用数组。 SubResource[]
loadBalancerBackendAddressPools 指定对负载均衡器的后端地址池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的后端地址池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
loadBalancerInboundNatPools 指定对负载均衡器的入站 Nat 池的引用数组。 规模集可以引用一个公共负载均衡器和一个内部负载均衡器的入站 nat 池。 多个规模集不能使用相同的基本 SKU 负载均衡器。 SubResource[]
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool
privateIPAddressVersion 从 Api-Version 2017-03-30 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPAddressConfiguration publicIPAddressConfiguration。 VirtualMachineScaleSetPublicIPAddressConfiguration
子网 指定子网的标识符。 ApiEntityReference

VirtualMachineScaleSetPublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机规模集 IP 配置的 PublicIPAddress 配置 VirtualMachineScaleSetPublicIPAddressConfigurationPr...
sku 介绍公共 IP SKU PublicIPAddressSku

VirtualMachineScaleSetPublicIPAddressConfigurationPr...

名称 说明
deleteOption 指定删除 VM 时公共 IP 会发生什么情况 “Delete”
“分离”
dnsSettings 要应用于 publicIP 地址 的 dns 设置。 VirtualMachineScaleSetPublicIPAddressConfigurationDn...
idleTimeoutInMinutes 公共 IP 地址的空闲超时。 int
ipTags 与公共 IP 地址关联的 IP 标记列表。 VirtualMachineScaleSetIpTag[]
publicIPAddressVersion 从 Api-Version 2019-07-01 开始提供,它表示特定的 ip 配置是 IPv4 还是 IPv6。 默认值为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名称 说明
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 字符串 (必需)

VirtualMachineScaleSetIpTag

名称 说明
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等 字符串

ApiEntityReference

名称 说明 Value
id 采用 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 格式的 ARM 资源 ID。 字符串

OSProfile

名称 说明
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 扩展管理 Azure Linux VM 上的用户、SSH 和检查或修复磁盘
字符串

约束:
敏感值。 作为安全参数传入。
adminUsername 指定管理员帐户的名称。

创建 VM 后,无法更新此属性。

仅限 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”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

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

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

Windows) (最大长度: 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。

仅当虚拟机上没有扩展时,才能将其设置为 False。
bool
computerName 指定虚拟机的主机 OS 名称。

创建 VM 后,无法更新此名称。

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

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

有关命名约定和限制,请参阅 Azure 基础结构服务实现指南
字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。

注意:请勿在 customData 属性中传递任何机密或密码

创建 VM 后,无法更新此属性。

customData 传递到 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据

有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM
字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。

有关支持的 Linux 分发版的列表,请参阅 Linux on Azure-Endorsed Distributions
LinuxConfiguration
requireGuestProvisionSignal 指定是否需要来宾预配信号来推断虚拟机的预配成功。 注意:此属性仅用于专用测试,所有客户不得将属性设置为 false。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
patchSettings [预览功能]指定与 Linux 上的 VM 来宾修补相关的设置。 LinuxPatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
ssh 指定 Linux OS 的 SSH 密钥配置。 SshConfiguration

LinuxPatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间安排。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
“AutomaticByPlatform”
“ImageDefault”
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

ImageDefault - 使用虚拟机的默认修补配置。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 必须为 true
“AutomaticByPlatform”
“ImageDefault”

SshConfiguration

名称 说明
publicKeys 用于在基于 Linux 的 VM 中进行身份验证的 SSH 公钥列表。 SshPublicKey[]

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。

若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。
字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

名称 说明
sourceVault 包含 VaultCertificates 中所有证书的密钥保管库的相对 URL。 SubResource
vaultCertificates SourceVault 中包含证书的密钥保管库引用列表。 VaultCertificate[]

VaultCertificate

名称 说明
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。

对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。
bool
patchSettings [预览功能]指定与 Windows 上的 VM 来宾修补相关的设置。 PatchSettings
provisionVMAgent 指示是否应在虚拟机上设置虚拟机代理。

如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。
bool
timezone 指定虚拟机的时区。 例如“太平洋标准时间”。

可能的值可以是 TimeZoneInfo.GetSystemTimeZones 返回的时区 TimeZoneInfo.Id 值。
字符串
winRM 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 WinRMConfiguration

AdditionalUnattendContent

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

PatchSettings

名称 说明
assessmentMode 指定 IaaS 虚拟机的 VM 来宾修补程序评估模式。

可能的值为:

ImageDefault - 控制虚拟机上修补程序评估的时间安排。

AutomaticByPlatform - 平台将触发定期修补程序评估。 属性 provisionVMAgent 必须为 true。
“AutomaticByPlatform”
“ImageDefault”
enableHotpatching 使客户无需重新启动即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,其中 OrchestrationMode 为灵活。

可能的值为:

手动 - 控制将修补程序应用到虚拟机。 为此,可以在 VM 中手动应用修补程序。 在此模式下,自动更新处于禁用状态;属性 WindowsConfiguration.enableAutomaticUpdates 必须为 false

AutomaticByOS - 操作系统会自动更新虚拟机。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

AutomaticByPlatform - 虚拟机将由平台自动更新。 属性 provisionVMAgent 和 WindowsConfiguration.enableAutomaticUpdates 必须为 true
“AutomaticByOS”
“AutomaticByPlatform”
“手动”

WinRMConfiguration

名称 说明
侦听器 Windows 远程管理侦听器的列表 WinRMListener[]

WinRMListener

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

{
“data”:“{Base64-encoded-certificate}”,
“dataType”:“pfx”,
“password”:“{pfx-file-password}”
}
若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展
字符串
protocol 指定 WinRM 侦听器的协议。

可能的值为:
http

https
“Http”
“Https”

VirtualMachineScaleSetVMProtectionPolicy

名称 说明
protectFromScaleIn 指示在缩减操作期间不应考虑删除虚拟机规模集 VM。 bool
protectFromScaleSetActions 指示 (模型更新或操作(包括虚拟机规模集上启动的横向缩减) )不应应用于虚拟机规模集 VM。 bool

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。

默认值:除非资源的此属性设置为 true,否则将禁用主机加密。
bool
securityType 指定虚拟机的 SecurityType。 它设置为 TrustedLaunch 以启用 UefiSettings。

默认值:除非将此属性设置为 TrustedLaunch,否则不会启用 UefiSettings。
“TrustedLaunch”
uefiSettings 指定创建虚拟机时使用的安全启动和 vTPM 等安全设置。

最低 API 版本:2020-12-01
UefiSettings

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。

最低 API 版本:2020-12-01
bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。

最低 API 版本:2020-12-01
bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
DataDisk[]
imageReference 指定有关要使用的映像的信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。

有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD
OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于标准存储,无。高级存储的 ReadOnly
"None"
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

Attach \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还要使用上述 imageReference 元素。 如果使用市场映像,则还需使用前面所述的计划元素。
“附加”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是应分离数据磁盘。

可能的值:

删除 如果使用此值,则会在删除 VM 时删除数据磁盘。

分离 如果使用此值,则会在删除 VM 后保留数据磁盘。

默认值设置为 分离
“Delete”
“分离”
detachOption 指定分离磁盘时要使用的分离行为,或者已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach

detachOption: ForceDetach 仅适用于托管数据磁盘。 如果由于虚拟机的意外故障而未完成对数据磁盘的分离尝试,并且磁盘仍未释放,则使用强制分离作为最后手段,强行从 VM 分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。

此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘,请将 toBeDetached 更新为“true”,同时设置 detachOption:“ForceDetach”。
“ForceDetach”
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是否应在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

名称 说明
uri 指定虚拟硬盘的 URI。 字符串

ManagedDiskParameters

名称 说明
diskEncryptionSet 指定托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
id 资源 ID 字符串
storageAccountType 指定托管磁盘的存储帐户类型。 注意:UltraSSD_LRS只能与数据磁盘一起使用,不能与 OS 磁盘一起使用。 “Premium_LRS”
“Premium_ZRS”
“StandardSSD_LRS”
“StandardSSD_ZRS”
“Standard_LRS”
“UltraSSD_LRS”

DiskEncryptionSetParameters

名称 说明 Value
id 资源 ID 字符串

ImageReference

名称 说明 Value
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 “主要”、“次要”和“生成”是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“latest”,VM 映像也不会在部署后自动更新,即使新版本可用。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。

可能的值为:



ReadOnly

ReadWrite

默认值: 对于 标准存储,无。 高级存储的 ReadOnly
"None"
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。

可能的值为:

Attach \u2013 使用专用磁盘创建虚拟机时,将使用此值。

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还要使用上述 imageReference 元素。 如果使用市场映像,则还需使用前面所述的计划元素。
“附加”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是应分离 OS 磁盘。

可能的值:

删除 如果使用此值,则会在删除 VM 时删除 OS 磁盘。

分离 如果使用此值,则会在删除 VM 后保留 OS 磁盘。

默认值设置为 分离。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。
“Delete”
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
encryptionSettings 指定 OS 磁盘的加密设置。

最低 API 版本:2015-06-15
DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值为:

Windows

Linux
“Linux”
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是否应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘位置。

可能的值为:

CacheDisk

ResourceDisk

默认值:如果为 VM 大小配置了 CacheDisk ,则使用 ResourceDisk

请参阅 /azure/virtual-machines/windows/sizes 和 /azure/virtual-machines/linux/sizes 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。
“CacheDisk”
“ResourceDisk”

DiskEncryptionSettings

名称 说明
diskEncryptionKey 指定磁盘加密密钥的位置,即密钥保管库机密。 KeyVaultSecretReference
enabled 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定密钥加密密钥在 密钥保管库 中的位置。 KeyVaultKeyReference

KeyVaultSecretReference

名称 说明
secretUrl 引用密钥保管库中的机密的 URL。 字符串 (必需)
sourceVault 包含机密的密钥保管库的相对 URL。 需要子资源 ()

KeyVaultKeyReference

名称 说明
keyUrl 引用 密钥保管库 中的密钥加密密钥的 URL。 字符串 (必需)
sourceVault 包含密钥的密钥保管库的相对 URL。 需要子资源 ()