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

Microsoft.Compute virtualMachineScaleSets 2021-03-01

Bicep 资源定义

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

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

资源格式

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

resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets@2021-03-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  sku: {
    capacity: int
    name: 'string'
    tier: 'string'
  }
  extendedLocation: {
    name: 'string'
    type: 'EdgeZone'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
  }
  properties: {
    additionalCapabilities: {
      ultraSSDEnabled: bool
    }
    automaticRepairsPolicy: {
      enabled: bool
      gracePeriod: 'string'
    }
    doNotRunExtensionsOnOverprovisionedVMs: bool
    hostGroup: {
      id: 'string'
    }
    orchestrationMode: 'string'
    overprovision: bool
    platformFaultDomainCount: int
    proximityPlacementGroup: {
      id: 'string'
    }
    scaleInPolicy: {
      rules: [
        'string'
      ]
    }
    singlePlacementGroup: bool
    upgradePolicy: {
      automaticOSUpgradePolicy: {
        disableAutomaticRollback: bool
        enableAutomaticOSUpgrade: bool
      }
      mode: 'string'
      rollingUpgradePolicy: {
        enableCrossZoneUpgrade: bool
        maxBatchInstancePercent: int
        maxUnhealthyInstancePercent: int
        maxUnhealthyUpgradedInstancePercent: int
        pauseTimeBetweenBatches: 'string'
        prioritizeUnhealthyInstances: bool
      }
    }
    virtualMachineProfile: {
      billingProfile: {
        maxPrice: json('decimal-as-string')
      }
      diagnosticsProfile: {
        bootDiagnostics: {
          enabled: bool
          storageUri: 'string'
        }
      }
      evictionPolicy: 'string'
      extensionProfile: {
        extensions: [
          {
            name: 'string'
            properties: {
              autoUpgradeMinorVersion: bool
              enableAutomaticUpgrade: bool
              forceUpdateTag: 'string'
              protectedSettings: any()
              provisionAfterExtensions: [
                'string'
              ]
              publisher: 'string'
              settings: any()
              type: 'string'
              typeHandlerVersion: 'string'
            }
          }
        ]
        extensionsTimeBudget: 'string'
      }
      licenseType: 'string'
      networkProfile: {
        healthProbe: {
          id: 'string'
        }
        networkApiVersion: '2020-11-01'
        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'
        computerNamePrefix: 'string'
        customData: 'string'
        linuxConfiguration: {
          disablePasswordAuthentication: bool
          patchSettings: {
            assessmentMode: 'string'
            patchMode: 'string'
          }
          provisionVMAgent: bool
          ssh: {
            publicKeys: [
              {
                keyData: 'string'
                path: 'string'
              }
            ]
          }
        }
        secrets: [
          {
            sourceVault: {
              id: 'string'
            }
            vaultCertificates: [
              {
                certificateStore: 'string'
                certificateUrl: 'string'
              }
            ]
          }
        ]
        windowsConfiguration: {
          additionalUnattendContent: [
            {
              componentName: 'Microsoft-Windows-Shell-Setup'
              content: 'string'
              passName: 'OobeSystem'
              settingName: 'string'
            }
          ]
          enableAutomaticUpdates: bool
          patchSettings: {
            assessmentMode: 'string'
            enableHotpatching: bool
            patchMode: 'string'
          }
          provisionVMAgent: bool
          timeZone: 'string'
          winRM: {
            listeners: [
              {
                certificateUrl: 'string'
                protocol: 'string'
              }
            ]
          }
        }
      }
      priority: 'string'
      scheduledEventsProfile: {
        terminateNotificationProfile: {
          enable: bool
          notBeforeTimeout: 'string'
        }
      }
      securityProfile: {
        encryptionAtHost: bool
        securityType: 'TrustedLaunch'
        uefiSettings: {
          secureBootEnabled: bool
          vTpmEnabled: bool
        }
      }
      storageProfile: {
        dataDisks: [
          {
            caching: 'string'
            createOption: 'string'
            diskIOPSReadWrite: int
            diskMBpsReadWrite: int
            diskSizeGB: int
            lun: int
            managedDisk: {
              diskEncryptionSet: {
                id: 'string'
              }
              storageAccountType: 'string'
            }
            name: 'string'
            writeAcceleratorEnabled: bool
          }
        ]
        imageReference: {
          id: 'string'
          offer: 'string'
          publisher: 'string'
          sku: 'string'
          version: 'string'
        }
        osDisk: {
          caching: 'string'
          createOption: 'string'
          diffDiskSettings: {
            option: 'Local'
            placement: 'string'
          }
          diskSizeGB: int
          image: {
            uri: 'string'
          }
          managedDisk: {
            diskEncryptionSet: {
              id: 'string'
            }
            storageAccountType: 'string'
          }
          name: 'string'
          osType: 'string'
          vhdContainers: [
            'string'
          ]
          writeAcceleratorEnabled: bool
        }
      }
      userData: 'string'
    }
    zoneBalance: bool
  }
  zones: [
    'string' or int
  ]
}

属性值

virtualMachineScaleSets

名字 描述 价值
名字 资源名称 string (必需)

字符限制:1-15 (Windows)
1-64 (Linux)



有效字符:
不能使用空格、控制字符或以下字符:
~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

不能以下划线开头。 不能以句点或连字符结尾。
位置 资源位置 string (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
sku 虚拟机规模集 SKU。 Sku
extendedLocation 虚拟机规模集的扩展位置。 ExtendedLocation
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
虚拟机规模集区域。 注意:只能在创建规模集时设置可用性区域 作为字符串或 int 的可用性区域数组。

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机规模集中删除任何标识。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned”
userAssignedIdentities 与虚拟机规模集关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 VirtualMachineScaleSetIdentityUserAssignedIdentities

VirtualMachineScaleSetIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} VirtualMachineScaleSetIdentityUserAssignedIdentities...

VirtualMachineScaleSetIdentityUserAssignedIdentities...

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

计划

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

VirtualMachineScaleSetProperties

名字 描述 价值
additionalCapabilities 指定在虚拟机规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否能够支持使用 UltraSSD_LRS 存储帐户类型附加托管数据磁盘。 AdditionalCapabilities
automaticRepairsPolicy 自动修复的策略。 AutomaticRepairsPolicy
doNotRunExtensionsOnOverprovisionedVMs 启用过度预配后,仅在请求的 VM 数量上启动扩展,这些 VM 最终会保留。 因此,此属性将确保扩展不会在额外的过度预配的 VM 上运行。 bool
hostGroup 指定虚拟机规模集所在的专用主机组的信息。

最低 API 版本:2020-06-01。
SubResource
orchestrationMode 指定虚拟机规模集的业务流程模式。 “灵活”
“Uniform”
overprovision 指定是否应过度预配虚拟机规模集。 bool
platformFaultDomainCount 每个放置组的容错域计数。 int
proximityPlacementGroup 指定应向其分配虚拟机规模集的邻近放置组的相关信息。

最低 api 版本:2018-04-01。
SubResource
scaleInPolicy 指定缩放策略,该策略决定在缩放虚拟机规模集时选择要删除的虚拟机。 ScaleInPolicy
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 注意:如果 singlePlacementGroup 为 true,则可能会将其修改为 false。 但是,如果 singlePlacementGroup 为 false,则可能不会将其修改为 true。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile
zoneBalance 如果发生区域中断,是否强制甚至跨 x 区域进行虚拟机分发。 bool

AdditionalCapabilities

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

AutomaticRepairsPolicy

名字 描述 价值
启用 指定是否应在虚拟机规模集上启用自动修复。 默认值为 false。 bool
gracePeriod 由于 VM 上的状态更改,自动修复暂停的时间。 状态更改完成后的宽限时间开始。 这有助于避免过早或意外修复。 持续时间应采用 ISO 8601 格式指定。 允许的最小宽限期为 30 分钟(PT30M),这也是默认值。 允许的最大宽限期为 90 分钟(PT90M)。 字符串

SubResource

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

ScaleInPolicy

名字 描述 价值
规则 在虚拟机规模集中进行缩放时要遵循的规则。

可能的值包括:

默认 当虚拟机规模集进行缩放时,如果规模集是区域性规模集,则规模集将首先跨区域均衡。 然后,它将尽可能跨容错域进行均衡。 在每个容错域中,选择删除的虚拟机将是不受横向扩展保护的最新虚拟机。

OldestVM 当虚拟机规模集正在缩减时,将选择不从横向扩展保护的最早虚拟机进行删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最早虚拟机进行删除。

NewestVM 当虚拟机规模集进行缩减时,将选择不受横向缩减保护的最新虚拟机以供删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最新虚拟机进行删除。

包含任一项的字符串数组:
“Default”
“NewestVM”
“OldestVM”

UpgradePolicy

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

可能的值包括:

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

自动 - 规模集中的所有虚拟机同时自动更新。
“Automatic”
“Manual”
“滚动”
rollingUpgradePolicy 执行滚动升级时使用的配置参数。 RollingUpgradePolicy

AutomaticOSUpgradePolicy

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

如果此选项设置为基于 Windows 的规模集,enableAutomaticUpdates 将自动设置为 false,并且不能设置为 true。
bool

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyInstancePercent 规模集中可能同时运行不正常的虚拟机实例的最大百分比,无论是由于升级,还是虚拟机运行状况检查在滚动升级中止之前处于不正常状态。 在启动任何批处理之前,将检查此约束。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyUpgradedInstancePercent 可发现处于不正常状态的已升级虚拟机实例的最大百分比。 升级每个批处理后,将进行此检查。 如果超过此百分比,滚动更新将中止。 此参数的默认值为 20%。 int

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 默认值为 0 秒(PT0S)。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool

VirtualMachineScaleSetVMProfile

名字 描述 价值
billingProfile 指定 Azure 现成 VMSS 的计费相关详细信息。

最低 API 版本:2019-03-01。
BillingProfile
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure Spot 规模集的逐出策略。

对于 Azure 现成虚拟机,支持“解除分配”和“删除”,最低 API 版本为 2019-03-01。

对于 Azure Spot 规模集,支持“Deallocate”和“Delete”,最低 API 版本为 2017-10-30-preview。
“Deallocate”
“Delete”
extensionProfile 指定规模集中虚拟机上安装的扩展的设置集合。 VirtualMachineScaleSetExtensionProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL_BYOS(适用于 RHEL)

SLES_BYOS(对于 SUSE)

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

Linux Server 的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定规模集中虚拟机网络接口的属性。 VirtualMachineScaleSetNetworkProfile
osProfile 指定规模集中虚拟机的操作系统设置。 VirtualMachineScaleSetOSProfile
优先权 指定规模集中虚拟机的优先级。

最低 API 版本:2017-10-30-preview
“Low”
“Regular”
“Spot”
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定规模集中虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 VirtualMachineScaleSetStorageProfile
userData 规模集中虚拟机的 UserData,必须进行 base-64 编码。 客户不应在此处传递任何机密。

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

BillingProfile

名字 描述 价值
maxPrice 指定愿意为 Azure 现成 VM/VMSS 付费的最高价格。 这个价格是美元。

此价格将与 VM 大小的当前 Azure 现成价格进行比较。 此外,价格是在创建/更新 Azure 现成 VM/VMSS 时进行比较的,并且仅当 maxPrice 大于当前 Azure 现成价格时,该操作才会成功。

如果当前 Azure 现成价格超出创建 VM/VMSS 后的最大价格,maxPrice 还将用于逐出 Azure 现成 VM/VMSS。

可能的值包括:

- 大于零的任何十进制值。 示例:0.01538

-1 – 指示按需 up-to 的默认价格。

可以将 maxPrice 设置为 -1,以指示出于价格原因不应逐出 Azure Spot VM/VMSS。 此外,如果未提供默认最大价格,则 -1。

最低 API 版本:2019-03-01。 若要指定十进制值,请使用 json() 函数。
int 或 json decimal

DiagnosticsProfile

名字 描述 价值
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图来诊断 VM 状态。

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

通过 Azure,还可以从虚拟机监控程序查看 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

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

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

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]
extensionsTimeBudget 指定分配所有扩展开始的时间。 持续时间应介于 15 分钟到 120 分钟(含)之间,应采用 ISO 8601 格式指定。 默认值为 90 分钟(PT1H30M)。

最低 API 版本:2020-06-01
字符串

VirtualMachineScaleSetExtension

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

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
forceUpdateTag 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 字符串
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 对于 Bicep,可以使用 any() 函数。
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。 对于 Bicep,可以使用 any() 函数。
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
healthProbe 对负载均衡器探测的引用,用于确定虚拟机规模集中实例的运行状况。 引用的格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}”。 ApiEntityReference
networkApiVersion 指定使用业务流程模式“灵活”在虚拟机规模集的网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 '2020-11-01'
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

ApiEntityReference

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

VirtualMachineScaleSetNetworkConfiguration

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

VirtualMachineScaleSetNetworkConfigurationProperties

名字 描述 价值
deleteOption 指定删除 VM 时网络接口发生的情况 “Delete”
“Detach”
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

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

VirtualMachineScaleSetIPConfigurationProperties

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

VirtualMachineScaleSetPublicIPAddressConfiguration

名字 描述 价值
名字 publicIP 地址配置名称。 string (必需)
性能 介绍虚拟机规模集 IP 配置的公共 IPAddress 配置 VirtualMachineScaleSetPublicIPAddressConfigurationPr...
sku 描述公共 IP Sku PublicIPAddressSku

VirtualMachineScaleSetPublicIPAddressConfigurationPr...

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

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名字 描述 价值
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 string (必需)

VirtualMachineScaleSetIpTag

名字 描述 价值
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等。 字符串

PublicIPAddressSku

名字 描述 价值
名字 指定公共 IP SKU 名称 “Basic”
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

VirtualMachineScaleSetOSProfile

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最大长度(Windows): 20 个字符
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 指定自定义数据的 base-64 编码字符串。 base-64 编码字符串将解码为作为虚拟机上的文件保存的二进制数组。 二进制数组的最大长度为 65535 字节。

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux
LinuxConfiguration
秘密 指定应在规模集中的虚拟机上安装的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure Key Vault 虚拟机扩展或适用于 Windows的 Azure Key Vault 虚拟机扩展。 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 虚拟机的模式,或与将 OrchestrationMode 作为灵活业务流程模式的虚拟机规模集关联的虚拟机。

可能的值包括:

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

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

SshConfiguration

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

SshPublicKey

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

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

VaultSecretGroup

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

VaultCertificate

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

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

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

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.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 - 虚拟机将由 OS 自动更新。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

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

WinRMConfiguration

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

WinRMListener

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

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

可能的值包括:
http

https
“Http”
“Https”

ScheduledEventsProfile

名字 描述 价值
terminateNotificationProfile 指定终止计划事件相关配置。 TerminateNotificationProfile

TerminateNotificationProfile

名字 描述 价值
使 指定是启用或禁用终止计划事件。 bool
notBeforeTimeout 删除虚拟机的可配置时间长度可能需要在事件自动批准(超时)之前批准终止计划事件。 必须以 ISO 8601 格式指定配置,默认值为 5 分钟(PT5M) 字符串

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

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 指定用于向规模集中的虚拟机添加数据磁盘的参数。

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

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

VirtualMachineScaleSetDataDisk

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

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “Attach”
“Empty”
“FromImage”(必需)
diskIOPSReadWrite 指定托管磁盘的 Read-Write IOPS。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskMBpsReadWrite 指定托管磁盘的带宽(以 MB/秒为单位)。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

VirtualMachineScaleSetManagedDiskParameters

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

DiskEncryptionSetParameters

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

ImageReference

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

VirtualMachineScaleSetOSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diffDiskSettings 指定虚拟机规模集使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定操作系统磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
图像 指定要基于规模集的非托管用户映像的信息。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 指定用于存储规模集操作系统磁盘的容器 URL。 string[]
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名字 描述 价值
选择 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘放置。

可能的值包括:

CacheDisk

ResourceDisk

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

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

VirtualHardDisk

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

Sku

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

可能的值:

标准

基本
字符串

快速入门模板

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

模板 描述
使用 LB 探测和自动修复部署 VM 规模集

部署到 Azure
使用此模板,可以在配置了运行状况探测的负载均衡器后面部署一组 Linux VM 规模集。 规模集还启用了自动实例修复策略,宽限期为 30 分钟。
部署将每个 VM 连接到 Azure 文件共享的 VMSS

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

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

部署到 Azure
此模板将 VM 规模集部署到一个前发的 vnet 中。
将多个 VM 添加到虚拟机规模集

部署到 Azure
此模板将使用托管磁盘、公共 IP 和网络接口创建 N 个 VM 数量。 它将在灵活业务流程模式下在虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
VMSS 灵活业务流程模式快速入门 Linux

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

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

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

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

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

部署到 Azure
使用此模板,可以在主要辅助体系结构中使用自定义脚本扩展部署 Linux VMSS
使用 Linux VM 和每个 VM 的公共 IPv4 简单 VM 规模集

部署到 Azure
此模板演示如何为每个 VM 部署一个包含负载均衡器、入站 NAT 规则和公共 IP 的简单规模集。
部署支持受信任的启动的 Windows VM 规模集

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

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

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

部署到 Azure
使用安全部署的 SSL 证书部署 Web 服务器配置 Azure Key Vault
将规模集部署到 Windows 上的现有 vnet

部署到 Azure
此模板将 Windows 2016 Datacenter VM 规模集部署到除名资源组、vnet 和子网中。
使用 Azure 应用程序网关部署 Windows VM 规模集

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

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

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

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

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

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

ARM 模板资源定义

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

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

资源格式

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

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "apiVersion": "2021-03-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "sku": {
    "capacity": "int",
    "name": "string",
    "tier": "string"
  },
  "extendedLocation": {
    "name": "string",
    "type": "EdgeZone"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string"
  },
  "properties": {
    "additionalCapabilities": {
      "ultraSSDEnabled": "bool"
    },
    "automaticRepairsPolicy": {
      "enabled": "bool",
      "gracePeriod": "string"
    },
    "doNotRunExtensionsOnOverprovisionedVMs": "bool",
    "hostGroup": {
      "id": "string"
    },
    "orchestrationMode": "string",
    "overprovision": "bool",
    "platformFaultDomainCount": "int",
    "proximityPlacementGroup": {
      "id": "string"
    },
    "scaleInPolicy": {
      "rules": [ "string" ]
    },
    "singlePlacementGroup": "bool",
    "upgradePolicy": {
      "automaticOSUpgradePolicy": {
        "disableAutomaticRollback": "bool",
        "enableAutomaticOSUpgrade": "bool"
      },
      "mode": "string",
      "rollingUpgradePolicy": {
        "enableCrossZoneUpgrade": "bool",
        "maxBatchInstancePercent": "int",
        "maxUnhealthyInstancePercent": "int",
        "maxUnhealthyUpgradedInstancePercent": "int",
        "pauseTimeBetweenBatches": "string",
        "prioritizeUnhealthyInstances": "bool"
      }
    },
    "virtualMachineProfile": {
      "billingProfile": {
        "maxPrice": "[json('decimal-as-string')]"
      },
      "diagnosticsProfile": {
        "bootDiagnostics": {
          "enabled": "bool",
          "storageUri": "string"
        }
      },
      "evictionPolicy": "string",
      "extensionProfile": {
        "extensions": [
          {
            "name": "string",
            "properties": {
              "autoUpgradeMinorVersion": "bool",
              "enableAutomaticUpgrade": "bool",
              "forceUpdateTag": "string",
              "protectedSettings": {},
              "provisionAfterExtensions": [ "string" ],
              "publisher": "string",
              "settings": {},
              "type": "string",
              "typeHandlerVersion": "string"
            }
          }
        ],
        "extensionsTimeBudget": "string"
      },
      "licenseType": "string",
      "networkProfile": {
        "healthProbe": {
          "id": "string"
        },
        "networkApiVersion": "2020-11-01",
        "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",
        "computerNamePrefix": "string",
        "customData": "string",
        "linuxConfiguration": {
          "disablePasswordAuthentication": "bool",
          "patchSettings": {
            "assessmentMode": "string",
            "patchMode": "string"
          },
          "provisionVMAgent": "bool",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "string",
                "path": "string"
              }
            ]
          }
        },
        "secrets": [
          {
            "sourceVault": {
              "id": "string"
            },
            "vaultCertificates": [
              {
                "certificateStore": "string",
                "certificateUrl": "string"
              }
            ]
          }
        ],
        "windowsConfiguration": {
          "additionalUnattendContent": [
            {
              "componentName": "Microsoft-Windows-Shell-Setup",
              "content": "string",
              "passName": "OobeSystem",
              "settingName": "string"
            }
          ],
          "enableAutomaticUpdates": "bool",
          "patchSettings": {
            "assessmentMode": "string",
            "enableHotpatching": "bool",
            "patchMode": "string"
          },
          "provisionVMAgent": "bool",
          "timeZone": "string",
          "winRM": {
            "listeners": [
              {
                "certificateUrl": "string",
                "protocol": "string"
              }
            ]
          }
        }
      },
      "priority": "string",
      "scheduledEventsProfile": {
        "terminateNotificationProfile": {
          "enable": "bool",
          "notBeforeTimeout": "string"
        }
      },
      "securityProfile": {
        "encryptionAtHost": "bool",
        "securityType": "TrustedLaunch",
        "uefiSettings": {
          "secureBootEnabled": "bool",
          "vTpmEnabled": "bool"
        }
      },
      "storageProfile": {
        "dataDisks": [
          {
            "caching": "string",
            "createOption": "string",
            "diskIOPSReadWrite": "int",
            "diskMBpsReadWrite": "int",
            "diskSizeGB": "int",
            "lun": "int",
            "managedDisk": {
              "diskEncryptionSet": {
                "id": "string"
              },
              "storageAccountType": "string"
            },
            "name": "string",
            "writeAcceleratorEnabled": "bool"
          }
        ],
        "imageReference": {
          "id": "string",
          "offer": "string",
          "publisher": "string",
          "sku": "string",
          "version": "string"
        },
        "osDisk": {
          "caching": "string",
          "createOption": "string",
          "diffDiskSettings": {
            "option": "Local",
            "placement": "string"
          },
          "diskSizeGB": "int",
          "image": {
            "uri": "string"
          },
          "managedDisk": {
            "diskEncryptionSet": {
              "id": "string"
            },
            "storageAccountType": "string"
          },
          "name": "string",
          "osType": "string",
          "vhdContainers": [ "string" ],
          "writeAcceleratorEnabled": "bool"
        }
      },
      "userData": "string"
    },
    "zoneBalance": "bool"
  },
  "zones": [ "string" or int ]
}

属性值

virtualMachineScaleSets

名字 描述 价值
类型 资源类型 “Microsoft.Compute/virtualMachineScaleSets”
apiVersion 资源 API 版本 '2021-03-01'
名字 资源名称 string (必需)

字符限制:1-15 (Windows)
1-64 (Linux)



有效字符:
不能使用空格、控制字符或以下字符:
~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

不能以下划线开头。 不能以句点或连字符结尾。
位置 资源位置 string (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
sku 虚拟机规模集 SKU。 Sku
extendedLocation 虚拟机规模集的扩展位置。 ExtendedLocation
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
虚拟机规模集区域。 注意:只能在创建规模集时设置可用性区域 作为字符串或 int 的可用性区域数组。

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机规模集中删除任何标识。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned”
userAssignedIdentities 与虚拟机规模集关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 VirtualMachineScaleSetIdentityUserAssignedIdentities

VirtualMachineScaleSetIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} VirtualMachineScaleSetIdentityUserAssignedIdentities...

VirtualMachineScaleSetIdentityUserAssignedIdentities...

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

计划

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

VirtualMachineScaleSetProperties

名字 描述 价值
additionalCapabilities 指定在虚拟机规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否能够支持使用 UltraSSD_LRS 存储帐户类型附加托管数据磁盘。 AdditionalCapabilities
automaticRepairsPolicy 自动修复的策略。 AutomaticRepairsPolicy
doNotRunExtensionsOnOverprovisionedVMs 启用过度预配后,仅在请求的 VM 数量上启动扩展,这些 VM 最终会保留。 因此,此属性将确保扩展不会在额外的过度预配的 VM 上运行。 bool
hostGroup 指定虚拟机规模集所在的专用主机组的信息。

最低 API 版本:2020-06-01。
SubResource
orchestrationMode 指定虚拟机规模集的业务流程模式。 “灵活”
“Uniform”
overprovision 指定是否应过度预配虚拟机规模集。 bool
platformFaultDomainCount 每个放置组的容错域计数。 int
proximityPlacementGroup 指定应向其分配虚拟机规模集的邻近放置组的相关信息。

最低 api 版本:2018-04-01。
SubResource
scaleInPolicy 指定缩放策略,该策略决定在缩放虚拟机规模集时选择要删除的虚拟机。 ScaleInPolicy
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 注意:如果 singlePlacementGroup 为 true,则可能会将其修改为 false。 但是,如果 singlePlacementGroup 为 false,则可能不会将其修改为 true。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile
zoneBalance 如果发生区域中断,是否强制甚至跨 x 区域进行虚拟机分发。 bool

AdditionalCapabilities

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

AutomaticRepairsPolicy

名字 描述 价值
启用 指定是否应在虚拟机规模集上启用自动修复。 默认值为 false。 bool
gracePeriod 由于 VM 上的状态更改,自动修复暂停的时间。 状态更改完成后的宽限时间开始。 这有助于避免过早或意外修复。 持续时间应采用 ISO 8601 格式指定。 允许的最小宽限期为 30 分钟(PT30M),这也是默认值。 允许的最大宽限期为 90 分钟(PT90M)。 字符串

SubResource

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

ScaleInPolicy

名字 描述 价值
规则 在虚拟机规模集中进行缩放时要遵循的规则。

可能的值包括:

默认 当虚拟机规模集进行缩放时,如果规模集是区域性规模集,则规模集将首先跨区域均衡。 然后,它将尽可能跨容错域进行均衡。 在每个容错域中,选择删除的虚拟机将是不受横向扩展保护的最新虚拟机。

OldestVM 当虚拟机规模集正在缩减时,将选择不从横向扩展保护的最早虚拟机进行删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最早虚拟机进行删除。

NewestVM 当虚拟机规模集进行缩减时,将选择不受横向缩减保护的最新虚拟机以供删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最新虚拟机进行删除。

包含任一项的字符串数组:
“Default”
“NewestVM”
“OldestVM”

UpgradePolicy

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

可能的值包括:

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

自动 - 规模集中的所有虚拟机同时自动更新。
“Automatic”
“Manual”
“滚动”
rollingUpgradePolicy 执行滚动升级时使用的配置参数。 RollingUpgradePolicy

AutomaticOSUpgradePolicy

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

如果此选项设置为基于 Windows 的规模集,enableAutomaticUpdates 将自动设置为 false,并且不能设置为 true。
bool

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyInstancePercent 规模集中可能同时运行不正常的虚拟机实例的最大百分比,无论是由于升级,还是虚拟机运行状况检查在滚动升级中止之前处于不正常状态。 在启动任何批处理之前,将检查此约束。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyUpgradedInstancePercent 可发现处于不正常状态的已升级虚拟机实例的最大百分比。 升级每个批处理后,将进行此检查。 如果超过此百分比,滚动更新将中止。 此参数的默认值为 20%。 int

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 默认值为 0 秒(PT0S)。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool

VirtualMachineScaleSetVMProfile

名字 描述 价值
billingProfile 指定 Azure 现成 VMSS 的计费相关详细信息。

最低 API 版本:2019-03-01。
BillingProfile
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure Spot 规模集的逐出策略。

对于 Azure 现成虚拟机,支持“解除分配”和“删除”,最低 API 版本为 2019-03-01。

对于 Azure Spot 规模集,支持“Deallocate”和“Delete”,最低 API 版本为 2017-10-30-preview。
“Deallocate”
“Delete”
extensionProfile 指定规模集中虚拟机上安装的扩展的设置集合。 VirtualMachineScaleSetExtensionProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL_BYOS(适用于 RHEL)

SLES_BYOS(对于 SUSE)

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

Linux Server 的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定规模集中虚拟机网络接口的属性。 VirtualMachineScaleSetNetworkProfile
osProfile 指定规模集中虚拟机的操作系统设置。 VirtualMachineScaleSetOSProfile
优先权 指定规模集中虚拟机的优先级。

最低 API 版本:2017-10-30-preview
“Low”
“Regular”
“Spot”
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定规模集中虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 VirtualMachineScaleSetStorageProfile
userData 规模集中虚拟机的 UserData,必须进行 base-64 编码。 客户不应在此处传递任何机密。

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

BillingProfile

名字 描述 价值
maxPrice 指定愿意为 Azure 现成 VM/VMSS 付费的最高价格。 这个价格是美元。

此价格将与 VM 大小的当前 Azure 现成价格进行比较。 此外,价格是在创建/更新 Azure 现成 VM/VMSS 时进行比较的,并且仅当 maxPrice 大于当前 Azure 现成价格时,该操作才会成功。

如果当前 Azure 现成价格超出创建 VM/VMSS 后的最大价格,maxPrice 还将用于逐出 Azure 现成 VM/VMSS。

可能的值包括:

- 大于零的任何十进制值。 示例:0.01538

-1 – 指示按需 up-to 的默认价格。

可以将 maxPrice 设置为 -1,以指示出于价格原因不应逐出 Azure Spot VM/VMSS。 此外,如果未提供默认最大价格,则 -1。

最低 API 版本:2019-03-01。 若要指定十进制值,请使用 json() 函数。
int 或 json decimal

DiagnosticsProfile

名字 描述 价值
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图来诊断 VM 状态。

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

通过 Azure,还可以从虚拟机监控程序查看 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

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

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

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]
extensionsTimeBudget 指定分配所有扩展开始的时间。 持续时间应介于 15 分钟到 120 分钟(含)之间,应采用 ISO 8601 格式指定。 默认值为 90 分钟(PT1H30M)。

最低 API 版本:2020-06-01
字符串

VirtualMachineScaleSetExtension

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

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
forceUpdateTag 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 字符串
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
healthProbe 对负载均衡器探测的引用,用于确定虚拟机规模集中实例的运行状况。 引用的格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}”。 ApiEntityReference
networkApiVersion 指定使用业务流程模式“灵活”在虚拟机规模集的网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 '2020-11-01'
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

ApiEntityReference

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

VirtualMachineScaleSetNetworkConfiguration

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

VirtualMachineScaleSetNetworkConfigurationProperties

名字 描述 价值
deleteOption 指定删除 VM 时网络接口发生的情况 “Delete”
“Detach”
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

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

VirtualMachineScaleSetIPConfigurationProperties

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

VirtualMachineScaleSetPublicIPAddressConfiguration

名字 描述 价值
名字 publicIP 地址配置名称。 string (必需)
性能 介绍虚拟机规模集 IP 配置的公共 IPAddress 配置 VirtualMachineScaleSetPublicIPAddressConfigurationPr...
sku 描述公共 IP Sku PublicIPAddressSku

VirtualMachineScaleSetPublicIPAddressConfigurationPr...

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

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名字 描述 价值
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 string (必需)

VirtualMachineScaleSetIpTag

名字 描述 价值
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等。 字符串

PublicIPAddressSku

名字 描述 价值
名字 指定公共 IP SKU 名称 “Basic”
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

VirtualMachineScaleSetOSProfile

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最大长度(Windows): 20 个字符
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 指定自定义数据的 base-64 编码字符串。 base-64 编码字符串将解码为作为虚拟机上的文件保存的二进制数组。 二进制数组的最大长度为 65535 字节。

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux
LinuxConfiguration
秘密 指定应在规模集中的虚拟机上安装的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure Key Vault 虚拟机扩展或适用于 Windows的 Azure Key Vault 虚拟机扩展。 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 虚拟机的模式,或与将 OrchestrationMode 作为灵活业务流程模式的虚拟机规模集关联的虚拟机。

可能的值包括:

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

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

SshConfiguration

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

SshPublicKey

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

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

VaultSecretGroup

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

VaultCertificate

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

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

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

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.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 - 虚拟机将由 OS 自动更新。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

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

WinRMConfiguration

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

WinRMListener

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

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

可能的值包括:
http

https
“Http”
“Https”

ScheduledEventsProfile

名字 描述 价值
terminateNotificationProfile 指定终止计划事件相关配置。 TerminateNotificationProfile

TerminateNotificationProfile

名字 描述 价值
使 指定是启用或禁用终止计划事件。 bool
notBeforeTimeout 删除虚拟机的可配置时间长度可能需要在事件自动批准(超时)之前批准终止计划事件。 必须以 ISO 8601 格式指定配置,默认值为 5 分钟(PT5M) 字符串

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

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 指定用于向规模集中的虚拟机添加数据磁盘的参数。

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

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

VirtualMachineScaleSetDataDisk

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

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “Attach”
“Empty”
“FromImage”(必需)
diskIOPSReadWrite 指定托管磁盘的 Read-Write IOPS。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskMBpsReadWrite 指定托管磁盘的带宽(以 MB/秒为单位)。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

VirtualMachineScaleSetManagedDiskParameters

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

DiskEncryptionSetParameters

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

ImageReference

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

VirtualMachineScaleSetOSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diffDiskSettings 指定虚拟机规模集使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定操作系统磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
图像 指定要基于规模集的非托管用户映像的信息。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 指定用于存储规模集操作系统磁盘的容器 URL。 string[]
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名字 描述 价值
选择 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘放置。

可能的值包括:

CacheDisk

ResourceDisk

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

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

VirtualHardDisk

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

Sku

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

可能的值:

标准

基本
字符串

快速入门模板

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

模板 描述
使用 LB 探测和自动修复部署 VM 规模集

部署到 Azure
使用此模板,可以在配置了运行状况探测的负载均衡器后面部署一组 Linux VM 规模集。 规模集还启用了自动实例修复策略,宽限期为 30 分钟。
部署将每个 VM 连接到 Azure 文件共享的 VMSS

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

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

部署到 Azure
此模板将 VM 规模集部署到一个前发的 vnet 中。
将多个 VM 添加到虚拟机规模集

部署到 Azure
此模板将使用托管磁盘、公共 IP 和网络接口创建 N 个 VM 数量。 它将在灵活业务流程模式下在虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
VMSS 灵活业务流程模式快速入门 Linux

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

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

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

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

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

部署到 Azure
使用此模板,可以在主要辅助体系结构中使用自定义脚本扩展部署 Linux VMSS
使用 Linux VM 和每个 VM 的公共 IPv4 简单 VM 规模集

部署到 Azure
此模板演示如何为每个 VM 部署一个包含负载均衡器、入站 NAT 规则和公共 IP 的简单规模集。
部署支持受信任的启动的 Windows VM 规模集

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

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

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

部署到 Azure
使用安全部署的 SSL 证书部署 Web 服务器配置 Azure Key Vault
将规模集部署到 Windows 上的现有 vnet

部署到 Azure
此模板将 Windows 2016 Datacenter VM 规模集部署到除名资源组、vnet 和子网中。
使用 Azure 应用程序网关部署 Windows VM 规模集

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

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

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

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

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

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

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

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

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/virtualMachineScaleSets@2021-03-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      additionalCapabilities = {
        ultraSSDEnabled = bool
      }
      automaticRepairsPolicy = {
        enabled = bool
        gracePeriod = "string"
      }
      doNotRunExtensionsOnOverprovisionedVMs = bool
      hostGroup = {
        id = "string"
      }
      orchestrationMode = "string"
      overprovision = bool
      platformFaultDomainCount = int
      proximityPlacementGroup = {
        id = "string"
      }
      scaleInPolicy = {
        rules = [
          "string"
        ]
      }
      singlePlacementGroup = bool
      upgradePolicy = {
        automaticOSUpgradePolicy = {
          disableAutomaticRollback = bool
          enableAutomaticOSUpgrade = bool
        }
        mode = "string"
        rollingUpgradePolicy = {
          enableCrossZoneUpgrade = bool
          maxBatchInstancePercent = int
          maxUnhealthyInstancePercent = int
          maxUnhealthyUpgradedInstancePercent = int
          pauseTimeBetweenBatches = "string"
          prioritizeUnhealthyInstances = bool
        }
      }
      virtualMachineProfile = {
        billingProfile = {
          maxPrice = "decimal-as-string"
        }
        diagnosticsProfile = {
          bootDiagnostics = {
            enabled = bool
            storageUri = "string"
          }
        }
        evictionPolicy = "string"
        extensionProfile = {
          extensions = [
            {
              name = "string"
              properties = {
                autoUpgradeMinorVersion = bool
                enableAutomaticUpgrade = bool
                forceUpdateTag = "string"
                provisionAfterExtensions = [
                  "string"
                ]
                publisher = "string"
                type = "string"
                typeHandlerVersion = "string"
              }
            }
          ]
          extensionsTimeBudget = "string"
        }
        licenseType = "string"
        networkProfile = {
          healthProbe = {
            id = "string"
          }
          networkApiVersion = "2020-11-01"
          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"
          computerNamePrefix = "string"
          customData = "string"
          linuxConfiguration = {
            disablePasswordAuthentication = bool
            patchSettings = {
              assessmentMode = "string"
              patchMode = "string"
            }
            provisionVMAgent = bool
            ssh = {
              publicKeys = [
                {
                  keyData = "string"
                  path = "string"
                }
              ]
            }
          }
          secrets = [
            {
              sourceVault = {
                id = "string"
              }
              vaultCertificates = [
                {
                  certificateStore = "string"
                  certificateUrl = "string"
                }
              ]
            }
          ]
          windowsConfiguration = {
            additionalUnattendContent = [
              {
                componentName = "Microsoft-Windows-Shell-Setup"
                content = "string"
                passName = "OobeSystem"
                settingName = "string"
              }
            ]
            enableAutomaticUpdates = bool
            patchSettings = {
              assessmentMode = "string"
              enableHotpatching = bool
              patchMode = "string"
            }
            provisionVMAgent = bool
            timeZone = "string"
            winRM = {
              listeners = [
                {
                  certificateUrl = "string"
                  protocol = "string"
                }
              ]
            }
          }
        }
        priority = "string"
        scheduledEventsProfile = {
          terminateNotificationProfile = {
            enable = bool
            notBeforeTimeout = "string"
          }
        }
        securityProfile = {
          encryptionAtHost = bool
          securityType = "TrustedLaunch"
          uefiSettings = {
            secureBootEnabled = bool
            vTpmEnabled = bool
          }
        }
        storageProfile = {
          dataDisks = [
            {
              caching = "string"
              createOption = "string"
              diskIOPSReadWrite = int
              diskMBpsReadWrite = int
              diskSizeGB = int
              lun = int
              managedDisk = {
                diskEncryptionSet = {
                  id = "string"
                }
                storageAccountType = "string"
              }
              name = "string"
              writeAcceleratorEnabled = bool
            }
          ]
          imageReference = {
            id = "string"
            offer = "string"
            publisher = "string"
            sku = "string"
            version = "string"
          }
          osDisk = {
            caching = "string"
            createOption = "string"
            diffDiskSettings = {
              option = "Local"
              placement = "string"
            }
            diskSizeGB = int
            image = {
              uri = "string"
            }
            managedDisk = {
              diskEncryptionSet = {
                id = "string"
              }
              storageAccountType = "string"
            }
            name = "string"
            osType = "string"
            vhdContainers = [
              "string"
            ]
            writeAcceleratorEnabled = bool
          }
        }
        userData = "string"
      }
      zoneBalance = bool
    }
    zones = [
      "string" or int
    ]
    sku = {
      capacity = int
      name = "string"
      tier = "string"
    }
    extendedLocation = {
      name = "string"
      type = "EdgeZone"
    }
    plan = {
      name = "string"
      product = "string"
      promotionCode = "string"
      publisher = "string"
    }
  })
}

属性值

virtualMachineScaleSets

名字 描述 价值
类型 资源类型 “Microsoft.Compute/virtualMachineScaleSets@2021-03-01”
名字 资源名称 string (必需)

字符限制:1-15 (Windows)
1-64 (Linux)



有效字符:
不能使用空格、控制字符或以下字符:
~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?

不能以下划线开头。 不能以句点或连字符结尾。
位置 资源位置 string (必需)
parent_id 若要部署到资源组,请使用该资源组的 ID。 string (必需)
标签 资源标记 标记名称和值的字典。
sku 虚拟机规模集 SKU。 Sku
extendedLocation 虚拟机规模集的扩展位置。 ExtendedLocation
身份 虚拟机规模集的标识(如果已配置)。 VirtualMachineScaleSetIdentity
计划 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以编程方式使用映像,然后才能从 API 使用市场映像。 在 Azure 门户中,找到要使用的市场映像,然后单击 想要以编程方式部署,开始使用 ->。 输入任何必需的信息,然后单击“保存 计划
性能 描述虚拟机规模集的属性。 VirtualMachineScaleSetProperties
虚拟机规模集区域。 注意:只能在创建规模集时设置可用性区域 作为字符串或 int 的可用性区域数组。

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

VirtualMachineScaleSetIdentity

名字 描述 价值
类型 用于虚拟机规模集的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机规模集中删除任何标识。 “SystemAssigned”
“SystemAssigned, UserAssigned”
“UserAssigned”
identity_ids 与虚拟机规模集关联的用户标识列表。 用户标识字典密钥引用的格式为 ARM 资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 用户标识 ID 的数组。

VirtualMachineScaleSetIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} VirtualMachineScaleSetIdentityUserAssignedIdentities...

VirtualMachineScaleSetIdentityUserAssignedIdentities...

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

计划

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

VirtualMachineScaleSetProperties

名字 描述 价值
additionalCapabilities 指定在虚拟机规模集中的虚拟机上启用或禁用的其他功能。 例如:虚拟机是否能够支持使用 UltraSSD_LRS 存储帐户类型附加托管数据磁盘。 AdditionalCapabilities
automaticRepairsPolicy 自动修复的策略。 AutomaticRepairsPolicy
doNotRunExtensionsOnOverprovisionedVMs 启用过度预配后,仅在请求的 VM 数量上启动扩展,这些 VM 最终会保留。 因此,此属性将确保扩展不会在额外的过度预配的 VM 上运行。 bool
hostGroup 指定虚拟机规模集所在的专用主机组的信息。

最低 API 版本:2020-06-01。
SubResource
orchestrationMode 指定虚拟机规模集的业务流程模式。 “灵活”
“Uniform”
overprovision 指定是否应过度预配虚拟机规模集。 bool
platformFaultDomainCount 每个放置组的容错域计数。 int
proximityPlacementGroup 指定应向其分配虚拟机规模集的邻近放置组的相关信息。

最低 api 版本:2018-04-01。
SubResource
scaleInPolicy 指定缩放策略,该策略决定在缩放虚拟机规模集时选择要删除的虚拟机。 ScaleInPolicy
singlePlacementGroup 如果为 true,则规模集限制为单个放置组,最大大小为 100 个虚拟机。 注意:如果 singlePlacementGroup 为 true,则可能会将其修改为 false。 但是,如果 singlePlacementGroup 为 false,则可能不会将其修改为 true。 bool
upgradePolicy 升级策略。 UpgradePolicy
virtualMachineProfile 虚拟机配置文件。 VirtualMachineScaleSetVMProfile
zoneBalance 如果发生区域中断,是否强制甚至跨 x 区域进行虚拟机分发。 bool

AdditionalCapabilities

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

AutomaticRepairsPolicy

名字 描述 价值
启用 指定是否应在虚拟机规模集上启用自动修复。 默认值为 false。 bool
gracePeriod 由于 VM 上的状态更改,自动修复暂停的时间。 状态更改完成后的宽限时间开始。 这有助于避免过早或意外修复。 持续时间应采用 ISO 8601 格式指定。 允许的最小宽限期为 30 分钟(PT30M),这也是默认值。 允许的最大宽限期为 90 分钟(PT90M)。 字符串

SubResource

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

ScaleInPolicy

名字 描述 价值
规则 在虚拟机规模集中进行缩放时要遵循的规则。

可能的值包括:

默认 当虚拟机规模集进行缩放时,如果规模集是区域性规模集,则规模集将首先跨区域均衡。 然后,它将尽可能跨容错域进行均衡。 在每个容错域中,选择删除的虚拟机将是不受横向扩展保护的最新虚拟机。

OldestVM 当虚拟机规模集正在缩减时,将选择不从横向扩展保护的最早虚拟机进行删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最早虚拟机进行删除。

NewestVM 当虚拟机规模集进行缩减时,将选择不受横向缩减保护的最新虚拟机以供删除。 对于区域虚拟机规模集,规模集将首先跨区域均衡。 在每个区域中,将选择不受保护的最新虚拟机进行删除。

包含任一项的字符串数组:
“Default”
“NewestVM”
“OldestVM”

UpgradePolicy

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

可能的值包括:

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

自动 - 规模集中的所有虚拟机同时自动更新。
“Automatic”
“手动”
“滚动”
rollingUpgradePolicy 执行滚动升级时使用的配置参数。 RollingUpgradePolicy

AutomaticOSUpgradePolicy

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

如果此选项设置为基于 Windows 的规模集,enableAutomaticUpdates 将自动设置为 false,并且不能设置为 true。
bool

RollingUpgradePolicy

名字 描述 价值
enableCrossZoneUpgrade 允许 VMSS 在构造升级批处理时忽略 AZ 边界。 考虑 Update 域和 maxBatchInstancePercent 以确定批大小。 bool
maxBatchInstancePercent 一批滚动升级同时升级的总虚拟机实例的最大百分比。 由于这是一个最大值,因此以前的或将来的批中的不正常实例可能会导致批处理中的实例百分比降低,以确保更高的可靠性。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyInstancePercent 规模集中可能同时运行不正常的虚拟机实例的最大百分比,无论是由于升级,还是虚拟机运行状况检查在滚动升级中止之前处于不正常状态。 在启动任何批处理之前,将检查此约束。 此参数的默认值为 20%。 int

约束:
最小值 = 5
最大值 = 100
maxUnhealthyUpgradedInstancePercent 可发现处于不正常状态的已升级虚拟机实例的最大百分比。 升级每个批处理后,将进行此检查。 如果超过此百分比,滚动更新将中止。 此参数的默认值为 20%。 int

约束:
最小值 = 0
最大值 = 100
pauseTimeBetweenBatches 完成一批中所有虚拟机的更新和开始下一批之间的等待时间。 持续时间应采用 ISO 8601 格式指定。 默认值为 0 秒(PT0S)。 字符串
prioritizeUnhealthyInstances 在任何正常运行的实例之前,升级规模集中的所有不正常实例。 bool

VirtualMachineScaleSetVMProfile

名字 描述 价值
billingProfile 指定 Azure 现成 VMSS 的计费相关详细信息。

最低 API 版本:2019-03-01。
BillingProfile
diagnosticsProfile 指定启动诊断设置状态。

最低 API 版本:2015-06-15。
DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure Spot 规模集的逐出策略。

对于 Azure 现成虚拟机,支持“解除分配”和“删除”,最低 API 版本为 2019-03-01。

对于 Azure Spot 规模集,支持“Deallocate”和“Delete”,最低 API 版本为 2017-10-30-preview。
“解除分配”
“Delete”
extensionProfile 指定规模集中虚拟机上安装的扩展的设置集合。 VirtualMachineScaleSetExtensionProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL_BYOS(适用于 RHEL)

SLES_BYOS(对于 SUSE)

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

Linux Server 的 Azure 混合使用权益

最低 API 版本:2015-06-15
字符串
networkProfile 指定规模集中虚拟机网络接口的属性。 VirtualMachineScaleSetNetworkProfile
osProfile 指定规模集中虚拟机的操作系统设置。 VirtualMachineScaleSetOSProfile
优先权 指定规模集中虚拟机的优先级。

最低 API 版本:2017-10-30-preview
“Low”
“Regular”
“现成”
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定规模集中虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 VirtualMachineScaleSetStorageProfile
userData 规模集中虚拟机的 UserData,必须进行 base-64 编码。 客户不应在此处传递任何机密。

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

BillingProfile

名字 描述 价值
maxPrice 指定愿意为 Azure 现成 VM/VMSS 付费的最高价格。 这个价格是美元。

此价格将与 VM 大小的当前 Azure 现成价格进行比较。 此外,价格是在创建/更新 Azure 现成 VM/VMSS 时进行比较的,并且仅当 maxPrice 大于当前 Azure 现成价格时,该操作才会成功。

如果当前 Azure 现成价格超出创建 VM/VMSS 后的最大价格,maxPrice 还将用于逐出 Azure 现成 VM/VMSS。

可能的值包括:

- 大于零的任何十进制值。 示例:0.01538

-1 – 指示按需 up-to 的默认价格。

可以将 maxPrice 设置为 -1,以指示出于价格原因不应逐出 Azure Spot VM/VMSS。 此外,如果未提供默认最大价格,则 -1。

最低 API 版本:2019-03-01。 将十进制值指定为字符串。
int 或 json decimal

DiagnosticsProfile

名字 描述 价值
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图来诊断 VM 状态。

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

通过 Azure,还可以从虚拟机监控程序查看 VM 的屏幕截图。
BootDiagnostics

BootDiagnostics

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

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

VirtualMachineScaleSetExtensionProfile

名字 描述 价值
扩展 虚拟机规模集子扩展资源。 VirtualMachineScaleSetExtension[]
extensionsTimeBudget 指定分配所有扩展开始的时间。 持续时间应介于 15 分钟到 120 分钟(含)之间,应采用 ISO 8601 格式指定。 默认值为 90 分钟(PT1H30M)。

最低 API 版本:2020-06-01
字符串

VirtualMachineScaleSetExtension

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

VirtualMachineScaleSetExtensionProperties

名字 描述 价值
autoUpgradeMinorVersion 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 bool
enableAutomaticUpgrade 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 bool
forceUpdateTag 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 字符串
protectedSettings 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。
provisionAfterExtensions 需要预配此扩展的扩展名称的集合。 string[]
发行人 扩展处理程序发布者的名称。 字符串
设置 扩展的 Json 格式公共设置。
类型 指定扩展的类型;例如“CustomScriptExtension”。 字符串
typeHandlerVersion 指定脚本处理程序的版本。 字符串

VirtualMachineScaleSetNetworkProfile

名字 描述 价值
healthProbe 对负载均衡器探测的引用,用于确定虚拟机规模集中实例的运行状况。 引用的格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}”。 ApiEntityReference
networkApiVersion 指定使用业务流程模式“灵活”在虚拟机规模集的网络接口配置中创建网络资源时使用的 Microsoft.Network API 版本 "2020-11-01"
networkInterfaceConfigurations 网络配置列表。 VirtualMachineScaleSetNetworkConfiguration[]

ApiEntityReference

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

VirtualMachineScaleSetNetworkConfiguration

名字 描述 价值
id 资源 ID 字符串
名字 网络配置名称。 string (必需)
性能 介绍虚拟机规模集网络配置文件的 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

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

VirtualMachineScaleSetIPConfigurationProperties

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

VirtualMachineScaleSetPublicIPAddressConfiguration

名字 描述 价值
名字 publicIP 地址配置名称。 string (必需)
性能 介绍虚拟机规模集 IP 配置的公共 IPAddress 配置 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 开始提供,它表示特定 ipconfiguration 是 IPv4 还是 IPv6。 默认值被视为 IPv4。 可能的值为:“IPv4”和“IPv6”。 “IPv4”
“IPv6”
publicIPPrefix 要从中分配 publicIP 地址的 PublicIPPrefix。 SubResource

VirtualMachineScaleSetPublicIPAddressConfigurationDn...

名字 描述 价值
domainNameLabel 域名标签。域名标签和 vm 索引的串联将是将创建的 PublicIPAddress 资源的域名标签 string (必需)

VirtualMachineScaleSetIpTag

名字 描述 价值
ipTagType IP 标记类型。 示例:FirstPartyUsage。 字符串
标记 与公共 IP 关联的 IP 标记。 示例:SQL、存储等。 字符串

PublicIPAddressSku

名字 描述 价值
名字 指定公共 IP SKU 名称 “Basic”
“Standard”
指定公共 IP SKU 层 “Global”
“区域”

VirtualMachineScaleSetOSProfile

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最大长度(Windows): 20 个字符
字符串
computerNamePrefix 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 字符串
customData 指定自定义数据的 base-64 编码字符串。 base-64 编码字符串将解码为作为虚拟机上的文件保存的二进制数组。 二进制数组的最大长度为 65535 字节。

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux
LinuxConfiguration
秘密 指定应在规模集中的虚拟机上安装的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure Key Vault 虚拟机扩展或适用于 Windows的 Azure Key Vault 虚拟机扩展。 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 虚拟机的模式,或与将 OrchestrationMode 作为灵活业务流程模式的虚拟机规模集关联的虚拟机。

可能的值包括:

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

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

SshConfiguration

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

SshPublicKey

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

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

VaultSecretGroup

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

VaultCertificate

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

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

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

WindowsConfiguration

名字 描述 价值
additionalUnattendContent 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.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 - 虚拟机将由 OS 自动更新。 属性 WindowsConfiguration.enableAutomaticUpdates 必须为 true。

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

WinRMConfiguration

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

WinRMListener

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

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

可能的值包括:
http

https
“Http”
“Https”

ScheduledEventsProfile

名字 描述 价值
terminateNotificationProfile 指定终止计划事件相关配置。 TerminateNotificationProfile

TerminateNotificationProfile

名字 描述 价值
使 指定是启用或禁用终止计划事件。 bool
notBeforeTimeout 删除虚拟机的可配置时间长度可能需要在事件自动批准(超时)之前批准终止计划事件。 必须以 ISO 8601 格式指定配置,默认值为 5 分钟(PT5M) 字符串

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

VirtualMachineScaleSetStorageProfile

名字 描述 价值
dataDisks 指定用于向规模集中的虚拟机添加数据磁盘的参数。

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

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

VirtualMachineScaleSetDataDisk

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

可能的值包括:



ReadOnly

ReadWrite

默认值:标准存储 None。高级存储的 ReadOnly
“None”
“ReadOnly”
“ReadWrite”
createOption 创建选项。 “附加”
“空”
“FromImage”(必需)
diskIOPSReadWrite 指定托管磁盘的 Read-Write IOPS。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskMBpsReadWrite 指定托管磁盘的带宽(以 MB/秒为单位)。 仅当 StorageAccountType UltraSSD_LRS时才应使用。 如果未指定,则会根据 diskSizeGB 分配默认值。 int
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

VirtualMachineScaleSetManagedDiskParameters

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

DiskEncryptionSetParameters

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

ImageReference

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

VirtualMachineScaleSetOSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“附加”
“空”
“FromImage”(必需)
diffDiskSettings 指定虚拟机规模集使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定操作系统磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

此值不能大于 1023 GB
int
图像 指定要基于规模集的非托管用户映像的信息。 VirtualHardDisk
managedDisk 托管磁盘参数。 VirtualMachineScaleSetManagedDiskParameters
名字 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。

可能的值包括:

Windows

Linux
“Linux”
“Windows”
vhdContainers 指定用于存储规模集操作系统磁盘的容器 URL。 string[]
writeAcceleratorEnabled 指定是应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名字 描述 价值
选择 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘放置。

可能的值包括:

CacheDisk

ResourceDisk

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

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

VirtualHardDisk

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

Sku

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

可能的值:

标准

基本
字符串