你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Compute virtualMachineScaleSets 2016-03-30
Bicep 资源定义
可以使用目标操作部署 virtualMachineScaleSets 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets@2016-03-30' = {
identity: {
type: 'SystemAssigned'
}
location: 'string'
name: 'string'
properties: {
overProvision: bool
upgradePolicy: {
mode: 'string'
}
virtualMachineProfile: {
extensionProfile: {
extensions: [
{
id: 'string'
name: 'string'
properties: {
autoUpgradeMinorVersion: bool
protectedSettings: any(Azure.Bicep.Types.Concrete.AnyType)
publisher: 'string'
settings: any(Azure.Bicep.Types.Concrete.AnyType)
type: 'string'
typeHandlerVersion: 'string'
}
}
]
}
networkProfile: {
networkInterfaceConfigurations: [
{
id: 'string'
name: 'string'
properties: {
ipConfigurations: [
{
id: 'string'
name: 'string'
properties: {
applicationGatewayBackendAddressPools: [
{
id: 'string'
}
]
loadBalancerBackendAddressPools: [
{
id: 'string'
}
]
loadBalancerInboundNatPools: [
{
id: 'string'
}
]
subnet: {
id: 'string'
}
}
}
]
primary: bool
}
}
]
}
osProfile: {
adminPassword: 'string'
adminUsername: 'string'
computerNamePrefix: 'string'
customData: 'string'
linuxConfiguration: {
disablePasswordAuthentication: bool
ssh: {
publicKeys: [
{
keyData: 'string'
path: 'string'
}
]
}
}
secrets: [
{
sourceVault: {
id: 'string'
}
vaultCertificates: [
{
certificateStore: 'string'
certificateUrl: 'string'
}
]
}
]
windowsConfiguration: {
additionalUnattendContent: [
{
componentName: 'Microsoft-Windows-Shell-Setup'
content: 'string'
passName: 'OobeSystem'
settingName: 'string'
}
]
enableAutomaticUpdates: bool
provisionVMAgent: bool
timeZone: 'string'
winRM: {
listeners: [
{
certificateUrl: 'string'
protocol: 'string'
}
]
}
}
}
storageProfile: {
imageReference: {
offer: 'string'
publisher: 'string'
sku: 'string'
version: 'string'
}
osDisk: {
caching: 'string'
createOption: 'string'
image: {
uri: 'string'
}
name: 'string'
osType: 'string'
vhdContainers: [
'string'
]
}
}
}
}
sku: {
capacity: int
name: 'string'
tier: 'string'
}
tags: {
{customized property}: 'string'
}
}
属性值
AdditionalUnattendContent
名字 | 描述 | 价值 |
---|---|---|
componentName | 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 | “Microsoft-Windows-Shell-Setup” |
内容 | 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 | 字符串 |
passName | 传递名称。 目前,唯一允许的值是 OobeSystem。 | “OobeSystem” |
settingName | 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 | “AutoLogon” “FirstLogonCommands” |
ApiEntityReference
名字 | 描述 | 价值 |
---|---|---|
id | /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID | 字符串 |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
提供 | 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 | 字符串 |
发行人 | 映像发布者。 | 字符串 |
sku | 映像 SKU。 | 字符串 |
版本 | 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 | 字符串 |
LinuxConfiguration
名字 | 描述 | 价值 |
---|---|---|
disablePasswordAuthentication | 指定是否应禁用密码身份验证。 | bool |
ssh | 指定 Linux OS 的 ssh 密钥配置。 | SshConfiguration |
Microsoft.Compute/virtualMachineScaleSets
名字 | 描述 | 价值 |
---|---|---|
身份 | 虚拟机规模集的标识(如果已配置)。 | VirtualMachineScaleSetIdentity |
位置 | 资源位置 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | 描述虚拟机规模集的属性。 | VirtualMachineScaleSetProperties |
sku | 虚拟机规模集 SKU。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
能力 | 指定规模集中的虚拟机数。 | int |
名字 | SKU 名称。 | 字符串 |
层 | 指定规模集中的虚拟机层。 可能的值: 标准 基本 |
字符串 |
SshConfiguration
名字 | 描述 | 价值 |
---|---|---|
publicKeys | 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 | SshPublicKey[] |
SshPublicKey
名字 | 描述 | 价值 |
---|---|---|
keyData | 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。 有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。 |
字符串 |
路径 | 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys | 字符串 |
SubResource
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
UpgradePolicy
名字 | 描述 | 价值 |
---|---|---|
模式 | 指定升级到规模集中虚拟机的模式。 可能的值包括: 手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。 自动 - 规模集中的所有虚拟机同时自动更新。 |
“Automatic” “Manual” |
VaultCertificate
名字 | 描述 | 价值 |
---|---|---|
certificateStore | 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。 对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。 |
字符串 |
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
VaultSecretGroup
名字 | 描述 | 价值 |
---|---|---|
sourceVault | Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 | SubResource |
vaultCertificates | SourceVault 中包含证书的密钥保管库引用列表。 | VaultCertificate[] |
VirtualHardDisk
名字 | 描述 | 价值 |
---|---|---|
uri | 指定虚拟硬盘的 URI。 | 字符串 |
VirtualMachineScaleSetExtension
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 扩展的名称。 | 字符串 |
性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
VirtualMachineScaleSetExtensionProfile
名字 | 描述 | 价值 |
---|---|---|
扩展 | 虚拟机规模集子扩展资源。 | VirtualMachineScaleSetExtension[] |
VirtualMachineScaleSetExtensionProperties
名字 | 描述 | 价值 |
---|---|---|
autoUpgradeMinorVersion | 是否应跨次要版本自动升级扩展处理程序。 | bool |
protectedSettings | 扩展的 Json 格式保护设置。 | 任何 |
发行人 | 扩展处理程序发布者的名称。 | 字符串 |
设置 | 扩展的 Json 格式公共设置。 | 任何 |
类型 | 扩展处理程序的类型。 | 字符串 |
typeHandlerVersion | 扩展处理程序的类型版本。 | 字符串 |
VirtualMachineScaleSetIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 | “SystemAssigned” |
VirtualMachineScaleSetIPConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | IP 配置名称。 | string (必需) |
性能 | 描述虚拟机规模集网络配置文件的 IP 配置属性。 | VirtualMachineScaleSetIPConfigurationProperties |
VirtualMachineScaleSetIPConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
applicationGatewayBackendAddressPools | 应用程序网关后端地址池。 | SubResource[] |
loadBalancerBackendAddressPools | 负载均衡器后端地址池。 | SubResource[] |
loadBalancerInboundNatPools | 负载均衡器入站 nat 池。 | SubResource[] |
子 | 子网。 | ApiEntityReference(必需) |
VirtualMachineScaleSetNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 网络配置名称。 | string (必需) |
性能 | 介绍虚拟机规模集网络配置文件的 IP 配置。 | VirtualMachineScaleSetNetworkConfigurationProperties |
VirtualMachineScaleSetNetworkConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
ipConfigurations | 虚拟机规模集 IP 配置。 | VirtualMachineScaleSetIPConfiguration[] (必需) |
主要 | 这是否是虚拟机上的主 NIC。 | bool |
VirtualMachineScaleSetNetworkProfile
名字 | 描述 | 价值 |
---|---|---|
networkInterfaceConfigurations | 网络配置列表。 | VirtualMachineScaleSetNetworkConfiguration[] |
VirtualMachineScaleSetOSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 指定缓存要求。 可能的值包括: 无 ReadOnly ReadWrite 默认值:标准存储 None。高级存储的 ReadOnly |
“None” “ReadOnly” “ReadWrite” |
createOption | 指定应如何创建规模集中的虚拟机。 唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。 |
“Attach” “Empty” “FromImage”(必需) |
图像 | 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 | VirtualHardDisk |
名字 | 磁盘名称。 | string (必需) |
osType | 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。 可能的值包括: Windows Linux |
“Linux” “Windows” |
vhdContainers | 虚拟硬盘容器 URI 的列表。 | string[] |
VirtualMachineScaleSetOSProfile
名字 | 描述 | 价值 |
---|---|---|
adminPassword | 指定管理员帐户的密码。 最小长度(Windows): 8 个字符 最小长度(Linux): 6 个字符 最大长度(Windows): 123 个字符 最大长度(Linux): 72 个字符 复杂性要求:需要满足以下 4 个条件中的 3 个 字符数较低 具有大写字符 包含数字 具有特殊字符(正则表达式匹配 [\W_]) 不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!” 若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码 有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘 |
字符串 |
adminUsername | 指定管理员帐户的名称。 仅限 Windows 的限制: 不能以“.” 结尾。 不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。 最小长度(Linux): 1 个字符 最大长度(Linux): 64 个字符 最大长度(Windows): 20 个字符 <li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限 <li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名 |
字符串 |
computerNamePrefix | 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 | 字符串 |
customData | 自定义数据的 base-64 编码字符串。 | 字符串 |
linuxConfiguration | OS 配置文件的 Linux 配置。 | LinuxConfiguration |
秘密 | 用于添加到 VM 的证书列表。 | VaultSecretGroup[] |
windowsConfiguration | OS 配置文件的 Windows 配置。 | WindowsConfiguration |
VirtualMachineScaleSetProperties
名字 | 描述 | 价值 |
---|---|---|
overProvision | 指定是否应过度预配虚拟机规模集。 | bool |
upgradePolicy | 升级策略。 | UpgradePolicy |
virtualMachineProfile | 虚拟机配置文件。 | VirtualMachineScaleSetVMProfile |
VirtualMachineScaleSetStorageProfile
名字 | 描述 | 价值 |
---|---|---|
imageReference | 图像引用。 | ImageReference |
osDisk | OS 磁盘。 | VirtualMachineScaleSetOSDisk |
VirtualMachineScaleSetVMProfile
名字 | 描述 | 价值 |
---|---|---|
extensionProfile | 虚拟机规模集扩展配置文件。 | VirtualMachineScaleSetExtensionProfile |
networkProfile | 虚拟机规模集网络配置文件。 | VirtualMachineScaleSetNetworkProfile |
osProfile | 虚拟机规模集 OS 配置文件。 | VirtualMachineScaleSetOSProfile |
storageProfile | 虚拟机规模集存储配置文件。 | VirtualMachineScaleSetStorageProfile |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
additionalUnattendContent | 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 | AdditionalUnattendContent[] |
enableAutomaticUpdates | 指示是否为自动更新启用虚拟机。 | bool |
provisionVMAgent | 指示是否应在虚拟机上预配虚拟机代理。 如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。 |
bool |
timeZone | 指定虚拟机的时区。 例如“太平洋标准时间” | 字符串 |
winRM | 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 | WinRMConfiguration |
WinRMConfiguration
名字 | 描述 | 价值 |
---|---|---|
听众 | Windows 远程管理侦听器列表 | WinRMListener[] |
WinRMListener
名字 | 描述 | 价值 |
---|---|---|
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
协议 | 指定侦听器的协议。 可能的值包括: http https |
“Http” “Https” |
快速入门示例
以下快速入门示例部署此资源类型。
Bicep 文件 | 描述 |
---|---|
Azure 游戏开发人员虚拟机规模集 | Azure 游戏开发人员虚拟机规模集包括 Unreal 等授权引擎。 |
部署 5 节点安全群集 | 使用此模板,可以在Standard_D2_v2大小 VMSS 上部署运行 Windows Server 2019 Datacenter 的安全 5 节点 Service Fabric 群集。 |
部署 Nextflow 基因组学群集 | 此模板使用 Jumpbox、n 群集节点、docker 支持和共享存储部署可缩放的 Nextflow 群集。 |
部署支持受信任的启动的 Windows VM 规模集 | 使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明。 |
使用 Windows VM 和自动缩放 部署 VM 规模集 | 使用此模板,可以使用最新修补版本的 Windows 2008-R2-SP1、2012-Datacenter 或 2012-R2-Datacenter 部署简单的 WINDOWS VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 它们还集成了自动缩放 |
部署将每个 VM 连接到 Azure 文件共享的 VMSS | 此模板部署 Ubuntu 虚拟机规模集,并使用自定义脚本扩展将每个 VM 连接到 Azure 文件共享 |
使用 Azure 应用程序网关部署 Windows VM 规模集 | 此模板允许部署与 Azure 应用程序网关集成的简单 Windows VM 规模集,并支持最多 1000 个 VM |
使用 Python Bottle 服务器部署 VM 规模集 & 自动缩放 | 在负载均衡器/NAT 后面部署 VM 规模集 & 运行一个简单的 Python Bottle 应用的每个 VM。 使用自动缩放配置的规模集,可根据需要横向扩展 & |
运行 IIS WebApp 的自动缩放的 VM 规模集 | 部署运行 IIS 的 Windows VM 规模集和非常基本的 .NET MVC Web 应用。 VMSS PowerShell DSC 扩展用于执行 IIS 安装和 WebDeploy 包部署。 |
VMSS 灵活业务流程模式快速入门 Linux | 此模板部署一个简单的 VM 规模集,其中包含 Azure 负载均衡器后面的实例。 VM 规模集处于灵活的业务流程模式。 使用 os 参数选择 Linux(Ubuntu)或 Windows(Windows Server Datacenter 2019)部署。 注意:本快速入门模板允许从任何 Internet 地址访问 VM 管理端口(SSH、RDP),并且不应用于生产部署。 |
使用公共 IP 前缀 |
用于部署具有公共 IP 前缀的 VMSS 的模板 |
ARM 模板资源定义
可以使用目标操作部署 virtualMachineScaleSets 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"apiVersion": "2016-03-30",
"name": "string",
"identity": {
"type": "SystemAssigned"
},
"location": "string",
"properties": {
"overProvision": "bool",
"upgradePolicy": {
"mode": "string"
},
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"id": "string",
"name": "string",
"properties": {
"autoUpgradeMinorVersion": "bool",
"protectedSettings": {},
"publisher": "string",
"settings": {},
"type": "string",
"typeHandlerVersion": "string"
}
}
]
},
"networkProfile": {
"networkInterfaceConfigurations": [
{
"id": "string",
"name": "string",
"properties": {
"ipConfigurations": [
{
"id": "string",
"name": "string",
"properties": {
"applicationGatewayBackendAddressPools": [
{
"id": "string"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "string"
}
],
"loadBalancerInboundNatPools": [
{
"id": "string"
}
],
"subnet": {
"id": "string"
}
}
}
],
"primary": "bool"
}
}
]
},
"osProfile": {
"adminPassword": "string",
"adminUsername": "string",
"computerNamePrefix": "string",
"customData": "string",
"linuxConfiguration": {
"disablePasswordAuthentication": "bool",
"ssh": {
"publicKeys": [
{
"keyData": "string",
"path": "string"
}
]
}
},
"secrets": [
{
"sourceVault": {
"id": "string"
},
"vaultCertificates": [
{
"certificateStore": "string",
"certificateUrl": "string"
}
]
}
],
"windowsConfiguration": {
"additionalUnattendContent": [
{
"componentName": "Microsoft-Windows-Shell-Setup",
"content": "string",
"passName": "OobeSystem",
"settingName": "string"
}
],
"enableAutomaticUpdates": "bool",
"provisionVMAgent": "bool",
"timeZone": "string",
"winRM": {
"listeners": [
{
"certificateUrl": "string",
"protocol": "string"
}
]
}
}
},
"storageProfile": {
"imageReference": {
"offer": "string",
"publisher": "string",
"sku": "string",
"version": "string"
},
"osDisk": {
"caching": "string",
"createOption": "string",
"image": {
"uri": "string"
},
"name": "string",
"osType": "string",
"vhdContainers": [ "string" ]
}
}
}
},
"sku": {
"capacity": "int",
"name": "string",
"tier": "string"
},
"tags": {
"{customized property}": "string"
}
}
属性值
AdditionalUnattendContent
名字 | 描述 | 价值 |
---|---|---|
componentName | 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 | “Microsoft-Windows-Shell-Setup” |
内容 | 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 | 字符串 |
passName | 传递名称。 目前,唯一允许的值是 OobeSystem。 | “OobeSystem” |
settingName | 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 | “AutoLogon” “FirstLogonCommands” |
ApiEntityReference
名字 | 描述 | 价值 |
---|---|---|
id | /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID | 字符串 |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
提供 | 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 | 字符串 |
发行人 | 映像发布者。 | 字符串 |
sku | 映像 SKU。 | 字符串 |
版本 | 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 | 字符串 |
LinuxConfiguration
名字 | 描述 | 价值 |
---|---|---|
disablePasswordAuthentication | 指定是否应禁用密码身份验证。 | bool |
ssh | 指定 Linux OS 的 ssh 密钥配置。 | SshConfiguration |
Microsoft.Compute/virtualMachineScaleSets
名字 | 描述 | 价值 |
---|---|---|
apiVersion | API 版本 | '2016-03-30' |
身份 | 虚拟机规模集的标识(如果已配置)。 | VirtualMachineScaleSetIdentity |
位置 | 资源位置 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | 描述虚拟机规模集的属性。 | VirtualMachineScaleSetProperties |
sku | 虚拟机规模集 SKU。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
类型 | 资源类型 | “Microsoft.Compute/virtualMachineScaleSets” |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
能力 | 指定规模集中的虚拟机数。 | int |
名字 | SKU 名称。 | 字符串 |
层 | 指定规模集中的虚拟机层。 可能的值: 标准 基本 |
字符串 |
SshConfiguration
名字 | 描述 | 价值 |
---|---|---|
publicKeys | 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 | SshPublicKey[] |
SshPublicKey
名字 | 描述 | 价值 |
---|---|---|
keyData | 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。 有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。 |
字符串 |
路径 | 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys | 字符串 |
SubResource
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
UpgradePolicy
名字 | 描述 | 价值 |
---|---|---|
模式 | 指定升级到规模集中虚拟机的模式。 可能的值包括: 手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。 自动 - 规模集中的所有虚拟机同时自动更新。 |
“Automatic” “Manual” |
VaultCertificate
名字 | 描述 | 价值 |
---|---|---|
certificateStore | 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。 对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。 |
字符串 |
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
VaultSecretGroup
名字 | 描述 | 价值 |
---|---|---|
sourceVault | Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 | SubResource |
vaultCertificates | SourceVault 中包含证书的密钥保管库引用列表。 | VaultCertificate[] |
VirtualHardDisk
名字 | 描述 | 价值 |
---|---|---|
uri | 指定虚拟硬盘的 URI。 | 字符串 |
VirtualMachineScaleSetExtension
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 扩展的名称。 | 字符串 |
性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
VirtualMachineScaleSetExtensionProfile
名字 | 描述 | 价值 |
---|---|---|
扩展 | 虚拟机规模集子扩展资源。 | VirtualMachineScaleSetExtension[] |
VirtualMachineScaleSetExtensionProperties
名字 | 描述 | 价值 |
---|---|---|
autoUpgradeMinorVersion | 是否应跨次要版本自动升级扩展处理程序。 | bool |
protectedSettings | 扩展的 Json 格式保护设置。 | 任何 |
发行人 | 扩展处理程序发布者的名称。 | 字符串 |
设置 | 扩展的 Json 格式公共设置。 | 任何 |
类型 | 扩展处理程序的类型。 | 字符串 |
typeHandlerVersion | 扩展处理程序的类型版本。 | 字符串 |
VirtualMachineScaleSetIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 | “SystemAssigned” |
VirtualMachineScaleSetIPConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | IP 配置名称。 | string (必需) |
性能 | 描述虚拟机规模集网络配置文件的 IP 配置属性。 | VirtualMachineScaleSetIPConfigurationProperties |
VirtualMachineScaleSetIPConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
applicationGatewayBackendAddressPools | 应用程序网关后端地址池。 | SubResource[] |
loadBalancerBackendAddressPools | 负载均衡器后端地址池。 | SubResource[] |
loadBalancerInboundNatPools | 负载均衡器入站 nat 池。 | SubResource[] |
子 | 子网。 | ApiEntityReference(必需) |
VirtualMachineScaleSetNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 网络配置名称。 | string (必需) |
性能 | 介绍虚拟机规模集网络配置文件的 IP 配置。 | VirtualMachineScaleSetNetworkConfigurationProperties |
VirtualMachineScaleSetNetworkConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
ipConfigurations | 虚拟机规模集 IP 配置。 | VirtualMachineScaleSetIPConfiguration[] (必需) |
主要 | 这是否是虚拟机上的主 NIC。 | bool |
VirtualMachineScaleSetNetworkProfile
名字 | 描述 | 价值 |
---|---|---|
networkInterfaceConfigurations | 网络配置列表。 | VirtualMachineScaleSetNetworkConfiguration[] |
VirtualMachineScaleSetOSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 指定缓存要求。 可能的值包括: 无 ReadOnly ReadWrite 默认值:标准存储 None。高级存储的 ReadOnly |
“None” “ReadOnly” “ReadWrite” |
createOption | 指定应如何创建规模集中的虚拟机。 唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。 |
“Attach” “Empty” “FromImage”(必需) |
图像 | 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 | VirtualHardDisk |
名字 | 磁盘名称。 | string (必需) |
osType | 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。 可能的值包括: Windows Linux |
“Linux” “Windows” |
vhdContainers | 虚拟硬盘容器 URI 的列表。 | string[] |
VirtualMachineScaleSetOSProfile
名字 | 描述 | 价值 |
---|---|---|
adminPassword | 指定管理员帐户的密码。 最小长度(Windows): 8 个字符 最小长度(Linux): 6 个字符 最大长度(Windows): 123 个字符 最大长度(Linux): 72 个字符 复杂性要求:需要满足以下 4 个条件中的 3 个 字符数较低 具有大写字符 包含数字 具有特殊字符(正则表达式匹配 [\W_]) 不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!” 若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码 有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘 |
字符串 |
adminUsername | 指定管理员帐户的名称。 仅限 Windows 的限制: 不能以“.” 结尾。 不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。 最小长度(Linux): 1 个字符 最大长度(Linux): 64 个字符 最大长度(Windows): 20 个字符 <li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限 <li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名 |
字符串 |
computerNamePrefix | 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 | 字符串 |
customData | 自定义数据的 base-64 编码字符串。 | 字符串 |
linuxConfiguration | OS 配置文件的 Linux 配置。 | LinuxConfiguration |
秘密 | 用于添加到 VM 的证书列表。 | VaultSecretGroup[] |
windowsConfiguration | OS 配置文件的 Windows 配置。 | WindowsConfiguration |
VirtualMachineScaleSetProperties
名字 | 描述 | 价值 |
---|---|---|
overProvision | 指定是否应过度预配虚拟机规模集。 | bool |
upgradePolicy | 升级策略。 | UpgradePolicy |
virtualMachineProfile | 虚拟机配置文件。 | VirtualMachineScaleSetVMProfile |
VirtualMachineScaleSetStorageProfile
名字 | 描述 | 价值 |
---|---|---|
imageReference | 图像引用。 | ImageReference |
osDisk | OS 磁盘。 | VirtualMachineScaleSetOSDisk |
VirtualMachineScaleSetVMProfile
名字 | 描述 | 价值 |
---|---|---|
extensionProfile | 虚拟机规模集扩展配置文件。 | VirtualMachineScaleSetExtensionProfile |
networkProfile | 虚拟机规模集网络配置文件。 | VirtualMachineScaleSetNetworkProfile |
osProfile | 虚拟机规模集 OS 配置文件。 | VirtualMachineScaleSetOSProfile |
storageProfile | 虚拟机规模集存储配置文件。 | VirtualMachineScaleSetStorageProfile |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
additionalUnattendContent | 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 | AdditionalUnattendContent[] |
enableAutomaticUpdates | 指示是否为自动更新启用虚拟机。 | bool |
provisionVMAgent | 指示是否应在虚拟机上预配虚拟机代理。 如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。 |
bool |
timeZone | 指定虚拟机的时区。 例如“太平洋标准时间” | 字符串 |
winRM | 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 | WinRMConfiguration |
WinRMConfiguration
名字 | 描述 | 价值 |
---|---|---|
听众 | Windows 远程管理侦听器列表 | WinRMListener[] |
WinRMListener
名字 | 描述 | 价值 |
---|---|---|
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
协议 | 指定侦听器的协议。 可能的值包括: http https |
“Http” “Https” |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 描述 |
---|---|
将多个 VM 添加到虚拟机规模集 |
此模板将使用托管磁盘、公共 IP 和网络接口创建 N 个 VM 数量。 它将在灵活业务流程模式下在虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建 |
使用 Azure SQL 数据库 |
该模板部署具有规模集中所需 VM 计数的 Windows VMSS,以及要安装到每个 VM 中的 LANSA MSI。 部署 VM 规模集后,将使用自定义脚本扩展安装 LANSA MSI) |
Azure 容器服务引擎 (acs-engine) - 群模式 |
Azure 容器服务引擎(acs-engine)使用你选择的 DC/OS、Kubernetes、Swarm 模式或 Swarm 业务流程协调程序,为 Microsoft Azure 上启用了 Docker 的群集生成 ARM(Azure 资源管理器)模板。 该工具的输入是群集定义。 群集定义与用于部署 Microsoft Azure 容器服务群集的 ARM 模板语法非常相似(在许多情况下相同)。 |
Azure 游戏开发人员虚拟机规模集 |
Azure 游戏开发人员虚拟机规模集包括 Unreal 等授权引擎。 |
Azure VM 规模集作为 Intel Lustre 客户端 |
此模板使用 Azure VM 规模集和 Azure 库 OpenLogic CentOS 6.6 或 7.0 映像创建一组 Intel Lustre 2.7 客户端,并装载现有的 Intel Lustre 文件系统 |
使用机密磁盘加密 机密 VM 规模集 |
使用此模板,可以使用多个 Windows 和 Linux 映像版本的最新修补版本部署启用了机密 OS 磁盘加密的机密 VM 规模集。 |
Couchbase Enterprise |
用于安装 Couchbase Enterprise 的 Azure 资源管理器 (ARM) 模板 |
使用 jumpbox 创建和加密新的 Linux VMSS |
此模板使用最新的 Linux 映像部署 Linux VMSS,添加数据卷,然后加密每个 Linux VMSS 实例的数据卷。 它还在与具有专用 IP 地址的 Linux VMSS 实例相同的虚拟网络中部署具有公共 IP 地址的 jumpbox。 这允许通过其公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址连接到 Linux VMSS 实例。 |
使用 jumpbox 创建和加密新的 Windows VMSS |
使用此模板,可以使用服务器 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 此模板还会在同一虚拟网络中部署具有公共 IP 地址的 jumpbox。 可以通过此公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址从那里连接到规模集中的 VM。此模板在 WINDOWS VM 的 VM 规模集上启用加密。 |
部署启用了 NSG 的 3 Nodetype 安全群集 |
此模板允许在Standard_D2大小 VM 上部署运行 Windows Server 2016 数据中心的安全 3 节点类型 Service Fabric 群集。 使用此模板,可以使用网络安全组控制入站和出站网络流量。 |
部署 5 节点安全群集 |
使用此模板,可以在Standard_D2_v2大小 VMSS 上部署运行 Windows Server 2019 Datacenter 的安全 5 节点 Service Fabric 群集。 |
部署 5 节点 Ubuntu Service Fabric 群集 |
此模板允许在Standard_D2_V2大小 VMSS 上部署运行 Ubuntu 的安全 5 节点 Service Fabric 群集。 |
部署 Linux VMSS 主要/辅助体系结构 |
使用此模板,可以在主要辅助体系结构中使用自定义脚本扩展部署 Linux VMSS |
部署 Nextflow 基因组学群集 |
此模板使用 Jumpbox、n 群集节点、docker 支持和共享存储部署可缩放的 Nextflow 群集。 |
将规模集部署到现有 vnet |
此模板将 VM 规模集部署到一个前发的 vnet 中。 |
将规模集部署到 Windows 上的现有 vnet |
此模板将 Windows 2016 Datacenter VM 规模集部署到除名资源组、vnet 和子网中。 |
使用 Linux VM 部署简单的 VM 规模集 |
使用此模板,可以使用最新修补版本的 Ubuntu Linux 14.04.4-LTS 或 16.04-LTS 部署简单的 Linux VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。 |
使用 Linux VM 和 Jumpbox 部署简单的 VM 规模集 |
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署简单的 VM 规模集。 还有一个 jumpbox,用于启用 VM 位于 VNet 外部的连接。 |
使用 Windows VM 部署简单的 VM 规模集 |
使用此模板,可以使用各种 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 这些 VM 位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。 |
使用 Windows VM 和 Jumpbox 部署简单的 VM 规模集 |
使用此模板,可以使用服务器 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 此模板还会在同一虚拟网络中部署具有公共 IP 地址的 jumpbox。 可以通过此公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址从那里连接到规模集中的 VM。 |
部署支持受信任的启动的 Windows VM 规模集 |
使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明。 |
从 Azure 数据科学 VM 部署 VM 规模集 |
这些模板使用 Azure 数据科学 VM 作为源映像部署 VM 规模集。 |
使用 Linux 自定义映像部署 VM 规模集 |
此模板允许在规模集中部署自定义 VM Linux 映像。 这些 VM 位于具有 HTTP 负载均衡的负载均衡器后面(默认情况下在端口 80 上)。 该示例使用自定义脚本执行应用程序部署和更新,可能需要为自己的更新过程提供自定义脚本。 必须在创建 VMSS 的同一订阅和区域中提供 VM 的通用化映像。 |
使用 Windows 自定义映像部署 VM 规模集 |
使用此模板可以部署简单的 VM 规模集,从而部署自定义 Windows 映像。 这些 VM 位于具有 HTTP 负载均衡的负载均衡器后面(默认情况下在端口 80 上) |
使用 Linux VM 和自动缩放 部署 VM 规模集 |
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.04 或 14.04.4-LTS 部署简单的 LINUX VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。它们还集成了自动缩放 |
在 ILB 后面部署具有 Linux VM 的 VM 规模集 |
使用此模板,可以使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署 VM 规模集。 这些 VM 位于内部负载均衡器后面,其中包含 SSH 连接的 NAT 规则。 |
在可用性区域中部署具有 Linux VM 的 VM 规模集 |
使用此模板,可以使用最新修补版本的 Ubuntu Linux 14.04.4-LTS 或 16.04-LTS 部署简单的 Linux VM 规模集。 这些 VM 位于具有 SSH 连接的 NAT 规则的负载均衡器后面。 |
使用 Windows VM 和自动缩放 部署 VM 规模集 |
使用此模板,可以使用最新修补版本的 Windows 2008-R2-SP1、2012-Datacenter 或 2012-R2-Datacenter 部署简单的 WINDOWS VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 它们还集成了自动缩放 |
在可用性区域中部署具有 Windows VM 的 VM 规模集 |
使用此模板,可以使用各种 Windows 版本的最新修补版本部署 Windows VM 的 VM 规模集。 这些 VM 位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。 |
部署将每个 VM 连接到 Azure 文件共享的 VMSS |
此模板部署 Ubuntu 虚拟机规模集,并使用自定义脚本扩展将每个 VM 连接到 Azure 文件共享 |
使用自定义脚本扩展部署 Windows VM 规模集 |
使用此模板,可以使用各种 Windows 版本的最新修补版本部署 Windows VM 的 VM 规模集。 这些 VM 具有用于自定义的自定义脚本扩展,并且位于负载均衡器后面,其中包含用于 rdp 连接的 NAT 规则。 |
使用 Azure 应用程序网关部署 Windows VM 规模集 |
此模板允许部署与 Azure 应用程序网关集成的简单 Windows VM 规模集,并支持最多 1000 个 VM |
为虚拟机 ScaleSet 部署自动缩放设置 |
此模板允许为虚拟机 ScaleSet 资源部署自动缩放策略。 |
使用 Azure 应用程序网关部署 Ubuntu VM 规模集 |
此模板允许部署与 Azure 应用程序网关集成的简单 Ubuntu VM 规模集,并支持最多 1000 个 VM |
部署 Darktrace 自动缩放 vSensors |
此模板允许你部署 Darktrace vSensors 的自动自动缩放部署 |
使用 VM 规模集、Azure 文件和 Mysql 部署 Drupal |
在负载均衡器/NAT 后面部署 VM 规模集,& 运行 Drupal(Apache/PHP)的每个 VM。 所有节点共享创建的 Azure 文件共享存储和 MySQL 数据库 |
使用 LB 探测和自动修复部署 VM 规模集 |
使用此模板,可以在配置了运行状况探测的负载均衡器后面部署一组 Linux VM 规模集。 规模集还启用了自动实例修复策略,宽限期为 30 分钟。 |
使用 Python Bottle 服务器部署 VM 规模集 & 自动缩放 |
在负载均衡器/NAT 后面部署 VM 规模集 & 运行一个简单的 Python Bottle 应用的每个 VM。 使用自动缩放配置的规模集,可根据需要横向扩展 & |
部署 Windows VMSS 配置 Windows 特征 SSL DSC |
此模板允许你部署两个 Windows VMSS,配置 WINDOWS 功能,如 IIS/Web 角色、.Net Framework 4.5、windows 身份验证、应用程序初始化、下载应用程序部署包、URL 重写 & 使用 DSC 和 Azure Key Vault 的 SSL 配置 |
在现有 Linux VMSS 上禁用加密 |
在现有 Linux VMSS 上禁用加密 |
在正在运行的 Linux VMSS 上启用数据卷加密 |
在正在运行的 Linux VMSS 上启用数据卷加密 |
在虚拟机规模集上安装 Elasticsearch 群集 |
此模板在虚拟机规模集上部署 Elasticsearch 群集。 该模板预配 3 个专用主节点,其中包含在托管磁盘上运行的可选数据节点数。 |
RHEL 上的 JBoss EAP (群集 VMSS) |
此模板允许创建运行 JBoss EAP 7.4 群集的 RHEL 8.6 VMSS 实例,并部署名为 eap-session-replication 的 Web 应用程序,可以使用部署时配置的 JBoss EAP 用户名和密码登录到管理控制台。 |
使用 VMSS 群集自动缩放程序 |
此模板部署使用 kubeadm 初始化的 vanilla kubernetes 群集。 它使用群集自动缩放程序部署配置的主节点。 预配置的虚拟机规模集(VMSS)也会部署并自动附加到群集。 然后,群集自动缩放程序可以根据群集的工作负荷自动纵向扩展/缩减群集。 |
使用 Linux VM 和每个 VM 的公共 IPv4 简单 VM 规模集 |
此模板演示如何为每个 VM 部署一个包含负载均衡器、入站 NAT 规则和公共 IP 的简单规模集。 |
已启用 SSL 的 VM 规模集 |
使用安全部署的 SSL 证书部署 Web 服务器配置 Azure Key Vault |
使用可用性区域 虚拟机规模集示例 |
此模板创建一个 VMSS,该 VMSS 放置在具有负载均衡器的单独可用性区域中。 |
运行 IIS WebApp 的自动缩放的 VM 规模集 |
部署运行 IIS 的 Windows VM 规模集和非常基本的 .NET MVC Web 应用。 VMSS PowerShell DSC 扩展用于执行 IIS 安装和 WebDeploy 包部署。 |
Azure 虚拟网络(VNET)中 IPv6 的 VMSS 部署 |
使用双堆栈 IPv4/IPv6 VNET 和 Std 负载均衡器创建 VM 规模集。 |
VMSS 灵活业务流程模式快速入门 Linux |
此模板部署一个简单的 VM 规模集,其中包含 Azure 负载均衡器后面的实例。 VM 规模集处于灵活的业务流程模式。 使用 os 参数选择 Linux(Ubuntu)或 Windows(Windows Server Datacenter 2019)部署。 注意:本快速入门模板允许从任何 Internet 地址访问 VM 管理端口(SSH、RDP),并且不应用于生产部署。 |
使用公共 IP 前缀 |
用于部署具有公共 IP 前缀的 VMSS 的模板 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 virtualMachineScaleSets 资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Compute/virtualMachineScaleSets@2016-03-30"
name = "string"
identity = {
type = "SystemAssigned"
}
location = "string"
sku = {
capacity = int
name = "string"
tier = "string"
}
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
overProvision = bool
upgradePolicy = {
mode = "string"
}
virtualMachineProfile = {
extensionProfile = {
extensions = [
{
id = "string"
name = "string"
properties = {
autoUpgradeMinorVersion = bool
protectedSettings = ?
publisher = "string"
settings = ?
type = "string"
typeHandlerVersion = "string"
}
}
]
}
networkProfile = {
networkInterfaceConfigurations = [
{
id = "string"
name = "string"
properties = {
ipConfigurations = [
{
id = "string"
name = "string"
properties = {
applicationGatewayBackendAddressPools = [
{
id = "string"
}
]
loadBalancerBackendAddressPools = [
{
id = "string"
}
]
loadBalancerInboundNatPools = [
{
id = "string"
}
]
subnet = {
id = "string"
}
}
}
]
primary = bool
}
}
]
}
osProfile = {
adminPassword = "string"
adminUsername = "string"
computerNamePrefix = "string"
customData = "string"
linuxConfiguration = {
disablePasswordAuthentication = bool
ssh = {
publicKeys = [
{
keyData = "string"
path = "string"
}
]
}
}
secrets = [
{
sourceVault = {
id = "string"
}
vaultCertificates = [
{
certificateStore = "string"
certificateUrl = "string"
}
]
}
]
windowsConfiguration = {
additionalUnattendContent = [
{
componentName = "Microsoft-Windows-Shell-Setup"
content = "string"
passName = "OobeSystem"
settingName = "string"
}
]
enableAutomaticUpdates = bool
provisionVMAgent = bool
timeZone = "string"
winRM = {
listeners = [
{
certificateUrl = "string"
protocol = "string"
}
]
}
}
}
storageProfile = {
imageReference = {
offer = "string"
publisher = "string"
sku = "string"
version = "string"
}
osDisk = {
caching = "string"
createOption = "string"
image = {
uri = "string"
}
name = "string"
osType = "string"
vhdContainers = [
"string"
]
}
}
}
}
})
}
属性值
AdditionalUnattendContent
名字 | 描述 | 价值 |
---|---|---|
componentName | 组件名称。 目前,唯一允许的值是Microsoft-Windows-Shell-Setup。 | “Microsoft-Windows-Shell-Setup” |
内容 | 指定为指定路径和组件添加到 unattend.xml 文件的 XML 格式化内容。 XML 必须小于 4KB,并且必须包含要插入的设置或功能的根元素。 | 字符串 |
passName | 传递名称。 目前,唯一允许的值是 OobeSystem。 | “OobeSystem” |
settingName | 指定内容应用到的设置的名称。 可能的值包括:FirstLogonCommands 和 AutoLogon。 | “AutoLogon” “FirstLogonCommands” |
ApiEntityReference
名字 | 描述 | 价值 |
---|---|---|
id | /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 形式的 ARM 资源 ID | 字符串 |
ImageReference
名字 | 描述 | 价值 |
---|---|---|
提供 | 指定用于创建虚拟机的平台映像或市场映像的产品/服务。 | 字符串 |
发行人 | 映像发布者。 | 字符串 |
sku | 映像 SKU。 | 字符串 |
版本 | 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和生成是十进制数。 指定“latest”以在部署时使用可用映像的最新版本。 即使使用“最新”,即使新版本可用,VM 映像也不会在部署后自动更新。 | 字符串 |
LinuxConfiguration
名字 | 描述 | 价值 |
---|---|---|
disablePasswordAuthentication | 指定是否应禁用密码身份验证。 | bool |
ssh | 指定 Linux OS 的 ssh 密钥配置。 | SshConfiguration |
Microsoft.Compute/virtualMachineScaleSets
名字 | 描述 | 价值 |
---|---|---|
身份 | 虚拟机规模集的标识(如果已配置)。 | VirtualMachineScaleSetIdentity |
位置 | 资源位置 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | 描述虚拟机规模集的属性。 | VirtualMachineScaleSetProperties |
sku | 虚拟机规模集 SKU。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 |
类型 | 资源类型 | “Microsoft.Compute/virtualMachineScaleSets@2016-03-30” |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
能力 | 指定规模集中的虚拟机数。 | int |
名字 | SKU 名称。 | 字符串 |
层 | 指定规模集中的虚拟机层。 可能的值: 标准 基本 |
字符串 |
SshConfiguration
名字 | 描述 | 价值 |
---|---|---|
publicKeys | 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 | SshPublicKey[] |
SshPublicKey
名字 | 描述 | 价值 |
---|---|---|
keyData | 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥必须至少为 2048 位且采用 ssh-rsa 格式。 有关创建 ssh 密钥,请参阅 在 Azure中的 Linux 和 Mac 上为 Linux VM 创建 SSH 密钥。 |
字符串 |
路径 | 指定存储 ssh 公钥的已创建 VM 上的完整路径。 如果文件已存在,则指定的键将追加到该文件中。 示例:/home/user/.ssh/authorized_keys | 字符串 |
SubResource
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
UpgradePolicy
名字 | 描述 | 价值 |
---|---|---|
模式 | 指定升级到规模集中虚拟机的模式。 可能的值包括: 手动 - 控制对规模集中虚拟机的更新的应用程序。 使用 manualUpgrade 操作执行此操作。 自动 - 规模集中的所有虚拟机同时自动更新。 |
“Automatic” “Manual” |
VaultCertificate
名字 | 描述 | 价值 |
---|---|---|
certificateStore | 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。 对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,文件名为 X509 证书文件 <大写Thumbprint>.crt,<用于私钥的 uppercaseThumbprint>.prv。 这两个文件都是 .pem 格式的。 |
字符串 |
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
VaultSecretGroup
名字 | 描述 | 价值 |
---|---|---|
sourceVault | Key Vault 的相对 URL,其中包含 VaultCertificates 中的所有证书。 | SubResource |
vaultCertificates | SourceVault 中包含证书的密钥保管库引用列表。 | VaultCertificate[] |
VirtualHardDisk
名字 | 描述 | 价值 |
---|---|---|
uri | 指定虚拟硬盘的 URI。 | 字符串 |
VirtualMachineScaleSetExtension
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 扩展的名称。 | 字符串 |
性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
VirtualMachineScaleSetExtensionProfile
名字 | 描述 | 价值 |
---|---|---|
扩展 | 虚拟机规模集子扩展资源。 | VirtualMachineScaleSetExtension[] |
VirtualMachineScaleSetExtensionProperties
名字 | 描述 | 价值 |
---|---|---|
autoUpgradeMinorVersion | 是否应跨次要版本自动升级扩展处理程序。 | bool |
protectedSettings | 扩展的 Json 格式保护设置。 | 任何 |
发行人 | 扩展处理程序发布者的名称。 | 字符串 |
设置 | 扩展的 Json 格式公共设置。 | 任何 |
类型 | 扩展处理程序的类型。 | 字符串 |
typeHandlerVersion | 扩展处理程序的类型版本。 | 字符串 |
VirtualMachineScaleSetIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于虚拟机规模集的标识类型。 目前,唯一受支持的类型是“SystemAssigned”,它隐式创建标识。 | “SystemAssigned” |
VirtualMachineScaleSetIPConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | IP 配置名称。 | string (必需) |
性能 | 描述虚拟机规模集网络配置文件的 IP 配置属性。 | VirtualMachineScaleSetIPConfigurationProperties |
VirtualMachineScaleSetIPConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
applicationGatewayBackendAddressPools | 应用程序网关后端地址池。 | SubResource[] |
loadBalancerBackendAddressPools | 负载均衡器后端地址池。 | SubResource[] |
loadBalancerInboundNatPools | 负载均衡器入站 nat 池。 | SubResource[] |
子 | 子网。 | ApiEntityReference(必需) |
VirtualMachineScaleSetNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
id | 资源 ID | 字符串 |
名字 | 网络配置名称。 | string (必需) |
性能 | 介绍虚拟机规模集网络配置文件的 IP 配置。 | VirtualMachineScaleSetNetworkConfigurationProperties |
VirtualMachineScaleSetNetworkConfigurationProperties
名字 | 描述 | 价值 |
---|---|---|
ipConfigurations | 虚拟机规模集 IP 配置。 | VirtualMachineScaleSetIPConfiguration[] (必需) |
主要 | 这是否是虚拟机上的主 NIC。 | bool |
VirtualMachineScaleSetNetworkProfile
名字 | 描述 | 价值 |
---|---|---|
networkInterfaceConfigurations | 网络配置列表。 | VirtualMachineScaleSetNetworkConfiguration[] |
VirtualMachineScaleSetOSDisk
名字 | 描述 | 价值 |
---|---|---|
缓存 | 指定缓存要求。 可能的值包括: 无 ReadOnly ReadWrite 默认值:标准存储 None。高级存储的 ReadOnly |
“None” “ReadOnly” “ReadWrite” |
createOption | 指定应如何创建规模集中的虚拟机。 唯一允许的值是:FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。 |
“Attach” “Empty” “FromImage”(必需) |
图像 | 源用户映像 VirtualHardDisk。 使用此 VirtualHardDisk 附加到虚拟机之前,将复制此 VirtualHardDisk。 如果提供了 SourceImage,则目标 VirtualHardDisk 不应存在。 | VirtualHardDisk |
名字 | 磁盘名称。 | string (必需) |
osType | 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。 可能的值包括: Windows Linux |
“Linux” “Windows” |
vhdContainers | 虚拟硬盘容器 URI 的列表。 | string[] |
VirtualMachineScaleSetOSProfile
名字 | 描述 | 价值 |
---|---|---|
adminPassword | 指定管理员帐户的密码。 最小长度(Windows): 8 个字符 最小长度(Linux): 6 个字符 最大长度(Windows): 123 个字符 最大长度(Linux): 72 个字符 复杂性要求:需要满足以下 4 个条件中的 3 个 字符数较低 具有大写字符 包含数字 具有特殊字符(正则表达式匹配 [\W_]) 不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!” 若要重置密码,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码 有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、SSH 并检查或修复 Azure Linux VM 上的磁盘 |
字符串 |
adminUsername | 指定管理员帐户的名称。 仅限 Windows 的限制: 不能以“.” 结尾。 不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。 最小长度(Linux): 1 个字符 最大长度(Linux): 64 个字符 最大长度(Windows): 20 个字符 <li> 有关对 Linux VM 的根访问权限,请参阅 使用 Azure 中的 Linux 虚拟机上的根权限 <li> 有关不应在此字段中使用的 Linux 上的内置系统用户的列表,请参阅 在 Azure 上为 Linux 选择用户名 |
字符串 |
computerNamePrefix | 指定规模集中所有虚拟机的计算机名称前缀。 计算机名称前缀长度必须为 1 到 15 个字符。 | 字符串 |
customData | 自定义数据的 base-64 编码字符串。 | 字符串 |
linuxConfiguration | OS 配置文件的 Linux 配置。 | LinuxConfiguration |
秘密 | 用于添加到 VM 的证书列表。 | VaultSecretGroup[] |
windowsConfiguration | OS 配置文件的 Windows 配置。 | WindowsConfiguration |
VirtualMachineScaleSetProperties
名字 | 描述 | 价值 |
---|---|---|
overProvision | 指定是否应过度预配虚拟机规模集。 | bool |
upgradePolicy | 升级策略。 | UpgradePolicy |
virtualMachineProfile | 虚拟机配置文件。 | VirtualMachineScaleSetVMProfile |
VirtualMachineScaleSetStorageProfile
名字 | 描述 | 价值 |
---|---|---|
imageReference | 图像引用。 | ImageReference |
osDisk | OS 磁盘。 | VirtualMachineScaleSetOSDisk |
VirtualMachineScaleSetVMProfile
名字 | 描述 | 价值 |
---|---|---|
extensionProfile | 虚拟机规模集扩展配置文件。 | VirtualMachineScaleSetExtensionProfile |
networkProfile | 虚拟机规模集网络配置文件。 | VirtualMachineScaleSetNetworkProfile |
osProfile | 虚拟机规模集 OS 配置文件。 | VirtualMachineScaleSetOSProfile |
storageProfile | 虚拟机规模集存储配置文件。 | VirtualMachineScaleSetStorageProfile |
WindowsConfiguration
名字 | 描述 | 价值 |
---|---|---|
additionalUnattendContent | 指定其他 base-64 编码的 XML 格式信息,这些信息可以包含在 Windows 安装程序使用的 Unattend.xml 文件中。 | AdditionalUnattendContent[] |
enableAutomaticUpdates | 指示是否为自动更新启用虚拟机。 | bool |
provisionVMAgent | 指示是否应在虚拟机上预配虚拟机代理。 如果未在请求正文中指定此属性,则默认行为是将其设置为 true。 这将确保 VM 代理安装在 VM 上,以便以后可以向 VM 添加扩展。 |
bool |
timeZone | 指定虚拟机的时区。 例如“太平洋标准时间” | 字符串 |
winRM | 指定 Windows 远程管理侦听器。 这将启用远程 Windows PowerShell。 | WinRMConfiguration |
WinRMConfiguration
名字 | 描述 | 价值 |
---|---|---|
听众 | Windows 远程管理侦听器列表 | WinRMListener[] |
WinRMListener
名字 | 描述 | 价值 |
---|---|---|
certificateUrl | 这是已作为机密上传到 Key Vault 的证书的 URL。 若要将机密添加到 Key Vault,请参阅 向密钥保管库添加密钥或机密。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象在 UTF-8 中编码: { “data”:“<Base64 编码的证书>”, “dataType”:“pfx”, “password”:“<pfx-file-password>” } |
字符串 |
协议 | 指定侦听器的协议。 可能的值包括: http https |
“Http” “Https” |