你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Bicep 资源定义
可以使用目标操作部署 virtualMachineScaleSets/extensions 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets/extensions 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Compute/virtualMachineScaleSets/extensions@2025-04-01' = {
parent: resourceSymbolicName
name: 'string'
properties: {
autoUpgradeMinorVersion: bool
enableAutomaticUpgrade: bool
forceUpdateTag: 'string'
protectedSettings: any(...)
protectedSettingsFromKeyVault: {
secretUrl: 'string'
sourceVault: {
id: 'string'
}
}
provisionAfterExtensions: [
'string'
]
publisher: 'string'
settings: any(...)
suppressFailures: bool
type: 'string'
typeHandlerVersion: 'string'
}
}
属性值
Microsoft.Compute/virtualMachineScaleSets/扩展
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 资源名称 | string (必需) |
| 父级 | 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。 有关详细信息,请参阅 父资源外部的子资源。 |
类型资源的符号名称:virtualMachineScaleSets |
| 性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
KeyVaultSecretReference
| 名字 | 描述 | 价值 |
|---|---|---|
| secretUrl 的 | 引用 Key Vault 中的机密的 URL。 | string (必需) |
| sourceVault (源保险库) | 包含机密的 Key Vault 的相对 URL。 | SubResource (必需) |
子资源
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 资源 ID | 字符串 |
VirtualMachineScaleSetExtensionProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 自动升级小版本 | 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 | 布尔 |
| 启用自动升级 | 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 | 布尔 |
| forceUpdateTag | 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 | 字符串 |
| protectedSettings | 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 | 任何 |
| protectedSettingsFromKeyVault | 由引用传递的扩展保护的设置,并从密钥保管库使用 | KeyVaultSecretReference |
| provisionAfterExtensions 的 | 需要预配此扩展的扩展名称的集合。 | 字符串[] |
| 发布服务器 | 扩展处理程序发布者的名称。 | 字符串 |
| 设置 | 扩展的 Json 格式公共设置。 | 任何 |
| suppressFailures | 指示是否取消来自扩展的故障(不连接到 VM 等操作故障不会取消,而不管此值如何)。 默认值为 false。 | 布尔 |
| 类型 | 指定扩展的类型;例如“CustomScriptExtension”。 | 字符串 |
| 类型HandlerVersion | 指定脚本处理程序的版本。 | 字符串 |
用法示例
Azure 快速入门示例
以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。
| Bicep 文件 | 描述 |
|---|---|
| 部署支持受信任的启动的 Windows VM 规模集 | 使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明。 |
ARM 模板资源定义
可以使用目标操作部署 virtualMachineScaleSets/extensions 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets/extensions 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
"apiVersion": "2025-04-01",
"name": "string",
"properties": {
"autoUpgradeMinorVersion": "bool",
"enableAutomaticUpgrade": "bool",
"forceUpdateTag": "string",
"protectedSettings": {},
"protectedSettingsFromKeyVault": {
"secretUrl": "string",
"sourceVault": {
"id": "string"
}
},
"provisionAfterExtensions": [ "string" ],
"publisher": "string",
"settings": {},
"suppressFailures": "bool",
"type": "string",
"typeHandlerVersion": "string"
}
}
属性值
Microsoft.Compute/virtualMachineScaleSets/扩展
| 名字 | 描述 | 价值 |
|---|---|---|
| apiVersion | API 版本 | '2025-04-01' |
| 名字 | 资源名称 | string (必需) |
| 性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
| 类型 | 资源类型 | “Microsoft.Compute/virtualMachineScaleSets/extensions” |
KeyVaultSecretReference
| 名字 | 描述 | 价值 |
|---|---|---|
| secretUrl 的 | 引用 Key Vault 中的机密的 URL。 | string (必需) |
| sourceVault (源保险库) | 包含机密的 Key Vault 的相对 URL。 | SubResource (必需) |
子资源
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 资源 ID | 字符串 |
VirtualMachineScaleSetExtensionProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 自动升级小版本 | 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 | 布尔 |
| 启用自动升级 | 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 | 布尔 |
| forceUpdateTag | 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 | 字符串 |
| protectedSettings | 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 | 任何 |
| protectedSettingsFromKeyVault | 由引用传递的扩展保护的设置,并从密钥保管库使用 | KeyVaultSecretReference |
| provisionAfterExtensions 的 | 需要预配此扩展的扩展名称的集合。 | 字符串[] |
| 发布服务器 | 扩展处理程序发布者的名称。 | 字符串 |
| 设置 | 扩展的 Json 格式公共设置。 | 任何 |
| suppressFailures | 指示是否取消来自扩展的故障(不连接到 VM 等操作故障不会取消,而不管此值如何)。 默认值为 false。 | 布尔 |
| 类型 | 指定扩展的类型;例如“CustomScriptExtension”。 | 字符串 |
| 类型HandlerVersion | 指定脚本处理程序的版本。 | 字符串 |
用法示例
Azure 快速入门模板
以下 Azure 快速入门模板 部署此资源类型。
| 模板 | 描述 |
|---|---|
|
使用 jumpbox 创建和加密新的 Windows VMSS |
使用此模板,可以使用服务器 Windows 版本的最新修补版本部署简单的 Windows VM 规模集。 此模板还会在同一虚拟网络中部署具有公共 IP 地址的 jumpbox。 可以通过此公共 IP 地址连接到 jumpbox,然后通过专用 IP 地址从那里连接到规模集中的 VM。此模板在 WINDOWS VM 的 VM 规模集上启用加密。 |
|
部署支持受信任的启动的 Windows VM 规模集 |
使用此模板,可以使用最新修补版本的 Windows Server 2016、Windows Server 2019 或 Windows Server 2022 Azure Edition 部署支持受信任的启动的 Windows VM 规模集。 这些 VM 位于具有 RDP 连接的 NAT 规则的负载均衡器后面。 如果启用 Secureboot 和 vTPM,则会在 VMSS 上安装来宾证明扩展。 此扩展将通过云执行远程 证明。 |
|
部署 Darktrace 自动缩放 vSensors |
此模板允许你部署 Darktrace vSensors 的自动自动缩放部署 |
|
此模板解密以前加密的 Windows VMSS |
此模板在正在运行的 Windows VM 规模集上禁用加密 |
|
此模板加密正在运行的 Windows VMSS |
此模板在正在运行的 Windows VM 规模集上启用加密 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 virtualMachineScaleSets/extensions 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Compute/virtualMachineScaleSets/extensions 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Compute/virtualMachineScaleSets/extensions@2025-04-01"
name = "string"
parent_id = "string"
body = {
properties = {
autoUpgradeMinorVersion = bool
enableAutomaticUpgrade = bool
forceUpdateTag = "string"
protectedSettings = ?
protectedSettingsFromKeyVault = {
secretUrl = "string"
sourceVault = {
id = "string"
}
}
provisionAfterExtensions = [
"string"
]
publisher = "string"
settings = ?
suppressFailures = bool
type = "string"
typeHandlerVersion = "string"
}
}
}
属性值
Microsoft.Compute/virtualMachineScaleSets/扩展
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 资源名称 | string (必需) |
| parent_id | 此资源的父资源的 ID。 | 类型资源的 ID:virtualMachineScaleSets |
| 性能 | 描述虚拟机规模集扩展的属性。 | VirtualMachineScaleSetExtensionProperties |
| 类型 | 资源类型 | “Microsoft.Compute/virtualMachineScaleSets/extensions@2025-04-01” |
KeyVaultSecretReference
| 名字 | 描述 | 价值 |
|---|---|---|
| secretUrl 的 | 引用 Key Vault 中的机密的 URL。 | string (必需) |
| sourceVault (源保险库) | 包含机密的 Key Vault 的相对 URL。 | SubResource (必需) |
子资源
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 资源 ID | 字符串 |
VirtualMachineScaleSetExtensionProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 自动升级小版本 | 指示扩展是否应在部署时使用较新的次要版本。 但是,部署后,除非重新部署,否则扩展不会升级次要版本,即使此属性设置为 true 也是如此。 | 布尔 |
| 启用自动升级 | 指示如果有较新版本的扩展可用,平台是否应自动升级扩展。 | 布尔 |
| forceUpdateTag | 如果提供值并且与上一个值不同,则即使扩展配置未更改,扩展处理程序也会强制更新。 | 字符串 |
| protectedSettings | 该扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。 | 任何 |
| protectedSettingsFromKeyVault | 由引用传递的扩展保护的设置,并从密钥保管库使用 | KeyVaultSecretReference |
| provisionAfterExtensions 的 | 需要预配此扩展的扩展名称的集合。 | 字符串[] |
| 发布服务器 | 扩展处理程序发布者的名称。 | 字符串 |
| 设置 | 扩展的 Json 格式公共设置。 | 任何 |
| suppressFailures | 指示是否取消来自扩展的故障(不连接到 VM 等操作故障不会取消,而不管此值如何)。 默认值为 false。 | 布尔 |
| 类型 | 指定扩展的类型;例如“CustomScriptExtension”。 | 字符串 |
| 类型HandlerVersion | 指定脚本处理程序的版本。 | 字符串 |
用法示例
Terraform 示例
为虚拟机规模集部署扩展的基本示例。
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "virtualNetwork" {
type = "Microsoft.Network/virtualNetworks@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
addressSpace = {
addressPrefixes = [
"10.0.0.0/16",
]
}
dhcpOptions = {
dnsServers = [
]
}
subnets = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
lifecycle {
ignore_changes = [body.properties.subnets]
}
}
resource "azapi_resource" "subnet" {
type = "Microsoft.Network/virtualNetworks/subnets@2022-07-01"
parent_id = azapi_resource.virtualNetwork.id
name = "internal"
body = {
properties = {
addressPrefix = "10.0.2.0/24"
delegations = [
]
privateEndpointNetworkPolicies = "Enabled"
privateLinkServiceNetworkPolicies = "Enabled"
serviceEndpointPolicies = [
]
serviceEndpoints = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "virtualMachineScaleSet" {
type = "Microsoft.Compute/virtualMachineScaleSets@2023-03-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
additionalCapabilities = {
}
doNotRunExtensionsOnOverprovisionedVMs = false
orchestrationMode = "Uniform"
overprovision = true
scaleInPolicy = {
forceDeletion = false
rules = [
"Default",
]
}
singlePlacementGroup = true
upgradePolicy = {
mode = "Manual"
}
virtualMachineProfile = {
diagnosticsProfile = {
bootDiagnostics = {
enabled = false
storageUri = ""
}
}
extensionProfile = {
extensionsTimeBudget = "PT1H30M"
}
networkProfile = {
networkInterfaceConfigurations = [
{
name = "example"
properties = {
dnsSettings = {
dnsServers = [
]
}
enableAcceleratedNetworking = false
enableIPForwarding = false
ipConfigurations = [
{
name = "internal"
properties = {
applicationGatewayBackendAddressPools = [
]
applicationSecurityGroups = [
]
loadBalancerBackendAddressPools = [
]
loadBalancerInboundNatPools = [
]
primary = true
privateIPAddressVersion = "IPv4"
subnet = {
id = azapi_resource.subnet.id
}
}
},
]
primary = true
}
},
]
}
osProfile = {
adminUsername = "adminuser"
computerNamePrefix = var.resource_name
linuxConfiguration = {
disablePasswordAuthentication = true
provisionVMAgent = true
ssh = {
publicKeys = [
{
keyData = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com"
path = "/home/adminuser/.ssh/authorized_keys"
},
]
}
}
secrets = [
]
}
priority = "Regular"
storageProfile = {
dataDisks = [
]
imageReference = {
offer = "UbuntuServer"
publisher = "Canonical"
sku = "16.04-LTS"
version = "latest"
}
osDisk = {
caching = "ReadWrite"
createOption = "FromImage"
managedDisk = {
storageAccountType = "Standard_LRS"
}
osType = "Linux"
writeAcceleratorEnabled = false
}
}
}
}
sku = {
capacity = 1
name = "Standard_F2"
tier = "Standard"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "extension" {
type = "Microsoft.Compute/virtualMachineScaleSets/extensions@2023-03-01"
parent_id = azapi_resource.virtualMachineScaleSet.id
name = var.resource_name
body = {
properties = {
autoUpgradeMinorVersion = true
enableAutomaticUpgrade = false
provisionAfterExtensions = [
]
publisher = "Microsoft.Azure.Extensions"
settings = {
commandToExecute = "echo $HOSTNAME"
}
suppressFailures = false
type = "CustomScript"
typeHandlerVersion = "2.0"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}