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

Microsoft.Compute virtualMachineScaleSets/virtualmachines 2017-12-01

Bicep 资源定义

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

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

资源格式

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

resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets/virtualmachines@2017-12-01' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
  }
  properties: {
    availabilitySet: {
      id: 'string'
    }
    diagnosticsProfile: {
      bootDiagnostics: {
        enabled: bool
        storageUri: 'string'
      }
    }
    hardwareProfile: {
      vmSize: 'string'
    }
    licenseType: 'string'
    networkProfile: {
      networkInterfaces: [
        {
          id: 'string'
          properties: {
            primary: bool
          }
        }
      ]
    }
    osProfile: {
      adminPassword: 'string'
      adminUsername: 'string'
      computerName: 'string'
      customData: 'string'
      linuxConfiguration: {
        disablePasswordAuthentication: bool
        ssh: {
          publicKeys: [
            {
              keyData: 'string'
              path: 'string'
            }
          ]
        }
      }
      secrets: [
        {
          sourceVault: {
            id: 'string'
          }
          vaultCertificates: [
            {
              certificateStore: 'string'
              certificateUrl: 'string'
            }
          ]
        }
      ]
      windowsConfiguration: {
        additionalUnattendContent: [
          {
            componentName: 'Microsoft-Windows-Shell-Setup'
            content: 'string'
            passName: 'OobeSystem'
            settingName: 'string'
          }
        ]
        enableAutomaticUpdates: bool
        provisionVMAgent: bool
        timeZone: 'string'
        winRM: {
          listeners: [
            {
              certificateUrl: 'string'
              protocol: 'string'
            }
          ]
        }
      }
    }
    storageProfile: {
      dataDisks: [
        {
          caching: 'string'
          createOption: 'string'
          diskSizeGB: int
          image: {
            uri: 'string'
          }
          lun: int
          managedDisk: {
            id: 'string'
            storageAccountType: 'string'
          }
          name: 'string'
          vhd: {
            uri: 'string'
          }
          writeAcceleratorEnabled: bool
        }
      ]
      imageReference: {
        id: 'string'
        offer: 'string'
        publisher: 'string'
        sku: 'string'
        version: 'string'
      }
      osDisk: {
        caching: 'string'
        createOption: 'string'
        diskSizeGB: int
        encryptionSettings: {
          diskEncryptionKey: {
            secretUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
          enabled: bool
          keyEncryptionKey: {
            keyUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
        }
        image: {
          uri: 'string'
        }
        managedDisk: {
          id: 'string'
          storageAccountType: 'string'
        }
        name: 'string'
        osType: 'string'
        vhd: {
          uri: 'string'
        }
        writeAcceleratorEnabled: bool
      }
    }
  }
  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”

BootDiagnostics

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

DataDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

DiagnosticsProfile

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

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

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

DiskEncryptionSettings

名字 描述 价值
diskEncryptionKey 指定磁盘加密密钥的位置,该密钥是 Key Vault 机密。 KeyVaultSecretReference
启用 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定 Key Vault 中密钥加密密钥的位置。 KeyVaultKeyReference

HardwareProfile

名字 描述 价值
vmSize 指定虚拟机的大小。 有关虚拟机大小的详细信息,请参阅虚拟机大小。

可用的 VM 大小取决于区域和可用性集。 有关可用大小的列表,请使用以下 API:

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

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

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

ImageReference

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

KeyVaultKeyReference

名字 描述 价值
keyUrl 引用 Key Vault 中的密钥加密密钥的 URL。 string (必需)
sourceVault 包含密钥的 Key Vault 的相对 URL。 SubResource (必需)

KeyVaultSecretReference

名字 描述 价值
secretUrl 引用 Key Vault 中的机密的 URL。 string (必需)
sourceVault 包含机密的 Key Vault 的相对 URL。 SubResource (必需)

LinuxConfiguration

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

ManagedDiskParameters

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

Microsoft.Compute/virtualMachineScaleSets/virtualmachines

名字 描述 价值
位置 资源位置 string (必需)
名字 资源名称 string (必需)
父母 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。

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

NetworkInterfaceReference

名字 描述 价值
id 资源 ID 字符串
性能 描述网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名字 描述 价值
主要 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

NetworkProfile

名字 描述 价值
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

OSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

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

可能的值包括:

Windows

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

OSProfile

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

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

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

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

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

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

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

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

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、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 选择用户名
字符串
computerName 指定虚拟机的主机 OS 名称。

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

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

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

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

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux

有关运行非认可的分发版,请参阅 有关非认可分发的信息。
LinuxConfiguration
秘密 指定应安装在虚拟机上的证书集。 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

计划

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

ResourceTags

名字 描述 价值

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 字符串

StorageProfile

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

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

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

SubResource

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

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。 字符串

VirtualMachineScaleSetVMProperties

名字 描述 价值
availabilitySet 指定应将虚拟机分配到的可用性集的相关信息。 在同一可用性集中指定的虚拟机分配给不同的节点,以最大程度地提高可用性。 有关可用性集的详细信息,请参阅 管理虚拟机的可用性。

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

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

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。 此元素仅用于包含 Windows Server 操作系统的映像。

可能的值包括:

Windows_Client

Windows_Server

如果此元素包含在更新请求中,则该值必须与初始值匹配。 此值无法更新。

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定虚拟机的操作系统设置。 OSProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile

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”

ARM 模板资源定义

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

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

资源格式

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

{
  "type": "Microsoft.Compute/virtualMachineScaleSets/virtualmachines",
  "apiVersion": "2017-12-01",
  "name": "string",
  "location": "string",
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string"
  },
  "properties": {
    "availabilitySet": {
      "id": "string"
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": "bool",
        "storageUri": "string"
      }
    },
    "hardwareProfile": {
      "vmSize": "string"
    },
    "licenseType": "string",
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "string",
          "properties": {
            "primary": "bool"
          }
        }
      ]
    },
    "osProfile": {
      "adminPassword": "string",
      "adminUsername": "string",
      "computerName": "string",
      "customData": "string",
      "linuxConfiguration": {
        "disablePasswordAuthentication": "bool",
        "ssh": {
          "publicKeys": [
            {
              "keyData": "string",
              "path": "string"
            }
          ]
        }
      },
      "secrets": [
        {
          "sourceVault": {
            "id": "string"
          },
          "vaultCertificates": [
            {
              "certificateStore": "string",
              "certificateUrl": "string"
            }
          ]
        }
      ],
      "windowsConfiguration": {
        "additionalUnattendContent": [
          {
            "componentName": "Microsoft-Windows-Shell-Setup",
            "content": "string",
            "passName": "OobeSystem",
            "settingName": "string"
          }
        ],
        "enableAutomaticUpdates": "bool",
        "provisionVMAgent": "bool",
        "timeZone": "string",
        "winRM": {
          "listeners": [
            {
              "certificateUrl": "string",
              "protocol": "string"
            }
          ]
        }
      }
    },
    "storageProfile": {
      "dataDisks": [
        {
          "caching": "string",
          "createOption": "string",
          "diskSizeGB": "int",
          "image": {
            "uri": "string"
          },
          "lun": "int",
          "managedDisk": {
            "id": "string",
            "storageAccountType": "string"
          },
          "name": "string",
          "vhd": {
            "uri": "string"
          },
          "writeAcceleratorEnabled": "bool"
        }
      ],
      "imageReference": {
        "id": "string",
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string"
      },
      "osDisk": {
        "caching": "string",
        "createOption": "string",
        "diskSizeGB": "int",
        "encryptionSettings": {
          "diskEncryptionKey": {
            "secretUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          },
          "enabled": "bool",
          "keyEncryptionKey": {
            "keyUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          }
        },
        "image": {
          "uri": "string"
        },
        "managedDisk": {
          "id": "string",
          "storageAccountType": "string"
        },
        "name": "string",
        "osType": "string",
        "vhd": {
          "uri": "string"
        },
        "writeAcceleratorEnabled": "bool"
      }
    }
  },
  "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”

BootDiagnostics

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

DataDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

DiagnosticsProfile

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

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

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

DiskEncryptionSettings

名字 描述 价值
diskEncryptionKey 指定磁盘加密密钥的位置,该密钥是 Key Vault 机密。 KeyVaultSecretReference
启用 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定 Key Vault 中密钥加密密钥的位置。 KeyVaultKeyReference

HardwareProfile

名字 描述 价值
vmSize 指定虚拟机的大小。 有关虚拟机大小的详细信息,请参阅虚拟机大小。

可用的 VM 大小取决于区域和可用性集。 有关可用大小的列表,请使用以下 API:

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

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

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

ImageReference

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

KeyVaultKeyReference

名字 描述 价值
keyUrl 引用 Key Vault 中的密钥加密密钥的 URL。 string (必需)
sourceVault 包含密钥的 Key Vault 的相对 URL。 SubResource (必需)

KeyVaultSecretReference

名字 描述 价值
secretUrl 引用 Key Vault 中的机密的 URL。 string (必需)
sourceVault 包含机密的 Key Vault 的相对 URL。 SubResource (必需)

LinuxConfiguration

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

ManagedDiskParameters

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

Microsoft.Compute/virtualMachineScaleSets/virtualmachines

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

NetworkInterfaceReference

名字 描述 价值
id 资源 ID 字符串
性能 描述网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名字 描述 价值
主要 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

NetworkProfile

名字 描述 价值
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

OSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

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

可能的值包括:

Windows

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

OSProfile

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

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

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

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

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

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

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

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

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、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 选择用户名
字符串
computerName 指定虚拟机的主机 OS 名称。

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

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

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

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

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux

有关运行非认可的分发版,请参阅 有关非认可分发的信息。
LinuxConfiguration
秘密 指定应安装在虚拟机上的证书集。 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

计划

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

ResourceTags

名字 描述 价值

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 字符串

StorageProfile

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

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

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

SubResource

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

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。 字符串

VirtualMachineScaleSetVMProperties

名字 描述 价值
availabilitySet 指定应将虚拟机分配到的可用性集的相关信息。 在同一可用性集中指定的虚拟机分配给不同的节点,以最大程度地提高可用性。 有关可用性集的详细信息,请参阅 管理虚拟机的可用性。

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

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

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。 此元素仅用于包含 Windows Server 操作系统的映像。

可能的值包括:

Windows_Client

Windows_Server

如果此元素包含在更新请求中,则该值必须与初始值匹配。 此值无法更新。

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定虚拟机的操作系统设置。 OSProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile

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”

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

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

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/virtualMachineScaleSets/virtualmachines@2017-12-01"
  name = "string"
  location = "string"
  plan = {
    name = "string"
    product = "string"
    promotionCode = "string"
    publisher = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      availabilitySet = {
        id = "string"
      }
      diagnosticsProfile = {
        bootDiagnostics = {
          enabled = bool
          storageUri = "string"
        }
      }
      hardwareProfile = {
        vmSize = "string"
      }
      licenseType = "string"
      networkProfile = {
        networkInterfaces = [
          {
            id = "string"
            properties = {
              primary = bool
            }
          }
        ]
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        computerName = "string"
        customData = "string"
        linuxConfiguration = {
          disablePasswordAuthentication = bool
          ssh = {
            publicKeys = [
              {
                keyData = "string"
                path = "string"
              }
            ]
          }
        }
        secrets = [
          {
            sourceVault = {
              id = "string"
            }
            vaultCertificates = [
              {
                certificateStore = "string"
                certificateUrl = "string"
              }
            ]
          }
        ]
        windowsConfiguration = {
          additionalUnattendContent = [
            {
              componentName = "Microsoft-Windows-Shell-Setup"
              content = "string"
              passName = "OobeSystem"
              settingName = "string"
            }
          ]
          enableAutomaticUpdates = bool
          provisionVMAgent = bool
          timeZone = "string"
          winRM = {
            listeners = [
              {
                certificateUrl = "string"
                protocol = "string"
              }
            ]
          }
        }
      }
      storageProfile = {
        dataDisks = [
          {
            caching = "string"
            createOption = "string"
            diskSizeGB = int
            image = {
              uri = "string"
            }
            lun = int
            managedDisk = {
              id = "string"
              storageAccountType = "string"
            }
            name = "string"
            vhd = {
              uri = "string"
            }
            writeAcceleratorEnabled = bool
          }
        ]
        imageReference = {
          id = "string"
          offer = "string"
          publisher = "string"
          sku = "string"
          version = "string"
        }
        osDisk = {
          caching = "string"
          createOption = "string"
          diskSizeGB = int
          encryptionSettings = {
            diskEncryptionKey = {
              secretUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
            enabled = bool
            keyEncryptionKey = {
              keyUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
          }
          image = {
            uri = "string"
          }
          managedDisk = {
            id = "string"
            storageAccountType = "string"
          }
          name = "string"
          osType = "string"
          vhd = {
            uri = "string"
          }
          writeAcceleratorEnabled = bool
        }
      }
    }
  })
}

属性值

AdditionalUnattendContent

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

BootDiagnostics

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

DataDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

DiagnosticsProfile

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

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

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

DiskEncryptionSettings

名字 描述 价值
diskEncryptionKey 指定磁盘加密密钥的位置,该密钥是 Key Vault 机密。 KeyVaultSecretReference
启用 指定是否应在虚拟机上启用磁盘加密。 bool
keyEncryptionKey 指定 Key Vault 中密钥加密密钥的位置。 KeyVaultKeyReference

HardwareProfile

名字 描述 价值
vmSize 指定虚拟机的大小。 有关虚拟机大小的详细信息,请参阅虚拟机大小。

可用的 VM 大小取决于区域和可用性集。 有关可用大小的列表,请使用以下 API:

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

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

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

ImageReference

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

KeyVaultKeyReference

名字 描述 价值
keyUrl 引用 Key Vault 中的密钥加密密钥的 URL。 string (必需)
sourceVault 包含密钥的 Key Vault 的相对 URL。 SubResource (必需)

KeyVaultSecretReference

名字 描述 价值
secretUrl 引用 Key Vault 中的机密的 URL。 string (必需)
sourceVault 包含机密的 Key Vault 的相对 URL。 SubResource (必需)

LinuxConfiguration

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

ManagedDiskParameters

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

Microsoft.Compute/virtualMachineScaleSets/virtualmachines

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

NetworkInterfaceReference

名字 描述 价值
id 资源 ID 字符串
性能 描述网络接口引用属性。 NetworkInterfaceReferenceProperties

NetworkInterfaceReferenceProperties

名字 描述 价值
主要 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

NetworkProfile

名字 描述 价值
networkInterfaces 指定与虚拟机关联的网络接口的资源 ID 列表。 NetworkInterfaceReference[]

OSDisk

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

可能的值包括:



ReadOnly

ReadWrite

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

可能的值包括:

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

FromImage \u2013 使用映像创建虚拟机时使用此值。 如果使用平台映像,则还使用上述 imageReference 元素。 如果使用市场映像,则还会使用前面所述的计划元素。
“Attach”
“Empty”
“FromImage”(必需)
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。

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

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

可能的值包括:

Windows

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

OSProfile

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

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

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

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

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

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

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

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

有关重置根密码,请参阅 使用 VMAccess 扩展 管理用户、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 选择用户名
字符串
computerName 指定虚拟机的主机 OS 名称。

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

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

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

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

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

有关受支持的 Linux 分发版的列表,请参阅 Azure-Endorsed 分发版上的 Linux

有关运行非认可的分发版,请参阅 有关非认可分发的信息。
LinuxConfiguration
秘密 指定应安装在虚拟机上的证书集。 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

计划

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

ResourceTags

名字 描述 价值

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 字符串

StorageProfile

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

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

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

SubResource

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

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。 字符串

VirtualMachineScaleSetVMProperties

名字 描述 价值
availabilitySet 指定应将虚拟机分配到的可用性集的相关信息。 在同一可用性集中指定的虚拟机分配给不同的节点,以最大程度地提高可用性。 有关可用性集的详细信息,请参阅 管理虚拟机的可用性。

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

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

最低 API 版本:2015-06-15。
DiagnosticsProfile
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
licenseType 指定正在使用的映像或磁盘在本地获得许可。 此元素仅用于包含 Windows Server 操作系统的映像。

可能的值包括:

Windows_Client

Windows_Server

如果此元素包含在更新请求中,则该值必须与初始值匹配。 此值无法更新。

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定虚拟机的操作系统设置。 OSProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile

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”