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

Microsoft.Compute virtualMachines

Bicep 资源定义

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

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

资源格式

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

resource symbolicname 'Microsoft.Compute/virtualMachines@2023-09-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  extendedLocation: {
    name: 'string'
    type: 'EdgeZone'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
      {customized property}: {}
    }
  }
  plan: {
    name: 'string'
    product: 'string'
    promotionCode: 'string'
    publisher: 'string'
  }
  properties: {
    additionalCapabilities: {
      hibernationEnabled: bool
      ultraSSDEnabled: bool
    }
    applicationProfile: {
      galleryApplications: [
        {
          configurationReference: 'string'
          enableAutomaticUpgrade: bool
          order: int
          packageReferenceId: 'string'
          tags: 'string'
          treatFailureAsDeploymentFailure: bool
        }
      ]
    }
    availabilitySet: {
      id: 'string'
    }
    billingProfile: {
      maxPrice: json('decimal-as-string')
    }
    capacityReservation: {
      capacityReservationGroup: {
        id: 'string'
      }
    }
    diagnosticsProfile: {
      bootDiagnostics: {
        enabled: bool
        storageUri: 'string'
      }
    }
    evictionPolicy: 'string'
    extensionsTimeBudget: 'string'
    hardwareProfile: {
      vmSize: 'string'
      vmSizeProperties: {
        vCPUsAvailable: int
        vCPUsPerCore: int
      }
    }
    host: {
      id: 'string'
    }
    hostGroup: {
      id: 'string'
    }
    licenseType: 'string'
    networkProfile: {
      networkApiVersion: '2020-11-01'
      networkInterfaceConfigurations: [
        {
          name: 'string'
          properties: {
            auxiliaryMode: 'string'
            auxiliarySku: 'string'
            deleteOption: 'string'
            disableTcpStateTracking: bool
            dnsSettings: {
              dnsServers: [
                'string'
              ]
            }
            dscpConfiguration: {
              id: 'string'
            }
            enableAcceleratedNetworking: bool
            enableFpga: bool
            enableIPForwarding: bool
            ipConfigurations: [
              {
                name: 'string'
                properties: {
                  applicationGatewayBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  applicationSecurityGroups: [
                    {
                      id: 'string'
                    }
                  ]
                  loadBalancerBackendAddressPools: [
                    {
                      id: 'string'
                    }
                  ]
                  primary: bool
                  privateIPAddressVersion: 'string'
                  publicIPAddressConfiguration: {
                    name: 'string'
                    properties: {
                      deleteOption: 'string'
                      dnsSettings: {
                        domainNameLabel: 'string'
                        domainNameLabelScope: 'string'
                      }
                      idleTimeoutInMinutes: int
                      ipTags: [
                        {
                          ipTagType: 'string'
                          tag: 'string'
                        }
                      ]
                      publicIPAddressVersion: 'string'
                      publicIPAllocationMethod: 'string'
                      publicIPPrefix: {
                        id: 'string'
                      }
                    }
                    sku: {
                      name: 'string'
                      tier: 'string'
                    }
                  }
                  subnet: {
                    id: 'string'
                  }
                }
              }
            ]
            networkSecurityGroup: {
              id: 'string'
            }
            primary: bool
          }
        }
      ]
      networkInterfaces: [
        {
          id: 'string'
          properties: {
            deleteOption: 'string'
            primary: bool
          }
        }
      ]
    }
    osProfile: {
      adminPassword: 'string'
      adminUsername: 'string'
      allowExtensionOperations: bool
      computerName: 'string'
      customData: 'string'
      linuxConfiguration: {
        disablePasswordAuthentication: bool
        enableVMAgentPlatformUpdates: bool
        patchSettings: {
          assessmentMode: 'string'
          automaticByPlatformSettings: {
            bypassPlatformSafetyChecksOnUserSchedule: bool
            rebootSetting: 'string'
          }
          patchMode: 'string'
        }
        provisionVMAgent: bool
        ssh: {
          publicKeys: [
            {
              keyData: 'string'
              path: 'string'
            }
          ]
        }
      }
      requireGuestProvisionSignal: bool
      secrets: [
        {
          sourceVault: {
            id: 'string'
          }
          vaultCertificates: [
            {
              certificateStore: 'string'
              certificateUrl: 'string'
            }
          ]
        }
      ]
      windowsConfiguration: {
        additionalUnattendContent: [
          {
            componentName: 'Microsoft-Windows-Shell-Setup'
            content: 'string'
            passName: 'OobeSystem'
            settingName: 'string'
          }
        ]
        enableAutomaticUpdates: bool
        enableVMAgentPlatformUpdates: bool
        patchSettings: {
          assessmentMode: 'string'
          automaticByPlatformSettings: {
            bypassPlatformSafetyChecksOnUserSchedule: bool
            rebootSetting: 'string'
          }
          enableHotpatching: bool
          patchMode: 'string'
        }
        provisionVMAgent: bool
        timeZone: 'string'
        winRM: {
          listeners: [
            {
              certificateUrl: 'string'
              protocol: 'string'
            }
          ]
        }
      }
    }
    platformFaultDomain: int
    priority: 'string'
    proximityPlacementGroup: {
      id: 'string'
    }
    scheduledEventsProfile: {
      osImageNotificationProfile: {
        enable: bool
        notBeforeTimeout: 'string'
      }
      terminateNotificationProfile: {
        enable: bool
        notBeforeTimeout: 'string'
      }
    }
    securityProfile: {
      encryptionAtHost: bool
      encryptionIdentity: {
        userAssignedIdentityResourceId: 'string'
      }
      proxyAgentSettings: {
        enabled: bool
        keyIncarnationId: int
        mode: 'string'
      }
      securityType: 'string'
      uefiSettings: {
        secureBootEnabled: bool
        vTpmEnabled: bool
      }
    }
    storageProfile: {
      dataDisks: [
        {
          caching: 'string'
          createOption: 'string'
          deleteOption: 'string'
          detachOption: 'ForceDetach'
          diskSizeGB: int
          image: {
            uri: 'string'
          }
          lun: int
          managedDisk: {
            diskEncryptionSet: {
              id: 'string'
            }
            id: 'string'
            securityProfile: {
              diskEncryptionSet: {
                id: 'string'
              }
              securityEncryptionType: 'string'
            }
            storageAccountType: 'string'
          }
          name: 'string'
          toBeDetached: bool
          vhd: {
            uri: 'string'
          }
          writeAcceleratorEnabled: bool
        }
      ]
      diskControllerType: 'string'
      imageReference: {
        communityGalleryImageId: 'string'
        id: 'string'
        offer: 'string'
        publisher: 'string'
        sharedGalleryImageId: 'string'
        sku: 'string'
        version: 'string'
      }
      osDisk: {
        caching: 'string'
        createOption: 'string'
        deleteOption: 'string'
        diffDiskSettings: {
          option: 'Local'
          placement: 'string'
        }
        diskSizeGB: int
        encryptionSettings: {
          diskEncryptionKey: {
            secretUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
          enabled: bool
          keyEncryptionKey: {
            keyUrl: 'string'
            sourceVault: {
              id: 'string'
            }
          }
        }
        image: {
          uri: 'string'
        }
        managedDisk: {
          diskEncryptionSet: {
            id: 'string'
          }
          id: 'string'
          securityProfile: {
            diskEncryptionSet: {
              id: 'string'
            }
            securityEncryptionType: 'string'
          }
          storageAccountType: 'string'
        }
        name: 'string'
        osType: 'string'
        vhd: {
          uri: 'string'
        }
        writeAcceleratorEnabled: bool
      }
    }
    userData: 'string'
    virtualMachineScaleSet: {
      id: 'string'
    }
  }
  zones: [
    'string'
  ]
}

属性值

virtualMachines

名称 说明
name 资源名称 字符串 (必需)

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



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

Windows VM 不能包含句点或以连字符结尾。

Linux VM 不能以句点或连字符结尾。
location 资源位置 字符串 (必需)
标记 资源标记 标记名称和值的字典。 请参阅 模板中的标记
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
标识 虚拟机的标识(如果已配置)。 VirtualMachineIdentity
plan 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 描述虚拟机的属性。 VirtualMachineProperties
zones 虚拟机区域。 string[]

ExtendedLocation

名称 说明
name 扩展位置的名称。 字符串
type 扩展位置的类型。 “EdgeZone”

VirtualMachineIdentity

名称 说明 Value
type 用于虚拟机的标识类型。 类型“SystemAssigned ,UserAssigned”包含隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机中删除任何标识。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned”
userAssignedIdentities 与虚拟机关联的用户标识列表。 用户标识字典密钥引用将是 ARM 资源 ID,格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 UserAssignedIdentities

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentitiesValue
{customized property} UserAssignedIdentitiesValue

UserAssignedIdentitiesValue

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

计划

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

VirtualMachineProperties

名称 说明
additionalCapabilities 指定在虚拟机上启用或禁用的其他功能。 AdditionalCapabilities
applicationProfile 指定应提供给 VM/VMSS 的库应用程序。 ApplicationProfile
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述。 有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新。 目前,只能在创建时将 VM 添加到可用性集。 要向其添加 VM 的可用性集应位于与可用性集资源相同的资源组下。 无法将现有 VM 添加到可用性集。 此属性不能与非 null properties.virtualMachineScaleSet 引用一起存在。 SubResource
billingProfile 指定 Azure 现成虚拟机的计费相关详细信息。 最低 API 版本:2019-03-01。 BillingProfile
capacityReservation 指定有关用于分配虚拟机的容量预留的信息。 最低 API 版本:2021-04-01。 CapacityReservationProfile
diagnosticsProfile 指定启动诊断设置状态。 最低 API 版本:2015-06-15。 DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure 现成规模集的逐出策略。 对于 Azure 现成虚拟机,支持“Deallocate”和“Delete”,最低 api 版本为 2019-03-01。 对于 Azure 现成规模集,支持“Deallocate”和“Delete”,最低 api 版本为 2017-10-30-preview。 “Deallocate”
'Delete'
extensionsTimeBudget 指定为所有扩展分配的启动时间。 持续时间应介于 15 分钟到 120 分钟之间, (包括) ,并且应以 ISO 8601 格式指定。 默认值为 90 分钟 (PT1H30M) 。 最低 API 版本:2020-06-01。 字符串
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
host 指定有关虚拟机所在的专用主机的信息。 最低 API 版本:2018-10-01。 SubResource
hostGroup 指定有关虚拟机所在的专用主机组的信息。 注意: 用户不能同时指定 host 和 hostGroup 属性。 最低 API 版本:2020-06-01。 SubResource
LicenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

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

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定创建虚拟机时使用的操作系统设置。 预配 VM 后,无法更改某些设置。 OSProfile
platformFaultDomain 指定要在其中创建虚拟机的规模集逻辑容错域。 默认情况下,虚拟机会自动分配给容错域,该容错域最好地在可用容错域中保持平衡。 仅当设置了此虚拟机的“virtualMachineScaleSet”属性时,这才适用。 引用的虚拟机规模集的“platformFaultDomainCount”必须大于 1。 创建虚拟机后,无法更新此属性。 可以在虚拟机实例视图中查看容错域分配。 最低 api 版本:2020\12\01。 int
priority 指定虚拟机的优先级。 最低 API 版本:2019-03-01 'Low'
'Regular'
“Spot”
proximityPlacementGroup 指定虚拟机应分配到的邻近放置组的相关信息。 最低 API 版本:2018-04-01。 SubResource
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。 最低 API 版本:2021-03-01。 字符串
virtualMachineScaleSet 指定虚拟机应分配到的虚拟机规模集的相关信息。 同一虚拟机规模集中指定的虚拟机将分配到不同的节点,以最大程度地提高可用性。 目前,VM 只能在创建时添加到虚拟机规模集。 无法将现有 VM 添加到虚拟机规模集。 此属性不能与非 null properties.availabilitySet 引用一起存在。 最低 api 版本:2019?03?01。 SubResource

AdditionalCapabilities

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

ApplicationProfile

名称 说明
galleryApplications 指定应提供给 VM/VMSS 的库应用程序 VMGalleryApplication[]

VMGalleryApplication

名称 说明
configurationReference 可选,指定 Azure Blob 的 URI,该 URI 将替换包的默认配置(如果提供) 字符串
enableAutomaticUpgrade 如果设置为 true,则当 PIR/SIG 中提供了新的库应用程序版本时,它将针对 VM/VMSS 自动更新 bool
顺序 可选,指定包的安装顺序 int
packageReferenceId 指定 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} 格式的 GalleryApplicationVersion 资源 ID 字符串 (必需)
标记 可选,指定用于更多泛型上下文的传递值。 字符串
treatFailureAsDeploymentFailure 可选,如果为 true,则 VmApplication 中任何操作的任何失败都将使部署失败 bool

SubResource

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

BillingProfile

名称 说明
maxPrice 指定愿意为 Azure 现成 VM/VMSS 支付的最高价格。 此价格以美元为单位。

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

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

可能的值为:

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

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

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

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

CapacityReservationProfile

名称 说明
capacityReservationGroup 指定容量预留组资源 ID,该 ID 用于分配虚拟机或规模集 VM 实例,前提是已预留足够的容量。 有关更多详细信息,请参阅 https://aka.ms/CapacityReservation SubResource

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。 注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。 可以轻松查看控制台日志的输出。 Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。 BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。 如果在启用启动诊断时未指定 storageUri,则将使用托管存储。 字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。 枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。 获取可用大小列表的建议方法是使用以下 API: 列出可用性集中的所有可用虚拟机大小列出区域中所有可用的虚拟机大小列出所有可用虚拟机大小以便调整大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小。 可用的 VM 大小取决于区域和可用性集。 “Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。 此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 有关更多详细信息,请按照 VM 自定义 中的说明进行操作。 VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。 如果未在请求正文中指定此属性,则默认行为是将其设置为“ 列出区域中所有可用虚拟机大小”的 API 响应中公开的可用于该 VM 大小的 vCPU 值。 int
vCPUsPerCore 指定 vCPU 与物理核心的比率。 如果未在请求正文中指定此属性,则默认行为设置为“ 列出区域中所有可用虚拟机大小”的 API 响应中公开的 VM 大小的 vCPUsPerCore 值。 将此属性设置为 1 还意味着禁用超线程。 int

NetworkProfile

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

VirtualMachineNetworkInterfaceConfiguration

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

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
auxiliaryMode 指定是否为网络接口资源启用辅助模式。 “AcceleratedConnections”
“浮动”
“None”
auxiliarySku 指定是否为网络接口资源启用辅助 SKU。 “A1”
“A2”
“A4”
“A8”
“None”
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
disableTcpStateTracking 指定是否为 tcp 状态跟踪禁用网络接口。 bool
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

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

VirtualMachineNetworkInterfaceIPConfiguration

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

VirtualMachineNetworkInterfaceIPConfigurationPropert...

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

VirtualMachinePublicIPAddressConfiguration

名称 说明
name publicIP 地址配置名称。 字符串 (必需)
properties 介绍虚拟机 IP 配置的 PublicIPAddress 配置 VirtualMachinePublicIPAddressConfigurationProperties
sku 描述公共 IP SKU。 只能将 OrchestrationMode 设置为灵活。 PublicIPAddressSku

VirtualMachinePublicIPAddressConfigurationProperties

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

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)
domainNameLabelScope 将创建的 PublicIPAddress 资源的域名标签范围。 生成的名称标签是根据域名标签范围和 VM 网络配置文件唯一 ID 将经过哈希的域名标签与策略串联在一起的。 “NoReuse”
“ResourceGroupReuse”
“SubscriptionReuse”
“TenantReuse”

VirtualMachineIpTag

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

PublicIPAddressSku

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

NetworkInterfaceReference

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

NetworkInterfaceReferenceProperties

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

OSProfile

名称 说明
adminPassword 指定管理员帐户的密码。

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

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

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

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

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

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

有关重置密码的信息,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码

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

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

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

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

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

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

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

Windows) (最大长度: 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。 仅当虚拟机上没有扩展时,才能将其设置为 False。 bool
computerName 指定虚拟机的主机 OS 名称。 创建 VM 后,无法更新此名称。 Windows) (最大长度: 15 个字符。 Linux) 最大 (长度: 64 个字符。 有关命名约定和限制,请参阅 Azure 基础结构服务实现指南 字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。 注意:请勿在 customData 属性中传递任何机密或密码。 创建 VM 后,无法更新此属性。 属性“customData”将传递给 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据。 有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM 字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。 有关支持的 Linux 分发版的列表,请参阅 Linux on Azure-Endorsed Distributions LinuxConfiguration
requireGuestProvisionSignal 必须设置为 True 或省略的可选属性。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
enableVMAgentPlatformUpdates 指示是否为 Linux 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Linux 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 LinuxVMGuestPatchAutomaticByPlatformSettings
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

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

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

LinuxVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够在不意外升级的情况下计划修补 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
'IfRequired'
“从不”
“未知”

SshConfiguration

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

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。 若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。 字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

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

VaultCertificate

名称 说明
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。 对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,X509 证书文件的文件名 <为 UppercaseThumbprint.crt>, <私钥的文件名为 UppercaseThumbprint.prv>。 这两个文件都采用 .pem 格式。 字符串
certificateUrl 这是已作为机密上传到密钥保管库的证书的 URL。 若要向密钥保管库添加机密,请参阅将密钥或机密添加到密钥保管库。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象以 UTF-8 编码:

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

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。 对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。 bool
enableVMAgentPlatformUpdates 指示是否为 Windows 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Windows 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 WindowsVMGuestPatchAutomaticByPlatformSettings
enableHotpatching 使客户无需重新启动即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,其中 OrchestrationMode 为灵活。

可能的值为:

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

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

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

WindowsVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够在不意外升级的情况下计划修补 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
'IfRequired'
“从不”
“未知”

WinRMConfiguration

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

WinRMListener

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

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

ScheduledEventsProfile

名称 说明
osImageNotificationProfile 指定与 OS 映像计划事件相关的配置。 OSImageNotificationProfile
terminateNotificationProfile 指定与终止计划事件相关的配置。 TerminateNotificationProfile

OSImageNotificationProfile

名称 说明
enable 指定是启用或禁用 OS 映像计划事件。 bool
notBeforeTimeout 重置映像或升级其 OS 的虚拟机可能需要批准 OS 映像计划事件的时间长度,然后才能自动批准该事件 (超时) 。 配置以 ISO 8601 格式指定,值必须为 15 分钟 (PT15M) 字符串

TerminateNotificationProfile

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

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 默认行为为:除非资源的此属性设置为 true,否则将禁用主机加密。 bool
encryptionIdentity 指定 ADE 用于获取 keyvault 操作的访问令牌的托管标识。 EncryptionIdentity
proxyAgentSettings 指定创建虚拟机时的 ProxyAgent 设置。 最低 api 版本:2023-09-01。 ProxyAgentSettings
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定的值才能启用 UefiSettings。 默认行为为:除非设置了此属性,否则不会启用 UefiSettings。 “ConfidentialVM”
'TrustedLaunch'
uefiSettings 指定创建虚拟机时使用的安全设置,例如安全启动和 vTPM。 最低 API 版本:2020-12-01。 UefiSettings

EncryptionIdentity

名称 说明
userAssignedIdentityResourceId 指定与 VM 关联的用户标识之一的 ARM 资源 ID。 字符串

ProxyAgentSettings

名称 说明
enabled 指定是在虚拟机规模集还是虚拟机规模集上启用 ProxyAgent 功能。 bool
keyIncarnationId 增加此属性的值允许用户重置用于保护来宾和主机之间的信道的密钥。 int
mode 指定启用该功能时 ProxyAgent 将执行的模式。 ProxyAgent 将开始审核或监视,但不会在审核模式下对主机终结点的请求强制实施访问控制,而在“强制”模式下,将强制实施访问控制。 默认值为“强制模式”。 “Audit”
“强制”

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 最低 API 版本:2020-12-01。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 最低 API 版本:2020-12-01。 bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD DataDisk[]
diskControllerType 指定为 VM 配置的磁盘控制器类型。 注意: 如果未指定,则根据操作系统磁盘的功能和指定的最低 API 版本中的 VM 大小,创建“hyperVGeneration”设置为 V2 的虚拟机时,此属性将设置为默认磁盘控制器类型。 在更新 VM 的磁盘控制器类型之前,需要解除分配 VM,除非你在 VM 配置中更新 VM 大小,以隐式解除分配并重新分配 VM。 最低 API 版本:2022-08-01。 “NVMe”
“SCSI”
imageReference 指定要使用的映像的相关信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 对于标准存储,默认行为为: 无。高级存储的 ReadOnly。 “None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的 plan 元素。 “附加”
“空”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离数据磁盘。 可能的值为: Delete。 如果使用此值,则删除 VM 时会删除数据磁盘。 分离。 如果使用此值,则删除 VM 后会保留数据磁盘。 默认值设置为 Detach “Delete”
“分离”
detachOption 指定要在分离磁盘时使用的分离行为或已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach。 detachOption: ForceDetach 仅适用于托管数据磁盘。 如果数据磁盘的上一次分离尝试由于虚拟机意外故障而未完成,并且磁盘仍未释放,请使用强制分离作为最后手段,从 VM 中强行分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。 此功能仍处于预览 模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘更新到BeDetached 到“true”,同时设置 detachOption:“ForceDetach”。 “ForceDetach”
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

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

ManagedDiskParameters

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

DiskEncryptionSetParameters

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

VMDiskSecurityProfile

名称 说明
diskEncryptionSet 指定用于客户托管密钥加密的机密 VM OS 磁盘和 VMGuest Blob 的托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
securityEncryptionType 指定托管磁盘的 EncryptionType。 它设置为 DiskWithVMGuestState 以加密托管磁盘和 VMGuestState blob,VMGuestStateOnly 仅加密 VMGuestState blob,设置为 NonPersistedTPM 以不保留 VMGuestState blob 中的固件状态。 注意: 只能为机密 VM 设置它。 “DiskWithVMGuestState”
“NonPersistedTPM”
“VMGuestStateOnly”

ImageReference

名称 说明
communityGalleryImageId 指定了 vm 部署的社区库映像唯一 ID。 这可以从社区库映像 GET 调用中提取。 string
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和内部版本是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“最新”,VM 映像也不会在部署后自动更新,即使新版本可用。 请不要对库映像部署使用字段“version”,库映像应始终使用“id”字段进行部署,若要使用库映像的“最新”版本,只需在“id”字段中设置“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleryName}/images/{imageName}”。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 对于标准存储,默认行为为: 无。高级存储的 ReadOnly。 “None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的 plan 元素。 “附加”
“空”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离 OS 磁盘。 可能的值为: Delete。 如果使用此值,则会在删除 VM 时删除 OS 磁盘。 分离。 如果使用此值,则删除 VM 后,OS 磁盘将保留。 默认值设置为 Detach。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。 “Delete”
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
encryptionSettings 指定 OS 磁盘的加密设置。 最低 API 版本:2015-06-15。 DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 的类型。 可能的值为: Windows、Linux。 “Linux”
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘放置。 可能的值为: CacheDisk、ResourceDisk。 默认行为为:如果为 VM 大小配置了 缓存磁盘 ,则使用 ResourceDisk 。 请参阅 /azure/virtual-machines/windows/size 和 /azure/virtual-machines/linux/size 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。 “CacheDisk”
“ResourceDisk”

DiskEncryptionSettings

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

KeyVaultSecretReference

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

KeyVaultKeyReference

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

快速入门模板

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

模板 说明
部署简单的 Linux VM 并将专用 IP 更新为静态

部署到 Azure
此模板允许从市场使用 Ubuntu 部署简单的 Linux VM。 这会使用动态分配的 IP 地址在资源组位置部署 VNET、子网和 A1 大小的 VM,然后将其转换为静态 IP。
使用资源循环在可用性集中创建 VM

部署到 Azure
使用资源循环在可用性集中创建 2-5 个 VM。 VM 可以是 Unbuntu 或 Windows,最多有 5 个 VM,因为此示例使用单个 storageAccount
使用托管磁盘的多 VM 模板

部署到 Azure
此模板将创建 N 个具有托管磁盘、公共 IP 和网络接口的 VM。 它将在单个可用性集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
在 Windows VM 上安装文件

部署到 Azure
此模板允许你部署 Windows VM 并运行自定义 PowerShell 脚本,以在该 VM 上安装文件。
使用自定义数据部署虚拟机

部署到 Azure
使用此模板可以创建一个虚拟机,其中包含向下传递到 VM 的自定义数据。 此模板还部署存储帐户、虚拟网络、公共 IP 地址和网络接口。
使用 诊断 部署高级 Windows VM

部署到 Azure
此模板允许你使用 Windows 版本的几个不同选项(使用最新修补的版本)部署高级 Windows VM。
在不同的资源组的 VNET 中创建 VM

部署到 Azure
此模板在不同的资源组中的 VNET 中创建 VM
将 VM 加入现有域

部署到 Azure
此模板演示了将域加入到云中的专用 AD 域。
使用动态选择的数据磁盘创建 VM

部署到 Azure
此模板允许用户选择要添加到 VM 的数据磁盘数。
从 EfficientIP VHD 创建 VM

部署到 Azure
此模板从 EfficientIP VHD 创建 VM,并允许将其连接到现有 VNET,该 VNET 可以驻留在另一个资源组中,然后是虚拟机
从用户映像创建 VM

部署到 Azure
此模板允许你从用户映像创建虚拟机。 此模板还部署虚拟网络、公共 IP 地址和网络接口。
从通用 VHD 在新的或现有的 vnet 中创建 VM

部署到 Azure
此模板从通用 VHD 创建 VM,并允许将其连接到新的或现有的 VNET,该 VNET 可以驻留在虚拟机以外的另一个资源组中
CentOS/UbuntuServer 自动动态磁盘 & Docker 1.12 (cs)

部署到 Azure
这是用于创建单个实例 CentOS 7.2/7.1/6.5 或 Ubuntu Server 16.04.0-LTS 的常用模板,其中包含可配置的数据磁盘数 (可配置大小) 。 门户参数中最多可以提及 16 个磁盘,每个磁盘的最大大小应小于 1023 GB。 MDADM RAID0 阵列已自动装载,在重启后会继续运行。 最新的 Docker 1.12 (cs3) (Swarm) 、docker-compose 1.9.0 & docker-machine 0.8.2 可供用户 azure-cli 作为 docker 容器自动运行使用。 此单实例模板是 HPC/GPU 群集模板的分支
具有串行输出的 Linux VM

部署到 Azure
此模板创建一个简单的 Linux VM,其中包含最少的参数和配置为输出到存储的串行/控制台
使用监视和诊断部署简单的 Windows VM

部署到 Azure
通过此模板,可以部署简单的 Windows VM 以及 诊断 扩展,以便对 VM 进行监视和诊断
使用 MSI 部署 Linux 或 Windows VM

部署到 Azure
此模板允许使用托管服务标识部署 Linux 或 Windows VM。
Azure 上的 Terraform

部署到 Azure
此模板允许将 Terraform 工作站部署为具有 MSI 的 Linux VM。
具有 MSI 访问存储的 Linux VM

部署到 Azure
此模板部署具有系统分配的托管标识的 Linux VM,该标识有权访问不同资源组中的存储帐户。
从包含 4 个空数据磁盘的 Windows 映像创建 VM

部署到 Azure
此模板允许你从指定的映像创建 Windows 虚拟机。 它还附加 4 个空数据磁盘。 请注意,可以指定空数据磁盘的大小。
部署具有多个 IP 的 VM

部署到 Azure
此模板允许部署具有 3 个 IP 配置的 VM。 此模板将部署名为 myVM1 的 Linux/Windows VM,其中包含 3 个 IP 配置: IPConfig-1IPConfig-2IPConfig-3
使用多个 NIC (Ubuntu) 部署 Linux VM

部署到 Azure
此模板创建具有多个子网的 VNet,并部署具有多个 NIC 的 Ubuntu VM
具有条件资源的虚拟机

部署到 Azure
此模板允许使用虚拟网络、存储和公共 IP 地址的新资源或现有资源部署 Linux VM。 它还允许在 SSH 和密码身份验证之间进行选择。 这些模板使用条件和逻辑函数来消除对嵌套部署的需求。
从现有 VHD 创建 VM 并将其连接到现有 VNET

部署到 Azure
此模板从 VHD (OS + 数据磁盘) 创建 VM,并允许将其连接到可以驻留在另一个资源组中的现有 VNET,然后是虚拟机
将证书推送到 Windows VM

部署到 Azure
将证书推送到 Windows VM。
使用 密钥保管库 保护 VM 密码

部署到 Azure
此模板允许通过检索存储在密钥保管库中的密码来部署简单的 Windows VM。 因此,密码永远不会以纯文本形式放入模板参数文件中
在资源组位置部署简单的 FreeBSD VM

部署到 Azure
此模板允许使用 FreeBSD 版本的几个不同选项(使用最新修补的版本)部署简单的 FreeBSD VM。 这会部署在 D1 VM 大小的资源组位置中。
部署简单的 Ubuntu Linux VM 18.04-LTS

部署到 Azure
此模板使用 VM 的几个选项部署 Ubuntu Server。 可以提供 VM 名称、OS 版本、VM 大小、管理员用户名和密码。 默认情况下,VM 大小为 Standard_B2s,O.S.版本为 18.04-LTS。
部署具有加速网络的简单 Linux VM

部署到 Azure
此模板允许使用具有最新修补版本的 Ubuntu 版本 18.04-LTS 部署具有加速网络的简单 Linux VM。 这会在资源组位置部署D3_v2大小的 VM,并返回 VM 的 FQDN。
Red Hat Enterprise Linux VM (RHEL 7.8)

部署到 Azure
此模板将部署 Red Hat Enterprise Linux VM (RHEL 7.8) ,使用所选资源组位置中标准 D1 VM 上所选版本的即用即付 RHEL VM 映像,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
Red Hat Enterprise Linux VM (RHEL 7.8 非托管)

部署到 Azure
此模板将使用所选资源组位置中标准A1_v2 VM 上所选版本的即用即付 RHEL VM 映像, (RHEL 7.8) 部署 Red Hat Enterprise Linux VM,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
SUSE Linux Enterprise Server VM (SLES 12)

部署到 Azure
通过此模板,可以使用所选资源组位置中标准 D1 VM 上所选版本的即用即付 SLES VM 映像, (SLES 12) 部署 SUSE Linux Enterprise Server VM,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
部署简单的 Windows VM

部署到 Azure
此模板允许使用 Windows 版本的几个不同选项(使用最新修补的版本)部署简单的 Windows VM。 这会在资源组位置部署 A2 大小的 VM,并返回 VM 的 FQDN。
使用 Visual Studio 部署 Windows Server VM

部署到 Azure
此模板使用 Visual Code Studio Community 2019 部署 Windows Server VM,其中包含一些 VM 选项。 可以提供 VM 的名称、管理员用户名和密码。
将 VM 部署到可用性区域

部署到 Azure
此模板允许使用最新修补版本 (Windows 或 Ubuntu) 部署简单的 VM。 这会在指定的位置部署A2_v2大小的 VM,并返回 VM 的 FQDN。
从自定义 VHD 在新的或现有的 vnet 中创建 VM

部署到 Azure
此模板从专用 VHD 创建 VM,并允许将其连接到可以驻留在虚拟机以外的其他资源组中的新 VNET 或现有 VNET
带自动备份的 SQL Server 2014 SP2 Enterprise

部署到 Azure
此模板将创建启用了自动备份功能的 SQL Server 2014 SP2 企业版
具有自动修补的 SQL Server 2014 SP1 Enterprise

部署到 Azure
此模板将创建启用了自动修补功能的 SQL Server 2014 SP1 企业版。
SQL Server 2014 SP1 Enterprise with Azure 密钥保管库

部署到 Azure
此模板将创建启用了 Azure 密钥保管库 集成功能的 SQL Server 2014 SP1 Enterprise 版本。
使用 SSH rsa 公钥部署虚拟机

部署到 Azure
此模板允许使用 SSH rsa 公钥创建虚拟机
部署带有标记的简单 Windows VM

部署到 Azure
此模板将部署D2_v3 Windows VM、NIC、存储帐户、虚拟网络、公共 IP 地址和网络安全组。 标记对象在变量中创建,并将应用于所有资源(如果适用)。
部署支持受信任启动的 Linux 虚拟机

部署到 Azure
此模板允许你使用 Linux 版本的几个不同选项(使用最新修补的版本)部署支持受信任启动的 Linux 虚拟机。 如果启用 Secureboot 和 vTPM,则会在 VM 上安装来宾证明扩展。 此扩展将通过云执行远程 证明 。 默认情况下,这会在资源组位置部署Standard_D2_v3大小的虚拟机,并返回虚拟机的 FQDN。
部署支持受信任启动的 Windows 虚拟机

部署到 Azure
此模板允许你使用 Windows 版本的几个不同选项(使用最新修补的版本)部署支持启动的受信任 Windows 虚拟机。 如果启用 Secureboot 和 vTPM,则会在 VM 上安装来宾证明扩展。 此扩展将通过云执行远程 证明 。 默认情况下,这会在资源组位置部署Standard_D2_v3大小的虚拟机,并返回虚拟机的 FQDN。
使用用户数据部署虚拟机

部署到 Azure
此模板允许创建一个虚拟机,其中包含将用户数据向下传递到 VM。 此模板还部署虚拟网络、公共 IP 地址和网络接口。
使用 Windows Admin Center 扩展部署 Windows VM

部署到 Azure
此模板允许部署具有 Windows Admin Center 扩展的 Windows VM,以便直接从 Azure 门户管理 VM。
具有 Azure 安全基线的 Windows VM

部署到 Azure
该模板使用公共 IP 地址在新虚拟网络中创建运行 Windows Server 的虚拟机。 部署计算机后,将安装来宾配置扩展并应用适用于 Windows Server 的 Azure 安全基线。 如果计算机的配置出现偏差,可以通过再次部署模板来重新应用设置。
部署具有可变数量的数据磁盘的 Windows VM

部署到 Azure
此模板允许部署简单的 VM,并在部署时使用 参数指定数据磁盘数。 请注意,数据磁盘的数量和大小受 VM 大小的约束。 此示例的 VM 大小Standard_DS4_v2,默认值为 16 个数据磁盘。
使用 SSH 的 Windows Server VM

部署到 Azure
部署启用了开放 SSH 的单个 Windows VM,以便可以使用基于密钥的身份验证通过 SSH 进行连接。
创建数据管理网关并在 Azure VM 上安装

部署到 Azure
此模板部署虚拟机并创建可行的数据管理网关
具有 RDP 端口的虚拟机

部署到 Azure
创建虚拟机并为负载均衡器中的 VM 的 RDP 创建 NAT 规则
创建具有多个空 StandardSSD_LRS 数据磁盘的 VM

部署到 Azure
此模板允许你从指定的映像创建 Windows 虚拟机。 默认情况下,它还附加多个空的 StandardSSD 数据磁盘。 请注意,可以指定 (Standard_LRS 大小和存储类型,StandardSSD_LRS和Premium_LRS) 空数据磁盘。
Azure VM 上的自承载Integration Runtime

部署到 Azure
此模板创建自承载集成运行时并将其注册到 Azure 虚拟机上
将多个 VM 添加到虚拟机规模集中

部署到 Azure
此模板将创建 N 个具有托管磁盘、公共 IP 和网络接口的 VM。 它将在灵活业务流程模式下的虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
在 ILB 后面部署具有 Linux VM 的 VM 规模集

部署到 Azure
此模板允许使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署 Linux VM 的 VM 规模集。 这些 VM 位于具有用于 SSH 连接的 NAT 规则的内部负载均衡器后面。

ARM 模板资源定义

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

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

资源格式

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

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2023-09-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "extendedLocation": {
    "name": "string",
    "type": "EdgeZone"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {},
      "{customized property}": {}
    }
  },
  "plan": {
    "name": "string",
    "product": "string",
    "promotionCode": "string",
    "publisher": "string"
  },
  "properties": {
    "additionalCapabilities": {
      "hibernationEnabled": "bool",
      "ultraSSDEnabled": "bool"
    },
    "applicationProfile": {
      "galleryApplications": [
        {
          "configurationReference": "string",
          "enableAutomaticUpgrade": "bool",
          "order": "int",
          "packageReferenceId": "string",
          "tags": "string",
          "treatFailureAsDeploymentFailure": "bool"
        }
      ]
    },
    "availabilitySet": {
      "id": "string"
    },
    "billingProfile": {
      "maxPrice": "[json('decimal-as-string')]"
    },
    "capacityReservation": {
      "capacityReservationGroup": {
        "id": "string"
      }
    },
    "diagnosticsProfile": {
      "bootDiagnostics": {
        "enabled": "bool",
        "storageUri": "string"
      }
    },
    "evictionPolicy": "string",
    "extensionsTimeBudget": "string",
    "hardwareProfile": {
      "vmSize": "string",
      "vmSizeProperties": {
        "vCPUsAvailable": "int",
        "vCPUsPerCore": "int"
      }
    },
    "host": {
      "id": "string"
    },
    "hostGroup": {
      "id": "string"
    },
    "licenseType": "string",
    "networkProfile": {
      "networkApiVersion": "2020-11-01",
      "networkInterfaceConfigurations": [
        {
          "name": "string",
          "properties": {
            "auxiliaryMode": "string",
            "auxiliarySku": "string",
            "deleteOption": "string",
            "disableTcpStateTracking": "bool",
            "dnsSettings": {
              "dnsServers": [ "string" ]
            },
            "dscpConfiguration": {
              "id": "string"
            },
            "enableAcceleratedNetworking": "bool",
            "enableFpga": "bool",
            "enableIPForwarding": "bool",
            "ipConfigurations": [
              {
                "name": "string",
                "properties": {
                  "applicationGatewayBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "applicationSecurityGroups": [
                    {
                      "id": "string"
                    }
                  ],
                  "loadBalancerBackendAddressPools": [
                    {
                      "id": "string"
                    }
                  ],
                  "primary": "bool",
                  "privateIPAddressVersion": "string",
                  "publicIPAddressConfiguration": {
                    "name": "string",
                    "properties": {
                      "deleteOption": "string",
                      "dnsSettings": {
                        "domainNameLabel": "string",
                        "domainNameLabelScope": "string"
                      },
                      "idleTimeoutInMinutes": "int",
                      "ipTags": [
                        {
                          "ipTagType": "string",
                          "tag": "string"
                        }
                      ],
                      "publicIPAddressVersion": "string",
                      "publicIPAllocationMethod": "string",
                      "publicIPPrefix": {
                        "id": "string"
                      }
                    },
                    "sku": {
                      "name": "string",
                      "tier": "string"
                    }
                  },
                  "subnet": {
                    "id": "string"
                  }
                }
              }
            ],
            "networkSecurityGroup": {
              "id": "string"
            },
            "primary": "bool"
          }
        }
      ],
      "networkInterfaces": [
        {
          "id": "string",
          "properties": {
            "deleteOption": "string",
            "primary": "bool"
          }
        }
      ]
    },
    "osProfile": {
      "adminPassword": "string",
      "adminUsername": "string",
      "allowExtensionOperations": "bool",
      "computerName": "string",
      "customData": "string",
      "linuxConfiguration": {
        "disablePasswordAuthentication": "bool",
        "enableVMAgentPlatformUpdates": "bool",
        "patchSettings": {
          "assessmentMode": "string",
          "automaticByPlatformSettings": {
            "bypassPlatformSafetyChecksOnUserSchedule": "bool",
            "rebootSetting": "string"
          },
          "patchMode": "string"
        },
        "provisionVMAgent": "bool",
        "ssh": {
          "publicKeys": [
            {
              "keyData": "string",
              "path": "string"
            }
          ]
        }
      },
      "requireGuestProvisionSignal": "bool",
      "secrets": [
        {
          "sourceVault": {
            "id": "string"
          },
          "vaultCertificates": [
            {
              "certificateStore": "string",
              "certificateUrl": "string"
            }
          ]
        }
      ],
      "windowsConfiguration": {
        "additionalUnattendContent": [
          {
            "componentName": "Microsoft-Windows-Shell-Setup",
            "content": "string",
            "passName": "OobeSystem",
            "settingName": "string"
          }
        ],
        "enableAutomaticUpdates": "bool",
        "enableVMAgentPlatformUpdates": "bool",
        "patchSettings": {
          "assessmentMode": "string",
          "automaticByPlatformSettings": {
            "bypassPlatformSafetyChecksOnUserSchedule": "bool",
            "rebootSetting": "string"
          },
          "enableHotpatching": "bool",
          "patchMode": "string"
        },
        "provisionVMAgent": "bool",
        "timeZone": "string",
        "winRM": {
          "listeners": [
            {
              "certificateUrl": "string",
              "protocol": "string"
            }
          ]
        }
      }
    },
    "platformFaultDomain": "int",
    "priority": "string",
    "proximityPlacementGroup": {
      "id": "string"
    },
    "scheduledEventsProfile": {
      "osImageNotificationProfile": {
        "enable": "bool",
        "notBeforeTimeout": "string"
      },
      "terminateNotificationProfile": {
        "enable": "bool",
        "notBeforeTimeout": "string"
      }
    },
    "securityProfile": {
      "encryptionAtHost": "bool",
      "encryptionIdentity": {
        "userAssignedIdentityResourceId": "string"
      },
      "proxyAgentSettings": {
        "enabled": "bool",
        "keyIncarnationId": "int",
        "mode": "string"
      },
      "securityType": "string",
      "uefiSettings": {
        "secureBootEnabled": "bool",
        "vTpmEnabled": "bool"
      }
    },
    "storageProfile": {
      "dataDisks": [
        {
          "caching": "string",
          "createOption": "string",
          "deleteOption": "string",
          "detachOption": "ForceDetach",
          "diskSizeGB": "int",
          "image": {
            "uri": "string"
          },
          "lun": "int",
          "managedDisk": {
            "diskEncryptionSet": {
              "id": "string"
            },
            "id": "string",
            "securityProfile": {
              "diskEncryptionSet": {
                "id": "string"
              },
              "securityEncryptionType": "string"
            },
            "storageAccountType": "string"
          },
          "name": "string",
          "toBeDetached": "bool",
          "vhd": {
            "uri": "string"
          },
          "writeAcceleratorEnabled": "bool"
        }
      ],
      "diskControllerType": "string",
      "imageReference": {
        "communityGalleryImageId": "string",
        "id": "string",
        "offer": "string",
        "publisher": "string",
        "sharedGalleryImageId": "string",
        "sku": "string",
        "version": "string"
      },
      "osDisk": {
        "caching": "string",
        "createOption": "string",
        "deleteOption": "string",
        "diffDiskSettings": {
          "option": "Local",
          "placement": "string"
        },
        "diskSizeGB": "int",
        "encryptionSettings": {
          "diskEncryptionKey": {
            "secretUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          },
          "enabled": "bool",
          "keyEncryptionKey": {
            "keyUrl": "string",
            "sourceVault": {
              "id": "string"
            }
          }
        },
        "image": {
          "uri": "string"
        },
        "managedDisk": {
          "diskEncryptionSet": {
            "id": "string"
          },
          "id": "string",
          "securityProfile": {
            "diskEncryptionSet": {
              "id": "string"
            },
            "securityEncryptionType": "string"
          },
          "storageAccountType": "string"
        },
        "name": "string",
        "osType": "string",
        "vhd": {
          "uri": "string"
        },
        "writeAcceleratorEnabled": "bool"
      }
    },
    "userData": "string",
    "virtualMachineScaleSet": {
      "id": "string"
    }
  },
  "zones": [ "string" ]
}

属性值

virtualMachines

名称 说明 Value
type 资源类型 “Microsoft.Compute/virtualMachines”
apiVersion 资源 API 版本 '2023-09-01'
name 资源名称 字符串 (必需)

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



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

Windows VM 不能包含句点或以连字符结尾。

Linux VM 不能以句点或连字符结尾。
location 资源位置 字符串 (必需)
标记 资源标记 标记名称和值的字典。 请参阅 模板中的标记
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
标识 虚拟机的标识(如果已配置)。 VirtualMachineIdentity
plan 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 描述虚拟机的属性。 VirtualMachineProperties
zones 虚拟机区域。 string[]

ExtendedLocation

名称 说明
name 扩展位置的名称。 字符串
type 扩展位置的类型。 “EdgeZone”

VirtualMachineIdentity

名称 说明 Value
type 用于虚拟机的标识类型。 类型“SystemAssigned ,UserAssigned”包含隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机中删除任何标识。 “None”
“SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned”
userAssignedIdentities 与虚拟机关联的用户标识列表。 用户标识字典密钥引用将是 ARM 资源 ID,格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 UserAssignedIdentities

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentitiesValue
{customized property} UserAssignedIdentitiesValue

UserAssignedIdentitiesValue

此对象不包含部署期间要设置的任何属性。 所有属性均为 ReadOnly。

计划

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

VirtualMachineProperties

名称 说明
additionalCapabilities 指定在虚拟机上启用或禁用的其他功能。 AdditionalCapabilities
applicationProfile 指定应提供给 VM/VMSS 的库应用程序。 ApplicationProfile
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述。 有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新。 目前,只能在创建时将 VM 添加到可用性集。 要向其添加 VM 的可用性集应位于与可用性集资源相同的资源组下。 无法将现有 VM 添加到可用性集。 此属性不能与非 null properties.virtualMachineScaleSet 引用一起存在。 SubResource
billingProfile 指定 Azure 现成虚拟机的计费相关详细信息。 最低 API 版本:2019-03-01。 BillingProfile
capacityReservation 指定有关用于分配虚拟机的容量预留的信息。 最低 API 版本:2021-04-01。 CapacityReservationProfile
diagnosticsProfile 指定启动诊断设置状态。 最低 API 版本:2015-06-15。 DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure 现成规模集的逐出策略。 对于 Azure 现成虚拟机,支持“Deallocate”和“Delete”,最低 api 版本为 2019-03-01。 对于 Azure 现成规模集,支持“Deallocate”和“Delete”,最低 api 版本为 2017-10-30-preview。 “Deallocate”
'Delete'
extensionsTimeBudget 指定为所有扩展分配的启动时间。 持续时间应介于 15 分钟到 120 分钟之间, (包括) ,并且应以 ISO 8601 格式指定。 默认值为 90 分钟 (PT1H30M) 。 最低 API 版本:2020-06-01。 字符串
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
host 指定有关虚拟机所在的专用主机的信息。 最低 API 版本:2018-10-01。 SubResource
hostGroup 指定有关虚拟机所在的专用主机组的信息。 注意: 用户不能同时指定 host 和 hostGroup 属性。 最低 API 版本:2020-06-01。 SubResource
LicenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

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

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定创建虚拟机时使用的操作系统设置。 预配 VM 后,无法更改某些设置。 OSProfile
platformFaultDomain 指定要在其中创建虚拟机的规模集逻辑容错域。 默认情况下,虚拟机会自动分配给容错域,该容错域最好地在可用容错域中保持平衡。 仅当设置了此虚拟机的“virtualMachineScaleSet”属性时,这才适用。 引用的虚拟机规模集的“platformFaultDomainCount”必须大于 1。 创建虚拟机后,无法更新此属性。 可以在虚拟机实例视图中查看容错域分配。 最低 api 版本:2020\12\01。 int
priority 指定虚拟机的优先级。 最低 API 版本:2019-03-01 'Low'
'Regular'
“Spot”
proximityPlacementGroup 指定虚拟机应分配到的邻近放置组的相关信息。 最低 API 版本:2018-04-01。 SubResource
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。 最低 API 版本:2021-03-01。 字符串
virtualMachineScaleSet 指定虚拟机应分配到的虚拟机规模集的相关信息。 同一虚拟机规模集中指定的虚拟机将分配到不同的节点,以最大程度地提高可用性。 目前,VM 只能在创建时添加到虚拟机规模集。 无法将现有 VM 添加到虚拟机规模集。 此属性不能与非 null properties.availabilitySet 引用一起存在。 最低 api 版本:2019?03?01。 SubResource

AdditionalCapabilities

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

ApplicationProfile

名称 说明
galleryApplications 指定应提供给 VM/VMSS 的库应用程序 VMGalleryApplication[]

VMGalleryApplication

名称 说明
configurationReference 可选,指定 Azure Blob 的 URI,该 URI 将替换包的默认配置(如果提供) 字符串
enableAutomaticUpgrade 如果设置为 true,则当 PIR/SIG 中提供了新的库应用程序版本时,它将针对 VM/VMSS 自动更新 bool
顺序 可选,指定包的安装顺序 int
packageReferenceId 指定 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} 格式的 GalleryApplicationVersion 资源 ID 字符串 (必需)
标记 可选,指定用于更多泛型上下文的传递值。 字符串
treatFailureAsDeploymentFailure 可选,如果为 true,则 VmApplication 中任何操作的任何失败都将使部署失败 bool

SubResource

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

BillingProfile

名称 说明
maxPrice 指定愿意为 Azure 现成 VM/VMSS 支付的最高价格。 此价格以美元为单位。

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

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

可能的值为:

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

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

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

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

CapacityReservationProfile

名称 说明
capacityReservationGroup 指定容量预留组资源 ID,该 ID 用于分配虚拟机或规模集 VM 实例,前提是已预留足够的容量。 有关更多详细信息,请参阅 https://aka.ms/CapacityReservation SubResource

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。 注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。 可以轻松查看控制台日志的输出。 Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。 BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。 如果在启用启动诊断时未指定 storageUri,则将使用托管存储。 字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。 枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。 获取可用大小列表的建议方法是使用以下 API: 列出可用性集中的所有可用虚拟机大小列出区域中所有可用的虚拟机大小列出所有可用虚拟机大小以便调整大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小。 可用的 VM 大小取决于区域和可用性集。 “Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。 此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 有关更多详细信息,请按照 VM 自定义 中的说明进行操作。 VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。 如果未在请求正文中指定此属性,则默认行为是将其设置为可用于该 VM 大小的 vCPU 值,该值在 列出区域中所有可用的虚拟机大小的 API 响应中公开。 int
vCPUPerCore 指定 vCPU 与物理核心的比率。 如果未在请求正文中指定此属性,则对于 列出区域中所有可用虚拟机大小的 API 响应中公开的 VM 大小,默认行为设置为 vCPUsPerCore 的值。 将此属性设置为 1 还意味着禁用超线程。 int

NetworkProfile

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

VirtualMachineNetworkInterfaceConfiguration

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

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
auxiliaryMode 指定是否为网络接口资源启用辅助模式。 'AcceleratedConnections'
“浮动”
“None”
auxiliarySku 指定是否为网络接口资源启用辅助 SKU。 “A1”
“A2”
“A4”
“A8”
“None”
deleteOption 指定删除 VM 时网络接口会发生什么情况 'Delete'
“分离”
disableTcpStateTracking 指定是否为 tcp 状态跟踪禁用网络接口。 bool
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

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

VirtualMachineNetworkInterfaceIPConfiguration

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

VirtualMachineNetworkInterfaceIPConfigurationPropert...

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

VirtualMachinePublicIPAddressConfiguration

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

VirtualMachinePublicIPAddressConfigurationProperties

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

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)
domainNameLabelScope 将创建的 PublicIPAddress 资源的域名标签范围。 生成的名称标签是根据域名标签范围和 vm 网络配置文件唯一 ID 将哈希域名标签与策略连接在一起。 “NoReuse”
“ResourceGroupReuse”
“SubscriptionReuse”
“TenantReuse”

VirtualMachineIpTag

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

PublicIPAddressSku

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

NetworkInterfaceReference

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

NetworkInterfaceReferenceProperties

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

OSProfile

名称 说明
adminPassword 指定管理员帐户的密码。

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

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

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

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

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

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

有关重置密码的信息,请参阅 如何在 Windows VM 中重置远程桌面服务或其登录密码

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

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

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

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

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

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

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

Windows) (最大长度: 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。 仅当虚拟机上没有扩展时,才能将其设置为 False。 bool
computerName 指定虚拟机的主机 OS 名称。 创建 VM 后,无法更新此名称。 Windows) (最大长度: 15 个字符。 Linux) 最大 (长度: 64 个字符。 有关命名约定和限制,请参阅 Azure 基础结构服务实现指南 字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。 注意:请勿在 customData 属性中传递任何机密或密码。 创建 VM 后,无法更新此属性。 属性“customData”将传递给 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据。 有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM 字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。 有关支持的 Linux 发行版的列表,请参阅 Linux on Azure-Endorsed Distributions LinuxConfiguration
requireGuestProvisionSignal 必须设置为 True 或省略的可选属性。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
enableVMAgentPlatformUpdates 指示是否为 Linux 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Linux 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 LinuxVMGuestPatchAutomaticByPlatformSettings
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

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

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

LinuxVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够在不意外升级的情况下计划修补 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
'IfRequired'
“从不”
“未知”

SshConfiguration

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

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。 若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。 字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

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

VaultCertificate

名称 说明
certificateStore 对于 Windows VM,指定应向其添加证书的虚拟机上的证书存储。 指定的证书存储隐式位于 LocalMachine 帐户中。 对于 Linux VM,证书文件位于 /var/lib/waagent 目录下,X509 证书文件的文件名 <为 UppercaseThumbprint.crt>, <私钥的文件名为 UppercaseThumbprint.prv>。 这两个文件都采用 .pem 格式。 字符串
certificateUrl 这是已作为机密上传到密钥保管库的证书的 URL。 若要向密钥保管库添加机密,请参阅将密钥或机密添加到密钥保管库。 在这种情况下,证书必须是以下 JSON 对象的 Base64 编码,该对象以 UTF-8 编码:

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

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。 对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。 bool
enableVMAgentPlatformUpdates 指示是否为 Windows 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Windows 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 WindowsVMGuestPatchAutomaticByPlatformSettings
enableHotpatching 使客户无需重新启动即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

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

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

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

WindowsVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够在不意外升级的情况下计划修补 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
'IfRequired'
“从不”
“未知”

WinRMConfiguration

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

WinRMListener

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

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

ScheduledEventsProfile

名称 说明
osImageNotificationProfile 指定与 OS 映像计划事件相关的配置。 OSImageNotificationProfile
terminateNotificationProfile 指定与终止计划事件相关的配置。 TerminateNotificationProfile

OSImageNotificationProfile

名称 说明
enable 指定是启用或禁用 OS 映像计划事件。 bool
notBeforeTimeout 重置映像或升级其 OS 的虚拟机可能需要批准 OS 映像计划事件的时间长度,然后才能自动批准该事件 (超时) 。 配置以 ISO 8601 格式指定,值必须为 15 分钟 (PT15M) 字符串

TerminateNotificationProfile

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

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 默认行为为:除非资源的此属性设置为 true,否则将禁用主机加密。 bool
encryptionIdentity 指定 ADE 用于获取 keyvault 操作的访问令牌的托管标识。 EncryptionIdentity
proxyAgentSettings 指定创建虚拟机时的 ProxyAgent 设置。 最低 api 版本:2023-09-01。 ProxyAgentSettings
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定的值才能启用 UefiSettings。 默认行为为:除非设置了此属性,否则不会启用 UefiSettings。 “ConfidentialVM”
'TrustedLaunch'
uefiSettings 指定创建虚拟机时使用的安全设置,例如安全启动和 vTPM。 最低 API 版本:2020-12-01。 UefiSettings

EncryptionIdentity

名称 说明
userAssignedIdentityResourceId 指定与 VM 关联的用户标识之一的 ARM 资源 ID。 字符串

ProxyAgentSettings

名称 说明
enabled 指定是否应在虚拟机或虚拟机规模集上启用 ProxyAgent 功能。 bool
keyIncarnationId 增加此属性的值可让用户重置用于保护来宾和主机之间的信道的密钥。 int
mode 指定启用该功能时 ProxyAgent 将执行的模式。 ProxyAgent 将开始审核或监视,但不会在审核模式下对主机终结点的请求强制实施访问控制,而在“强制”模式下,它将强制实施访问控制。 默认值为“强制模式”。 'Audit'
'Enforce'

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 最低 API 版本:2020-12-01。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 最低 API 版本:2020-12-01。 bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD DataDisk[]
diskControllerType 指定为 VM 配置的磁盘控制器类型。 注意: 如果未指定,则会将此属性设置为默认磁盘控制器类型,并且根据指定的最低 API 版本中操作系统磁盘的功能和 VM 大小创建“hyperVGeneration”设置为 V2 的虚拟机。 需要先解除分配 VM,然后再更新其磁盘控制器类型,除非更新 VM 配置中的 VM 大小,该配置会隐式解除分配并重新分配 VM。 最低 API 版本:2022-08-01。 “NVMe”
'SCSI'
imageReference 指定有关要使用的映像的信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 默认行为为: 对于标准存储,无。高级存储的 ReadOnly。 “None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的计划元素。 “Attach”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是应分离数据磁盘。 可能的值为: Delete。 如果使用此值,则会在删除 VM 时删除数据磁盘。 分离。 如果使用此值,则会在删除 VM 后保留数据磁盘。 默认值设置为 Detach 'Delete'
“分离”
detachOption 指定分离磁盘时要使用的分离行为,或者已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach。 detachOption: ForceDetach 仅适用于托管数据磁盘。 如果数据磁盘的上一次分离尝试由于虚拟机意外故障而未完成,并且磁盘仍未释放,请使用强制分离作为最后手段,从 VM 中强行分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。 此功能仍处于预览 模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘更新到BeDetached 到“true”,同时设置 detachOption:“ForceDetach”。 “ForceDetach”
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

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

ManagedDiskParameters

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

DiskEncryptionSetParameters

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

VMDiskSecurityProfile

名称 说明
diskEncryptionSet 指定用于客户托管密钥加密的机密 VM OS 磁盘和 VMGuest Blob 的托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
securityEncryptionType 指定托管磁盘的 EncryptionType。 它设置为 DiskWithVMGuestState 以加密托管磁盘和 VMGuestState blob,VMGuestStateOnly 仅加密 VMGuestState blob,设置为 NonPersistedTPM 以不保留 VMGuestState blob 中的固件状态。 注意: 只能为机密 VM 设置它。 “DiskWithVMGuestState”
“NonPersistedTPM”
“VMGuestStateOnly”

ImageReference

名称 说明
communityGalleryImageId 指定了 vm 部署的社区库映像唯一 ID。 这可以从社区库映像 GET 调用中提取。 string
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 “主要”、“次要”和“生成”是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“latest”,VM 映像也不会在部署后自动更新,即使新版本可用。 请不要对库映像部署使用字段“版本”,库映像应始终使用“id”字段进行部署,若要使用库映像的“最新”版本,只需在“id”字段中设置“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}”,无需版本输入。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 默认行为为: 对于标准存储,无。高级存储的 ReadOnly。 “None”
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的计划元素。 “Attach”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是应分离 OS 磁盘。 可能的值为: Delete。 如果使用此值,则会在删除 VM 时删除 OS 磁盘。 分离。 如果使用此值,则会在删除 VM 后保留 OS 磁盘。 默认值设置为 Detach。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。 'Delete'
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
encryptionSettings 指定 OS 磁盘的加密设置。 最低 API 版本:2015-06-15。 DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 类型。 可能的值包括: Windows、Linux。 'Linux'
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是否应在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 'Local'
放置 指定操作系统磁盘的临时磁盘位置。 可能的值包括: CacheDisk、ResourceDisk。 默认行为为:如果为 VM 大小配置了 CacheDisk ,则使用 ResourceDisk 。 请参阅 /azure/virtual-machines/windows/sizes 和 /azure/virtual-machines/linux/sizes 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。 'CacheDisk'
“ResourceDisk”

DiskEncryptionSettings

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

KeyVaultSecretReference

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

KeyVaultKeyReference

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

快速入门模板

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

模板 说明
部署简单的 Linux VM 并将专用 IP 更新为静态

部署到 Azure
此模板允许从市场使用 Ubuntu 部署简单的 Linux VM。 这会使用动态分配的 IP 地址在资源组位置部署 VNET、子网和 A1 大小的 VM,然后将其转换为静态 IP。
使用资源循环在可用性集中创建 VM

部署到 Azure
使用资源循环在可用性集中创建 2-5 个 VM。 VM 可以是 Unbuntu 或 Windows,最多有 5 个 VM,因为此示例使用单个 storageAccount
使用托管磁盘的多 VM 模板

部署到 Azure
此模板将创建 N 个具有托管磁盘、公共 IP 和网络接口的 VM。 它将在单个可用性集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
在 Windows VM 上安装文件

部署到 Azure
此模板允许你部署 Windows VM 并运行自定义 PowerShell 脚本,以在该 VM 上安装文件。
使用自定义数据部署虚拟机

部署到 Azure
使用此模板可以创建一个虚拟机,其中包含向下传递到 VM 的自定义数据。 此模板还部署存储帐户、虚拟网络、公共 IP 地址和网络接口。
使用 诊断 部署高级 Windows VM

部署到 Azure
此模板允许你使用 Windows 版本的几个不同选项(使用最新修补的版本)部署高级 Windows VM。
在不同的资源组的 VNET 中创建 VM

部署到 Azure
此模板在不同的资源组中的 VNET 中创建 VM
将 VM 加入现有域

部署到 Azure
此模板演示了将域加入到云中的专用 AD 域。
使用动态选择的数据磁盘创建 VM

部署到 Azure
此模板允许用户选择要添加到 VM 的数据磁盘数。
从 EfficientIP VHD 创建 VM

部署到 Azure
此模板从 EfficientIP VHD 创建 VM,并允许将其连接到现有 VNET,该 VNET 可以驻留在另一个资源组中,然后是虚拟机
从用户映像创建 VM

部署到 Azure
此模板允许你从用户映像创建虚拟机。 此模板还部署虚拟网络、公共 IP 地址和网络接口。
从通用 VHD 在新的或现有的 vnet 中创建 VM

部署到 Azure
此模板从通用 VHD 创建 VM,并允许将其连接到新的或现有的 VNET,该 VNET 可以驻留在虚拟机以外的另一个资源组中
CentOS/UbuntuServer 自动动态磁盘 & Docker 1.12 (cs)

部署到 Azure
这是用于创建单个实例 CentOS 7.2/7.1/6.5 或 Ubuntu Server 16.04.0-LTS 的常用模板,其中包含可配置的数据磁盘数 (可配置大小) 。 门户参数中最多可以提及 16 个磁盘,每个磁盘的最大大小应小于 1023 GB。 MDADM RAID0 阵列已自动装载,在重启后会继续运行。 最新的 Docker 1.12 (cs3) (Swarm) 、docker-compose 1.9.0 & docker-machine 0.8.2 可供用户 azure-cli 作为 docker 容器自动运行使用。 此单实例模板是 HPC/GPU 群集模板的分支
具有串行输出的 Linux VM

部署到 Azure
此模板创建一个简单的 Linux VM,其中包含最少的参数和配置为输出到存储的串行/控制台
使用监视和诊断部署简单的 Windows VM

部署到 Azure
通过此模板,可以部署简单的 Windows VM 以及 诊断 扩展,以便对 VM 进行监视和诊断
使用 MSI 部署 Linux 或 Windows VM

部署到 Azure
此模板允许使用托管服务标识部署 Linux 或 Windows VM。
Azure 上的 Terraform

部署到 Azure
此模板允许将 Terraform 工作站部署为具有 MSI 的 Linux VM。
具有 MSI 访问存储的 Linux VM

部署到 Azure
此模板部署具有系统分配的托管标识的 Linux VM,该标识有权访问不同资源组中的存储帐户。
从包含 4 个空数据磁盘的 Windows 映像创建 VM

部署到 Azure
此模板允许你从指定的映像创建 Windows 虚拟机。 它还附加 4 个空数据磁盘。 请注意,可以指定空数据磁盘的大小。
部署具有多个 IP 的 VM

部署到 Azure
此模板允许部署具有 3 个 IP 配置的 VM。 此模板将部署名为 myVM1 的 Linux/Windows VM,该 VM 具有 3 个 IP 配置: IPConfig-1IPConfig-2IPConfig-3
使用多个 NIC (Ubuntu) 部署 Linux VM

部署到 Azure
此模板创建具有多个子网的 VNet,并部署具有多个 NIC 的 Ubuntu VM
具有条件资源的虚拟机

部署到 Azure
此模板允许使用虚拟网络、存储和公共 IP 地址的新资源或现有资源部署 Linux VM。 它还允许在 SSH 和密码身份验证之间进行选择。 这些模板使用条件和逻辑函数来消除对嵌套部署的需求。
从现有 VHD 创建 VM 并将其连接到现有 VNET

部署到 Azure
此模板从 VHD (OS + 数据磁盘) 创建 VM,并允许将其连接到可以驻留在另一个资源组中的现有 VNET,然后是虚拟机
将证书推送到 Windows VM

部署到 Azure
将证书推送到 Windows VM。
使用 密钥保管库 保护 VM 密码

部署到 Azure
此模板允许通过检索存储在密钥保管库中的密码来部署简单的 Windows VM。 因此,密码永远不会以纯文本形式放入模板参数文件中
在资源组位置部署简单的 FreeBSD VM

部署到 Azure
此模板允许使用 FreeBSD 版本的几个不同选项(使用最新修补的版本)部署简单的 FreeBSD VM。 这会部署在 D1 VM 大小的资源组位置中。
部署简单的 Ubuntu Linux VM 18.04-LTS

部署到 Azure
此模板使用 VM 的几个选项部署 Ubuntu Server。 可以提供 VM 名称、OS 版本、VM 大小、管理员用户名和密码。 默认情况下,VM 大小为 Standard_B2s,O.S.版本为 18.04-LTS。
部署具有加速网络的简单 Linux VM

部署到 Azure
此模板允许使用具有最新修补版本的 Ubuntu 版本 18.04-LTS 部署具有加速网络的简单 Linux VM。 这会在资源组位置部署D3_v2大小的 VM,并返回 VM 的 FQDN。
Red Hat Enterprise Linux VM (RHEL 7.8)

部署到 Azure
此模板将部署 Red Hat Enterprise Linux VM (RHEL 7.8) ,使用所选资源组位置中标准 D1 VM 上所选版本的即用即付 RHEL VM 映像,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
Red Hat Enterprise Linux VM (RHEL 7.8 非托管)

部署到 Azure
此模板将使用所选资源组位置中标准A1_v2 VM 上所选版本的即用即付 RHEL VM 映像, (RHEL 7.8) 部署 Red Hat Enterprise Linux VM,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
SUSE Linux Enterprise Server VM (SLES 12)

部署到 Azure
通过此模板,可以使用所选资源组位置中标准 D1 VM 上所选版本的即用即付 SLES VM 映像, (SLES 12) 部署 SUSE Linux Enterprise Server VM,并附加一个附加到 VM 的 100 GiB 数据磁盘。 对此映像收取额外的费用 - 有关详细信息,请参阅 Azure VM 定价页。
部署简单的 Windows VM

部署到 Azure
此模板允许使用 Windows 版本的几个不同选项(使用最新修补的版本)部署简单的 Windows VM。 这会在资源组位置部署 A2 大小的 VM,并返回 VM 的 FQDN。
使用 Visual Studio 部署 Windows Server VM

部署到 Azure
此模板使用 Visual Code Studio Community 2019 部署 Windows Server VM,其中包含一些 VM 选项。 可以提供 VM 的名称、管理员用户名和密码。
将 VM 部署到可用性区域

部署到 Azure
此模板允许使用最新修补版本 (Windows 或 Ubuntu) 部署简单的 VM。 这会在指定的位置部署A2_v2大小的 VM,并返回 VM 的 FQDN。
从自定义 VHD 在新的或现有的 vnet 中创建 VM

部署到 Azure
此模板从专用 VHD 创建 VM,并允许将其连接到可以驻留在虚拟机以外的其他资源组中的新 VNET 或现有 VNET
带自动备份的 SQL Server 2014 SP2 Enterprise

部署到 Azure
此模板将创建启用了自动备份功能的 SQL Server 2014 SP2 企业版
具有自动修补的 SQL Server 2014 SP1 Enterprise

部署到 Azure
此模板将创建启用了自动修补功能的 SQL Server 2014 SP1 企业版。
SQL Server 2014 SP1 Enterprise with Azure 密钥保管库

部署到 Azure
此模板将创建启用了 Azure 密钥保管库 集成功能的 SQL Server 2014 SP1 Enterprise 版本。
使用 SSH rsa 公钥部署虚拟机

部署到 Azure
此模板允许使用 SSH rsa 公钥创建虚拟机
部署带有标记的简单 Windows VM

部署到 Azure
此模板将部署D2_v3 Windows VM、NIC、存储帐户、虚拟网络、公共 IP 地址和网络安全组。 标记对象在变量中创建,并将应用于所有资源(如果适用)。
部署支持受信任启动的 Linux 虚拟机

部署到 Azure
此模板允许你使用 Linux 版本的几个不同选项(使用最新修补的版本)部署支持受信任启动的 Linux 虚拟机。 如果启用 Secureboot 和 vTPM,则会在 VM 上安装来宾证明扩展。 此扩展将通过云执行远程 证明 。 默认情况下,这会在资源组位置部署Standard_D2_v3大小的虚拟机,并返回虚拟机的 FQDN。
部署支持受信任启动的 Windows 虚拟机

部署到 Azure
此模板允许你使用 Windows 版本的几个不同选项(使用最新修补的版本)部署支持启动的受信任 Windows 虚拟机。 如果启用 Secureboot 和 vTPM,则会在 VM 上安装来宾证明扩展。 此扩展将通过云执行远程 证明 。 默认情况下,这会在资源组位置部署Standard_D2_v3大小的虚拟机,并返回虚拟机的 FQDN。
使用用户数据部署虚拟机

部署到 Azure
此模板允许创建一个虚拟机,其中包含将用户数据向下传递到 VM。 此模板还部署虚拟网络、公共 IP 地址和网络接口。
使用 Windows Admin Center 扩展部署 Windows VM

部署到 Azure
此模板允许部署具有 Windows Admin Center 扩展的 Windows VM,以便直接从 Azure 门户管理 VM。
具有 Azure 安全基线的 Windows VM

部署到 Azure
该模板使用公共 IP 地址在新虚拟网络中创建运行 Windows Server 的虚拟机。 部署计算机后,将安装来宾配置扩展并应用适用于 Windows Server 的 Azure 安全基线。 如果计算机的配置出现偏差,可以通过再次部署模板来重新应用设置。
部署具有可变数量的数据磁盘的 Windows VM

部署到 Azure
此模板允许你部署简单的 VM,并使用 参数指定部署时的数据磁盘数。 请注意,数据磁盘的数量和大小受 VM 大小的约束。 此示例的 VM 大小Standard_DS4_v2,默认值为 16 个数据磁盘。
使用 SSH 的 Windows Server VM

部署到 Azure
部署启用了开放 SSH 的单个 Windows VM,以便可以使用基于密钥的身份验证通过 SSH 进行连接。
创建数据管理网关并在 Azure VM 上安装

部署到 Azure
此模板部署虚拟机并创建可行的数据管理网关
具有 RDP 端口的虚拟机

部署到 Azure
创建虚拟机并为负载均衡器中的 VM 的 RDP 创建 NAT 规则
创建具有多个空 StandardSSD_LRS 数据磁盘的 VM

部署到 Azure
此模板允许你从指定的映像创建 Windows 虚拟机。 默认情况下,它还附加多个空的 StandardSSD 数据磁盘。 请注意,可以指定 (Standard_LRS 大小和存储类型,StandardSSD_LRS和Premium_LRS) 空数据磁盘。
Azure VM 上的自承载Integration Runtime

部署到 Azure
此模板创建自承载集成运行时并将其注册到 Azure 虚拟机上
将多个 VM 添加到虚拟机规模集中

部署到 Azure
此模板将创建 N 个具有托管磁盘、公共 IP 和网络接口的 VM。 它将在灵活业务流程模式下的虚拟机规模集中创建 VM。 它们将在虚拟网络中预配,该虚拟网络也将作为部署的一部分创建
在 ILB 后面部署具有 Linux VM 的 VM 规模集

部署到 Azure
此模板允许使用最新修补版本的 Ubuntu Linux 15.10 或 14.04.4-LTS 部署 Linux VM 的 VM 规模集。 这些 VM 位于具有用于 SSH 连接的 NAT 规则的内部负载均衡器后面。

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

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

  • 资源组

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

资源格式

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/virtualMachines@2023-09-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      additionalCapabilities = {
        hibernationEnabled = bool
        ultraSSDEnabled = bool
      }
      applicationProfile = {
        galleryApplications = [
          {
            configurationReference = "string"
            enableAutomaticUpgrade = bool
            order = int
            packageReferenceId = "string"
            tags = "string"
            treatFailureAsDeploymentFailure = bool
          }
        ]
      }
      availabilitySet = {
        id = "string"
      }
      billingProfile = {
        maxPrice = "decimal-as-string"
      }
      capacityReservation = {
        capacityReservationGroup = {
          id = "string"
        }
      }
      diagnosticsProfile = {
        bootDiagnostics = {
          enabled = bool
          storageUri = "string"
        }
      }
      evictionPolicy = "string"
      extensionsTimeBudget = "string"
      hardwareProfile = {
        vmSize = "string"
        vmSizeProperties = {
          vCPUsAvailable = int
          vCPUsPerCore = int
        }
      }
      host = {
        id = "string"
      }
      hostGroup = {
        id = "string"
      }
      licenseType = "string"
      networkProfile = {
        networkApiVersion = "2020-11-01"
        networkInterfaceConfigurations = [
          {
            name = "string"
            properties = {
              auxiliaryMode = "string"
              auxiliarySku = "string"
              deleteOption = "string"
              disableTcpStateTracking = bool
              dnsSettings = {
                dnsServers = [
                  "string"
                ]
              }
              dscpConfiguration = {
                id = "string"
              }
              enableAcceleratedNetworking = bool
              enableFpga = bool
              enableIPForwarding = bool
              ipConfigurations = [
                {
                  name = "string"
                  properties = {
                    applicationGatewayBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    applicationSecurityGroups = [
                      {
                        id = "string"
                      }
                    ]
                    loadBalancerBackendAddressPools = [
                      {
                        id = "string"
                      }
                    ]
                    primary = bool
                    privateIPAddressVersion = "string"
                    publicIPAddressConfiguration = {
                      name = "string"
                      properties = {
                        deleteOption = "string"
                        dnsSettings = {
                          domainNameLabel = "string"
                          domainNameLabelScope = "string"
                        }
                        idleTimeoutInMinutes = int
                        ipTags = [
                          {
                            ipTagType = "string"
                            tag = "string"
                          }
                        ]
                        publicIPAddressVersion = "string"
                        publicIPAllocationMethod = "string"
                        publicIPPrefix = {
                          id = "string"
                        }
                      }
                      sku = {
                        name = "string"
                        tier = "string"
                      }
                    }
                    subnet = {
                      id = "string"
                    }
                  }
                }
              ]
              networkSecurityGroup = {
                id = "string"
              }
              primary = bool
            }
          }
        ]
        networkInterfaces = [
          {
            id = "string"
            properties = {
              deleteOption = "string"
              primary = bool
            }
          }
        ]
      }
      osProfile = {
        adminPassword = "string"
        adminUsername = "string"
        allowExtensionOperations = bool
        computerName = "string"
        customData = "string"
        linuxConfiguration = {
          disablePasswordAuthentication = bool
          enableVMAgentPlatformUpdates = bool
          patchSettings = {
            assessmentMode = "string"
            automaticByPlatformSettings = {
              bypassPlatformSafetyChecksOnUserSchedule = bool
              rebootSetting = "string"
            }
            patchMode = "string"
          }
          provisionVMAgent = bool
          ssh = {
            publicKeys = [
              {
                keyData = "string"
                path = "string"
              }
            ]
          }
        }
        requireGuestProvisionSignal = bool
        secrets = [
          {
            sourceVault = {
              id = "string"
            }
            vaultCertificates = [
              {
                certificateStore = "string"
                certificateUrl = "string"
              }
            ]
          }
        ]
        windowsConfiguration = {
          additionalUnattendContent = [
            {
              componentName = "Microsoft-Windows-Shell-Setup"
              content = "string"
              passName = "OobeSystem"
              settingName = "string"
            }
          ]
          enableAutomaticUpdates = bool
          enableVMAgentPlatformUpdates = bool
          patchSettings = {
            assessmentMode = "string"
            automaticByPlatformSettings = {
              bypassPlatformSafetyChecksOnUserSchedule = bool
              rebootSetting = "string"
            }
            enableHotpatching = bool
            patchMode = "string"
          }
          provisionVMAgent = bool
          timeZone = "string"
          winRM = {
            listeners = [
              {
                certificateUrl = "string"
                protocol = "string"
              }
            ]
          }
        }
      }
      platformFaultDomain = int
      priority = "string"
      proximityPlacementGroup = {
        id = "string"
      }
      scheduledEventsProfile = {
        osImageNotificationProfile = {
          enable = bool
          notBeforeTimeout = "string"
        }
        terminateNotificationProfile = {
          enable = bool
          notBeforeTimeout = "string"
        }
      }
      securityProfile = {
        encryptionAtHost = bool
        encryptionIdentity = {
          userAssignedIdentityResourceId = "string"
        }
        proxyAgentSettings = {
          enabled = bool
          keyIncarnationId = int
          mode = "string"
        }
        securityType = "string"
        uefiSettings = {
          secureBootEnabled = bool
          vTpmEnabled = bool
        }
      }
      storageProfile = {
        dataDisks = [
          {
            caching = "string"
            createOption = "string"
            deleteOption = "string"
            detachOption = "ForceDetach"
            diskSizeGB = int
            image = {
              uri = "string"
            }
            lun = int
            managedDisk = {
              diskEncryptionSet = {
                id = "string"
              }
              id = "string"
              securityProfile = {
                diskEncryptionSet = {
                  id = "string"
                }
                securityEncryptionType = "string"
              }
              storageAccountType = "string"
            }
            name = "string"
            toBeDetached = bool
            vhd = {
              uri = "string"
            }
            writeAcceleratorEnabled = bool
          }
        ]
        diskControllerType = "string"
        imageReference = {
          communityGalleryImageId = "string"
          id = "string"
          offer = "string"
          publisher = "string"
          sharedGalleryImageId = "string"
          sku = "string"
          version = "string"
        }
        osDisk = {
          caching = "string"
          createOption = "string"
          deleteOption = "string"
          diffDiskSettings = {
            option = "Local"
            placement = "string"
          }
          diskSizeGB = int
          encryptionSettings = {
            diskEncryptionKey = {
              secretUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
            enabled = bool
            keyEncryptionKey = {
              keyUrl = "string"
              sourceVault = {
                id = "string"
              }
            }
          }
          image = {
            uri = "string"
          }
          managedDisk = {
            diskEncryptionSet = {
              id = "string"
            }
            id = "string"
            securityProfile = {
              diskEncryptionSet = {
                id = "string"
              }
              securityEncryptionType = "string"
            }
            storageAccountType = "string"
          }
          name = "string"
          osType = "string"
          vhd = {
            uri = "string"
          }
          writeAcceleratorEnabled = bool
        }
      }
      userData = "string"
      virtualMachineScaleSet = {
        id = "string"
      }
    }
    zones = [
      "string"
    ]
    extendedLocation = {
      name = "string"
      type = "EdgeZone"
    }
    plan = {
      name = "string"
      product = "string"
      promotionCode = "string"
      publisher = "string"
    }
  })
}

属性值

virtualMachines

名称 说明 Value
type 资源类型 “Microsoft.Compute/virtualMachines@2023-09-01”
name 资源名称 字符串 (必需)

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



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

Windows VM 不能包含句点或以连字符结尾。

Linux VM 不能以句点或连字符结尾。
location 资源位置 字符串 (必需)
parent_id 若要部署到资源组,请使用该资源组的 ID。 字符串 (必需)
标记 资源标记 标记名称和值的字典。
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
标识 虚拟机的标识(如果已配置)。 VirtualMachineIdentity
plan 指定有关用于创建虚拟机的市场映像的信息。 此元素仅用于市场映像。 必须先启用映像以供编程使用,然后才能从 API 使用市场映像。 在Azure 门户中,找到要使用的市场映像,然后单击“想要以编程方式部署”“入门”->。 输入任何所需信息,然后单击“ 保存”。 规划
properties 描述虚拟机的属性。 VirtualMachineProperties
zones 虚拟机区域。 string[]

ExtendedLocation

名称 说明
name 扩展位置的名称。 字符串
type 扩展位置的类型。 “EdgeZone”

VirtualMachineIdentity

名称 说明 Value
type 用于虚拟机的标识类型。 类型“SystemAssigned ,UserAssigned”包含隐式创建的标识和一组用户分配的标识。 类型“None”将从虚拟机中删除任何标识。 “SystemAssigned”
“SystemAssigned,UserAssigned”
“UserAssigned”
identity_ids 与虚拟机关联的用户标识列表。 用户标识字典键引用将是 ARM 资源 ID,格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 用户标识 ID 的数组。

UserAssignedIdentities

名称 说明
{customized property} UserAssignedIdentitiesValue
{customized property} UserAssignedIdentitiesValue

UserAssignedIdentitiesValue

此对象不包含部署期间要设置的任何属性。 所有属性均为 ReadOnly。

计划

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

VirtualMachineProperties

名称 说明
additionalCapabilities 指定在虚拟机上启用或禁用的其他功能。 AdditionalCapabilities
applicationProfile 指定应提供给 VM/VMSS 的库应用程序。 ApplicationProfile
availabilitySet 指定虚拟机应分配到的可用性集的相关信息。 将在同一可用性集中指定的虚拟机分配给不同节点,以便尽量提高可用性。 有关可用性集的详细信息,请参阅 可用性集概述。 有关 Azure 计划内维护的详细信息,请参阅 Azure 中虚拟机的维护和更新。 目前,只能在创建时将 VM 添加到可用性集。 要向其添加 VM 的可用性集应位于与可用性集资源相同的资源组下。 无法将现有 VM 添加到可用性集。 此属性不能与非 null properties.virtualMachineScaleSet 引用一起存在。 SubResource
billingProfile 指定 Azure 现成虚拟机的计费相关详细信息。 最低 API 版本:2019-03-01。 BillingProfile
capacityReservation 指定有关用于分配虚拟机的容量预留的信息。 最低 API 版本:2021-04-01。 CapacityReservationProfile
diagnosticsProfile 指定启动诊断设置状态。 最低 API 版本:2015-06-15。 DiagnosticsProfile
evictionPolicy 指定 Azure 现成虚拟机和 Azure 现成规模集的逐出策略。 对于 Azure 现成虚拟机,支持“Deallocate”和“Delete”,最低 api 版本为 2019-03-01。 对于 Azure 现成规模集,支持“Deallocate”和“Delete”,最低 api 版本为 2017-10-30-preview。 “解除分配”
“Delete”
extensionsTimeBudget 指定为所有扩展分配的启动时间。 持续时间应介于 15 分钟到 120 分钟之间, (包括) ,并且应以 ISO 8601 格式指定。 默认值为 90 分钟 (PT1H30M) 。 最低 API 版本:2020-06-01。 字符串
hardwareProfile 指定虚拟机的硬件设置。 HardwareProfile
host 指定有关虚拟机所在的专用主机的信息。 最低 API 版本:2018-10-01。 SubResource
hostGroup 指定有关虚拟机所在的专用主机组的信息。 注意: 用户不能同时指定 host 和 hostGroup 属性。 最低 API 版本:2020-06-01。 SubResource
LicenseType 指定正在使用的映像或磁盘在本地获得许可。

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

Windows_Client

Windows_Server

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

RHEL) 的RHEL_BYOS (

SUSE) SLES_BYOS (

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

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

最低 API 版本:2015-06-15
字符串
networkProfile 指定虚拟机的网络接口。 NetworkProfile
osProfile 指定创建虚拟机时使用的操作系统设置。 预配 VM 后,无法更改某些设置。 OSProfile
platformFaultDomain 指定要在其中创建虚拟机的规模集逻辑容错域。 默认情况下,虚拟机将自动分配给容错域,该容错域最能跨可用容错域保持平衡。 仅当设置了此虚拟机的“virtualMachineScaleSet”属性时,这才适用。 引用的虚拟机规模集的“platformFaultDomainCount”必须大于 1。 创建虚拟机后,无法更新此属性。 可以在虚拟机实例视图中查看容错域分配。 最低 api 版本:2020?12?01。 int
priority 指定虚拟机的优先级。 最低 API 版本:2019-03-01 "Low"
“常规”
“Spot”
proximityPlacementGroup 指定虚拟机应分配到的邻近放置组的相关信息。 最低 API 版本:2018-04-01。 SubResource
scheduledEventsProfile 指定与计划事件相关的配置。 ScheduledEventsProfile
securityProfile 指定虚拟机的安全相关配置文件设置。 SecurityProfile
storageProfile 指定虚拟机磁盘的存储设置。 StorageProfile
userData VM 的 UserData,必须采用 base-64 编码。 客户不应在此处传递任何机密。 最低 API 版本:2021-03-01。 字符串
virtualMachineScaleSet 指定虚拟机应分配到的虚拟机规模集的相关信息。 在同一虚拟机规模集中指定的虚拟机将分配到不同的节点,以最大程度地提高可用性。 目前,只能在创建时将 VM 添加到虚拟机规模集。 无法将现有 VM 添加到虚拟机规模集。 此属性不能与非 null properties.availabilitySet 引用一起存在。 最低 api 版本:2019?03?01。 SubResource

AdditionalCapabilities

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

ApplicationProfile

名称 说明
galleryApplications 指定应提供给 VM/VMSS 的库应用程序 VMGalleryApplication[]

VMGalleryApplication

名称 说明
configurationReference 可选,指定 Azure Blob 的 URI,该 URI 将替换包的默认配置(如果提供) 字符串
enableAutomaticUpgrade 如果设置为 true,则当 PIR/SIG 中提供了新的库应用程序版本时,它将针对 VM/VMSS 自动更新 bool
顺序 可选,指定必须安装包的顺序 int
packageReferenceId 以 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/gallerys/{galleryName}/applications/{application}/versions/{version} 的形式指定 GalleryApplicationVersion 资源 ID 字符串 (必需)
标记 可选,为更通用的上下文指定传递值。 字符串
treatFailureAsDeploymentFailure 可选,如果为 true,则 VmApplication 中任何操作的任何失败都将使部署失败 bool

SubResource

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

BillingProfile

名称 说明
maxPrice 指定愿意为 Azure 现成 VM/VMSS 支付的最高价格。 此价格以美元为单位。

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

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

可能的值为:

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

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

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

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

CapacityReservationProfile

名称 说明
capacityReservationGroup 指定容量预留组资源 ID,该 ID 用于分配虚拟机或规模集 VM 实例,前提是已预留足够的容量。 有关更多详细信息,请参阅 https://aka.ms/CapacityReservation SubResource

DiagnosticsProfile

名称 说明
bootDiagnostics 启动诊断是一项调试功能,可用于查看控制台输出和屏幕截图以诊断 VM 状态。 注意:如果指定 storageUri,请确保存储帐户与 VM 位于同一区域和订阅中。 可以轻松查看控制台日志的输出。 Azure 还使你能够查看虚拟机监控程序中 VM 的屏幕截图。 BootDiagnostics

BootDiagnostics

名称 说明
enabled 是否应在虚拟机上启用启动诊断。 bool
storageUri 用于放置控制台输出和屏幕截图的存储帐户的 URI。 如果在启用启动诊断时未指定 storageUri,则将使用托管存储。 字符串

HardwareProfile

名称 说明
vmSize 指定虚拟机的大小。 枚举数据类型当前已弃用,将于 2023 年 12 月 23 日删除。 获取可用大小列表的建议方法是使用以下 API: 列出可用性集中的所有可用虚拟机大小列出区域中所有可用的虚拟机大小列出所有可用虚拟机大小以便调整大小。 有关虚拟机大小的详细信息,请参阅 虚拟机的大小。 可用的 VM 大小取决于区域和可用性集。 “Basic_A0”
“Basic_A1”
“Basic_A2”
“Basic_A3”
“Basic_A4”
“Standard_A0”
“Standard_A1”
“Standard_A10”
“Standard_A11”
“Standard_A1_v2”
“Standard_A2”
“Standard_A2_v2”
“Standard_A2m_v2”
“Standard_A3”
“Standard_A4”
“Standard_A4_v2”
“Standard_A4m_v2”
“Standard_A5”
“Standard_A6”
“Standard_A7”
“Standard_A8”
“Standard_A8_v2”
“Standard_A8m_v2”
“Standard_A9”
“Standard_B1ms”
“Standard_B1s”
“Standard_B2ms”
“Standard_B2s”
“Standard_B4ms”
“Standard_B8ms”
“Standard_D1”
“Standard_D11”
“Standard_D11_v2”
“Standard_D12”
“Standard_D12_v2”
“Standard_D13”
“Standard_D13_v2”
“Standard_D14”
“Standard_D14_v2”
“Standard_D15_v2”
“Standard_D16_v3”
“Standard_D16s_v3”
“Standard_D1_v2”
“Standard_D2”
“Standard_D2_v2”
“Standard_D2_v3”
“Standard_D2s_v3”
“Standard_D3”
“Standard_D32_v3”
“Standard_D32s_v3”
“Standard_D3_v2”
“Standard_D4”
“Standard_D4_v2”
“Standard_D4_v3”
“Standard_D4s_v3”
“Standard_D5_v2”
“Standard_D64_v3”
“Standard_D64s_v3”
“Standard_D8_v3”
“Standard_D8s_v3”
“Standard_DS1”
“Standard_DS11”
“Standard_DS11_v2”
“Standard_DS12”
“Standard_DS12_v2”
“Standard_DS13”
“Standard_DS13-2_v2”
“Standard_DS13-4_v2”
“Standard_DS13_v2”
“Standard_DS14”
“Standard_DS14-4_v2”
“Standard_DS14-8_v2”
“Standard_DS14_v2”
“Standard_DS15_v2”
“Standard_DS1_v2”
“Standard_DS2”
“Standard_DS2_v2”
“Standard_DS3”
“Standard_DS3_v2”
“Standard_DS4”
“Standard_DS4_v2”
“Standard_DS5_v2”
“Standard_E16_v3”
“Standard_E16s_v3”
“Standard_E2_v3”
“Standard_E2s_v3”
“Standard_E32-16_v3”
“Standard_E32-8s_v3”
“Standard_E32_v3”
“Standard_E32s_v3”
“Standard_E4_v3”
“Standard_E4s_v3”
“Standard_E64-16s_v3”
“Standard_E64-32s_v3”
“Standard_E64_v3”
“Standard_E64s_v3”
“Standard_E8_v3”
“Standard_E8s_v3”
“Standard_F1”
“Standard_F16”
“Standard_F16s”
“Standard_F16s_v2”
“Standard_F1s”
“Standard_F2”
“Standard_F2s”
“Standard_F2s_v2”
“Standard_F32s_v2”
“Standard_F4”
“Standard_F4s”
“Standard_F4s_v2”
“Standard_F64s_v2”
“Standard_F72s_v2”
“Standard_F8”
“Standard_F8s”
“Standard_F8s_v2”
“Standard_G1”
“Standard_G2”
“Standard_G3”
“Standard_G4”
“Standard_G5”
“Standard_GS1”
“Standard_GS2”
“Standard_GS3”
“Standard_GS4”
“Standard_GS4-4”
“Standard_GS4-8”
“Standard_GS5”
“Standard_GS5-16”
“Standard_GS5-8”
“Standard_H16”
“Standard_H16m”
“Standard_H16mr”
“Standard_H16r”
“Standard_H8”
“Standard_H8m”
“Standard_L16s”
“Standard_L32s”
“Standard_L4s”
“Standard_L8s”
“Standard_M128-32ms”
“Standard_M128-64ms”
“Standard_M128ms”
“Standard_M128s”
“Standard_M64-16ms”
“Standard_M64-32ms”
“Standard_M64ms”
“Standard_M64s”
“Standard_NC12”
“Standard_NC12s_v2”
“Standard_NC12s_v3”
“Standard_NC24”
“Standard_NC24r”
“Standard_NC24rs_v2”
“Standard_NC24rs_v3”
“Standard_NC24s_v2”
“Standard_NC24s_v3”
“Standard_NC6”
“Standard_NC6s_v2”
“Standard_NC6s_v3”
“Standard_ND12s”
“Standard_ND24rs”
“Standard_ND24s”
“Standard_ND6s”
“Standard_NV12”
“Standard_NV24”
“Standard_NV6”
vmSizeProperties 指定用于自定义虚拟机大小的属性。 最低 API 版本:2021-07-01。 此功能仍处于预览模式,VirtualMachineScaleSet 不支持此功能。 有关更多详细信息,请按照 VM 自定义 中的说明进行操作。 VMSizeProperties

VMSizeProperties

名称 说明
vCPUsAvailable 指定可用于 VM 的 vCPU 数。 如果未在请求正文中指定此属性,则默认行为是将其设置为“ 列出区域中所有可用虚拟机大小”的 API 响应中公开的可用于该 VM 大小的 vCPU 值。 int
vCPUsPerCore 指定 vCPU 与物理核心的比率。 如果未在请求正文中指定此属性,则默认行为设置为“ 列出区域中所有可用虚拟机大小”的 API 响应中公开的 VM 大小的 vCPUsPerCore 值。 将此属性设置为 1 还意味着禁用超线程。 int

NetworkProfile

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

VirtualMachineNetworkInterfaceConfiguration

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

VirtualMachineNetworkInterfaceConfigurationPropertie...

名称 说明
auxiliaryMode 指定是否为网络接口资源启用辅助模式。 “AcceleratedConnections”
“浮动”
"None"
auxiliarySku 指定是否为网络接口资源启用辅助 SKU。 “A1”
“A2”
“A4”
“A8”
"None"
deleteOption 指定删除 VM 时网络接口会发生什么情况 “Delete”
“分离”
disableTcpStateTracking 指定是否为 tcp 状态跟踪禁用网络接口。 bool
dnsSettings 要应用于网络接口的 dns 设置。 VirtualMachineNetworkInterfaceDnsSettingsConfigurati...
dscpConfiguration SubResource
enableAcceleratedNetworking 指定网络接口是否已启用加速网络。 bool
enableFpga 指定网络接口是否已启用 FPGA 网络。 bool
enableIPForwarding 是否在此 NIC 上启用了 IP 转发。 bool
ipConfigurations 指定网络接口的 IP 配置。 VirtualMachineNetworkInterfaceIPConfiguration[] (必需的)
networkSecurityGroup 网络安全组。 SubResource
角色实体 指定主网络接口,以防虚拟机具有 1 个以上的网络接口。 bool

VirtualMachineNetworkInterfaceDnsSettingsConfigurati...

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

VirtualMachineNetworkInterfaceIPConfiguration

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

VirtualMachineNetworkInterfaceIPConfigurationPropert...

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

VirtualMachinePublicIPAddressConfiguration

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

VirtualMachinePublicIPAddressConfigurationProperties

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

VirtualMachinePublicIPAddressDnsSettingsConfiguratio...

名称 说明
domainNameLabel 将创建的 PublicIPAddress 资源的域名标签前缀。 生成的名称标签是域名标签和 VM 网络配置文件唯一 ID 的串联。 字符串 (必需)
domainNameLabelScope 将创建的 PublicIPAddress 资源的域名标签范围。 生成的名称标签是根据域名标签范围和 VM 网络配置文件唯一 ID 将经过哈希的域名标签与策略串联在一起的。 “NoReuse”
“ResourceGroupReuse”
“SubscriptionReuse”
“TenantReuse”

VirtualMachineIpTag

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

PublicIPAddressSku

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

NetworkInterfaceReference

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

NetworkInterfaceReferenceProperties

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

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 中重置远程桌面服务或其登录密码

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

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

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

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

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

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

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

最大长度 (Windows) : 20 个字符。
字符串
allowExtensionOperations 指定是否应在虚拟机上允许扩展操作。 仅当虚拟机上不存在任何扩展时,才能将其设置为 False。 bool
computerName 指定虚拟机的主机 OS 名称。 创建 VM 后,无法更新此名称。 Windows) (最大长度: 15 个字符。 Linux) 最大 (长度: 64 个字符。 有关命名约定和限制,请参阅 Azure 基础结构服务实现指南 字符串
customData 指定自定义数据的 Base-64 编码的字符串。 Base-64 编码的字符串将解码为一个二元数组并作为一个文件保存在虚拟机上。 该二元数组的最大长度为 65535 字节。 注意:请勿在 customData 属性中传递任何机密或密码。 创建 VM 后,无法更新此属性。 属性“customData”将传递给 VM 以保存为文件,有关详细信息,请参阅 Azure VM 上的自定义数据。 有关对 Linux VM 使用 cloud-init,请参阅 在创建期间使用 cloud-init 自定义 Linux VM 字符串
linuxConfiguration 指定虚拟机上的 Linux 操作系统设置。 有关支持的 Linux 分发版的列表,请参阅 Linux on Azure-Endorsed Distributions LinuxConfiguration
requireGuestProvisionSignal 必须设置为 True 或省略的可选属性。 bool
机密 指定应安装在虚拟机上的证书集。 若要在虚拟机上安装证书,建议使用适用于 Linux 的 Azure 密钥保管库 虚拟机扩展适用于 Windows 的 Azure 密钥保管库 虚拟机扩展 VaultSecretGroup[]
windowsConfiguration 指定虚拟机上的 Windows 操作系统设置。 WindowsConfiguration

LinuxConfiguration

名称 说明
disablePasswordAuthentication 指定是否应禁用密码身份验证。 bool
enableVMAgentPlatformUpdates 指示是否为 Linux 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Linux 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 LinuxVMGuestPatchAutomaticByPlatformSettings
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,其中 OrchestrationMode 为灵活。

可能的值为:

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

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

LinuxVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够计划修补,而无需意外升级 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
“IfRequired”
“从不”
"Unknown"

SshConfiguration

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

SshPublicKey

名称 说明
keyData 用于通过 ssh 向 VM 进行身份验证的 SSH 公钥证书。 密钥需要至少为 2048 位且采用 ssh-rsa 格式。 若要创建 SSH 密钥,请参阅 [在 Linux 和 Mac 上为 Azure 中的 Linux VM 创建 SSH 密钥]/azure/virtual-machines/linux/create-ssh-keys-detailed) 。 字符串
path 指定所创建的 VM 上存储 ssh 公钥的完整路径。 如果该文件已存在,则指定的密钥将追加到该文件上。 示例:/home/user/.ssh/authorized_keys 字符串

VaultSecretGroup

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

VaultCertificate

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

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

WindowsConfiguration

名称 说明
additionalUnattendContent 指定可包含在 Windows 安装程序使用的 Unattend.xml 文件中的其他 Base-64 编码 XML 格式信息。 AdditionalUnattendContent[]
enableAutomaticUpdates 指示是否为 Windows 虚拟机启用自动汇报。 默认值为 true。 对于虚拟机规模集,可以更新此属性,更新将在 OS 重新预配时生效。 bool
enableVMAgentPlatformUpdates 指示是否为 Windows 虚拟机启用 VMAgent Platform 汇报。 默认值为 false。 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”
automaticByPlatformSettings 指定 Windows 上的 VM 来宾修补中的修补模式 AutomaticByPlatform 的其他设置。 WindowsVMGuestPatchAutomaticByPlatformSettings
enableHotpatching 使客户无需重启即可修补其 Azure VM。 对于 enableHotpatching,必须将“provisionVMAgent”设置为 true,“patchMode”必须设置为“AutomaticByPlatform”。 bool
patchMode 指定将 VM 来宾修补到 IaaS 虚拟机或与虚拟机规模集关联的虚拟机的模式,业务流程模式为灵活。

可能的值为:

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

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

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

WindowsVMGuestPatchAutomaticByPlatformSettings

名称 说明
bypassPlatformSafetyChecksOnUserSchedule 使客户能够在不意外升级的情况下计划修补 bool
rebootSetting 指定所有 AutomaticByPlatform 修补程序安装操作的重新启动设置。 “Always”
“IfRequired”
“Never”
"Unknown"

WinRMConfiguration

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

WinRMListener

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

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

ScheduledEventsProfile

名称 说明
osImageNotificationProfile 指定与 OS 映像计划事件相关的配置。 OSImageNotificationProfile
terminateNotificationProfile 指定与终止计划事件相关的配置。 TerminateNotificationProfile

OSImageNotificationProfile

名称 说明
enable 指定是启用或禁用 OS 映像计划事件。 bool
notBeforeTimeout 重置映像或升级其 OS 的虚拟机可能需要批准 OS 映像计划事件的时间长度,然后才能自动批准该事件 (超时) 。 配置以 ISO 8601 格式指定,值必须为 15 分钟 (PT15M) 字符串

TerminateNotificationProfile

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

SecurityProfile

名称 说明
encryptionAtHost 用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。 这将为所有磁盘启用加密,包括主机本身的资源/临时磁盘。 默认行为为:除非资源的此属性设置为 true,否则将禁用主机上的加密。 bool
encryptionIdentity 指定 ADE 用于获取密钥保管库操作的访问令牌的托管标识。 EncryptionIdentity
proxyAgentSettings 指定创建虚拟机时的 ProxyAgent 设置。 最低 API 版本:2023-09-01。 ProxyAgentSettings
securityType 指定虚拟机的 SecurityType。 必须将其设置为任何指定的值才能启用 UefiSettings。 默认行为为:除非设置了此属性,否则不会启用 UefiSettings。 “ConfidentialVM”
“TrustedLaunch”
uefiSettings 指定创建虚拟机时使用的安全启动和 vTPM 等安全设置。 最低 API 版本:2020-12-01。 UefiSettings

EncryptionIdentity

名称 说明
userAssignedIdentityResourceId 指定与 VM 关联的用户标识之一的 ARM 资源 ID。 字符串

ProxyAgentSettings

名称 说明
enabled 指定是在虚拟机规模集还是虚拟机规模集上启用 ProxyAgent 功能。 bool
keyIncarnationId 增加此属性的值允许用户重置用于保护来宾和主机之间的信道的密钥。 int
mode 指定启用该功能时 ProxyAgent 将执行的模式。 ProxyAgent 将开始审核或监视,但不会在审核模式下对主机终结点的请求强制实施访问控制,而在“强制”模式下,将强制实施访问控制。 默认值为“强制模式”。 “审核”
“强制”

UefiSettings

名称 说明
secureBootEnabled 指定是否应在虚拟机上启用安全启动。 最低 API 版本:2020-12-01。 bool
vTpmEnabled 指定是否应在虚拟机上启用 vTPM。 最低 API 版本:2020-12-01。 bool

StorageProfile

名称 说明
dataDisks 指定用于将数据磁盘添加到虚拟机的参数。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD DataDisk[]
diskControllerType 指定为 VM 配置的磁盘控制器类型。 注意: 如果未指定,则根据操作系统磁盘的功能和指定的最低 API 版本中的 VM 大小,创建“hyperVGeneration”设置为 V2 的虚拟机时,此属性将设置为默认磁盘控制器类型。 在更新 VM 的磁盘控制器类型之前,需要解除分配 VM,除非你在 VM 配置中更新 VM 大小,以隐式解除分配并重新分配 VM。 最低 API 版本:2022-08-01。 “NVMe”
“SCSI”
imageReference 指定要使用的映像的相关信息。 可以指定有关平台映像、市场映像或虚拟机映像的信息。 若要使用平台映像、市场映像或虚拟机映像,但未在其他创建操作中使用,则此元素是必需的。 ImageReference
osDisk 指定有关虚拟机使用的操作系统磁盘的信息。 有关磁盘的详细信息,请参阅 关于 Azure 虚拟机的磁盘和 VHD OSDisk

DataDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 对于标准存储,默认行为为: 无。高级存储的 ReadOnly。 "None"
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的 plan 元素。 “附加”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离数据磁盘。 可能的值为: Delete。 如果使用此值,则删除 VM 时会删除数据磁盘。 分离。 如果使用此值,则删除 VM 后会保留数据磁盘。 默认值设置为 Detach “Delete”
“分离”
detachOption 指定要在分离磁盘时使用的分离行为或已在从虚拟机分离过程中的分离行为。 支持的值: ForceDetach。 detachOption: ForceDetach 仅适用于托管数据磁盘。 如果数据磁盘的上一次分离尝试由于虚拟机意外故障而未完成,并且磁盘仍未释放,请使用强制分离作为最后手段,从 VM 中强行分离磁盘。 使用此分离行为时,可能尚未刷新所有写入。 此功能仍处于预览 模式,VirtualMachineScaleSet 不支持此功能。 强制分离数据磁盘更新到BeDetached 到“true”,同时设置 detachOption:“ForceDetach”。 “ForceDetach”
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
lun 指定数据磁盘的逻辑单元号。 此值用于标识 VM 中的数据磁盘,因此对于附加到 VM 的每个数据磁盘必须是唯一的。 int (必需)
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
toBeDetached 指定数据磁盘是否正在从 VirtualMachine/VirtualMachineScaleset 分离 bool
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

VirtualHardDisk

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

ManagedDiskParameters

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

DiskEncryptionSetParameters

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

VMDiskSecurityProfile

名称 说明
diskEncryptionSet 指定用于客户托管密钥加密的机密 VM OS 磁盘和 VMGuest Blob 的托管磁盘的客户托管磁盘加密集资源 ID。 DiskEncryptionSetParameters
securityEncryptionType 指定托管磁盘的 EncryptionType。 它设置为 DiskWithVMGuestState 以加密托管磁盘和 VMGuestState blob,VMGuestStateOnly 仅加密 VMGuestState blob,设置为 NonPersistedTPM 以不保留 VMGuestState blob 中的固件状态。 注意: 只能为机密 VM 设置它。 “DiskWithVMGuestState”
“NonPersistedTPM”
“VMGuestStateOnly”

ImageReference

名称 说明
communityGalleryImageId 指定了 vm 部署的社区库映像唯一 ID。 这可以从社区库映像 GET 调用中提取。 string
id 资源 ID 字符串
offer 指定用于创建虚拟机的平台映像或市场映像的套餐。 字符串
发布者 映像发布者。 字符串
sharedGalleryImageId 指定 VM 部署的共享库映像唯一 ID。 这可以从共享库映像 GET 调用中提取。 字符串
sku 映像 SKU。 字符串
版本 指定用于创建虚拟机的平台映像或市场映像的版本。 允许的格式为 Major.Minor.Build 或“latest”。 主要、次要和内部版本是十进制数。 指定“latest”以使用部署时可用的最新版本的映像。 即使使用“最新”,VM 映像也不会在部署后自动更新,即使新版本可用。 请不要对库映像部署使用字段“version”,库映像应始终使用“id”字段进行部署,若要使用库映像的“最新”版本,只需在“id”字段中设置“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleryName}/images/{imageName}”。 字符串

OSDisk

名称 说明
缓存 指定缓存要求。 可能的值为: None、ReadOnly、ReadWrite。 对于标准存储,默认行为为: 无。高级存储的 ReadOnly。 "None"
“ReadOnly”
“ReadWrite”
createOption 指定应如何创建虚拟机。 可能的值为: Attach。 使用专用磁盘创建虚拟机时,将使用此值。 FromImage。 使用映像创建虚拟机时,将使用此值。 如果使用平台映像,还应使用上述 imageReference 元素。 如果使用市场映像,还应使用前面所述的 plan 元素。 “附加”
“Empty”
“FromImage” (必需)
deleteOption 指定在删除 VM 时是应删除还是分离 OS 磁盘。 可能的值为: Delete。 如果使用此值,则会在删除 VM 时删除 OS 磁盘。 分离。 如果使用此值,则删除 VM 后,OS 磁盘将保留。 默认值设置为 Detach。 对于临时 OS 磁盘,默认值设置为 Delete。 用户无法更改临时 OS 磁盘的删除选项。 “Delete”
“分离”
diffDiskSettings 指定虚拟机使用的操作系统磁盘的临时磁盘设置。 DiffDiskSettings
diskSizeGB 指定空数据磁盘的大小(以 GB 为单位)。 此元素可用于覆盖虚拟机映像中的磁盘大小。 属性“diskSizeGB”是磁盘的字节数 x 1024^3,该值不能大于 1023。 int
encryptionSettings 指定 OS 磁盘的加密设置。 最低 API 版本:2015-06-15。 DiskEncryptionSettings
image 源用户映像虚拟硬盘。 在附加到虚拟机之前,将复制虚拟硬盘。 如果提供了 SourceImage,则目标虚拟硬盘驱动器不得存在。 VirtualHardDisk
managedDisk 托管磁盘参数。 ManagedDiskParameters
name 磁盘名称。 字符串
osType 此属性允许指定从用户映像或专用 VHD 创建 VM 时磁盘中包含的 OS 的类型。 可能的值为: Windows、Linux。 “Linux”
“Windows”
vhd 虚拟硬盘。 VirtualHardDisk
writeAcceleratorEnabled 指定是在磁盘上启用或禁用 writeAccelerator。 bool

DiffDiskSettings

名称 说明
选项 指定操作系统磁盘的临时磁盘设置。 “Local”
放置 指定操作系统磁盘的临时磁盘位置。 可能的值包括: CacheDisk、ResourceDisk。 默认行为为:如果为 VM 大小配置了 CacheDisk ,则使用 ResourceDisk 。 请参阅 /azure/virtual-machines/windows/sizes 和 /azure/virtual-machines/linux/sizes 上的 Windows VM 的 VM 大小文档,检查哪些 VM 大小公开缓存磁盘。 “CacheDisk”
“ResourceDisk”

DiskEncryptionSettings

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

KeyVaultSecretReference

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

KeyVaultKeyReference

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