Udostępnij przez


Microsoft.Compute virtualMachineScaleSets/extensions

Definicja zasobu Bicep

Typ zasobu virtualMachineScaleSets/extensions można wdrożyć przy użyciu operacji docelowych:

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Compute/virtualMachineScaleSets/extensions, dodaj następujący kod Bicep do szablonu.

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'
  }
}

Wartości właściwości

Microsoft.Compute/virtualMachineScaleSets/extensions

Nazwa Opis Wartość
nazwa Nazwa zasobu ciąg (wymagany)
nadrzędny W Bicep można określić zasób nadrzędny dla zasobu podrzędnego. Tę właściwość należy dodać tylko wtedy, gdy zasób podrzędny jest zadeklarowany poza zasobem nadrzędnym.

Aby uzyskać więcej informacji, zobacz Zasób podrzędny poza zasobem nadrzędnym.
Nazwa symboliczna zasobu typu: virtualMachineScaleSets
Właściwości Opisuje właściwości rozszerzenia zestawu skalowania maszyn wirtualnych. Właściwości VirtualMachineScaleSetExtensionProperties

KeyVaultSecretReference (Odniesienie do klucza)

Nazwa Opis Wartość
secretUrl (tajny adres URL) Adres URL odwołujący się do wpisu tajnego w usłudze Key Vault. ciąg (wymagany)
repozytorium sourceVault (repozytorium źródłowe) Względny adres URL usługi Key Vault zawierający wpis tajny. SubResource (wymagane)

Podźródło

Nazwa Opis Wartość
id Identyfikator zasobu ciąg

Właściwości VirtualMachineScaleSetExtensionProperties

Nazwa Opis Wartość
automatycznaAktualizacjaMniejszejWersji Wskazuje, czy rozszerzenie powinno używać nowszej wersji pomocniczej, jeśli jest ona dostępna w czasie wdrażania. Po wdrożeniu rozszerzenie nie uaktualni wersji pomocniczych, chyba że zostanie ponownie wdrożone, nawet jeśli ta właściwość ma wartość true. Bool
włączAutomatycznąAktualizację Wskazuje, czy rozszerzenie powinno zostać automatycznie uaktualnione przez platformę, jeśli jest dostępna nowsza wersja rozszerzenia. Bool
forceUpdateTag (Znacznik siły) Jeśli podano wartość i różni się od poprzedniej wartości, program obsługi rozszerzeń zostanie zmuszony do aktualizacji, nawet jeśli konfiguracja rozszerzenia nie uległa zmianie. ciąg
protectedSettings (ustawienia chronione) Rozszerzenie może zawierać ustawienia protectedSettings lub protectedSettingsFromKeyVault lub w ogóle nie są chronione. jakikolwiek
protectedSettingsFromKeyVault Rozszerzenia chronione ustawienia, które są przekazywane przez odwołanie i używane z magazynu kluczy KeyVaultSecretReference (Odniesienie do klucza)
provisionAfterExtensions (Rozszerzenia aprowizacji) Kolekcja nazw rozszerzeń, po których należy aprowizować to rozszerzenie. ciąg znakowy[]
wydawca Nazwa wydawcy programu obsługi rozszerzeń. ciąg
ustawienia Ustawienia publiczne w formacie Json dla rozszerzenia. jakikolwiek
suppressFailures (pomijanieBłędy) Wskazuje, czy awarie wynikające z rozszerzenia zostaną pominięte (błędy operacyjne, takie jak brak nawiązywania połączenia z maszyną wirtualną, nie zostaną pominięte niezależnie od tej wartości). Wartość domyślna to false. Bool
typ Określa typ rozszerzenia; przykładem jest "CustomScriptExtension". ciąg
wersjaTypeHandlera Określa wersję programu obsługi skryptów. ciąg

Przykłady użycia

Przykłady szybkiego startu platformy Azure

Poniższe szablony szybkiego startu platformy Azure zawierają przykłady Bicep na potrzeby wdrażania tego typu zasobu.

Plik Bicep Opis
Wdrażanie zestawu skalowania maszyn wirtualnych z systemem Windows z obsługą zaufanego uruchamiania Ten szablon umożliwia wdrożenie zaufanego zestawu skalowania maszyn wirtualnych z obsługą uruchamiania maszyn wirtualnych z systemem Windows przy użyciu najnowszej poprawkowej wersji systemu Windows Server 2016, Windows Server 2019 lub Windows Server 2022 Azure Edition. Te maszyny wirtualne znajdują się za modułem równoważenia obciążenia z regułami translatora adresów sieciowych dla połączeń RDP. Jeśli włączysz protokół Secureboot i vTPM, rozszerzenie zaświadczania gościa zostanie zainstalowane w zestawie skalowania maszyn wirtualnych. To rozszerzenie wykona zdalne zaświadczanie przez chmurę.

Definicja zasobu szablonu usługi ARM

Typ zasobu virtualMachineScaleSets/extensions można wdrożyć przy użyciu operacji docelowych:

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Compute/virtualMachineScaleSets/extensions, dodaj następujący kod JSON do szablonu.

{
  "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"
  }
}

Wartości właściwości

Microsoft.Compute/virtualMachineScaleSets/extensions

Nazwa Opis Wartość
apiVersion (wersja interfejsu api) Wersja interfejsu API '2025-04-01'
nazwa Nazwa zasobu ciąg (wymagany)
Właściwości Opisuje właściwości rozszerzenia zestawu skalowania maszyn wirtualnych. Właściwości VirtualMachineScaleSetExtensionProperties
typ Typ zasobu "Microsoft.Compute/virtualMachineScaleSets/extensions"

KeyVaultSecretReference (Odniesienie do klucza)

Nazwa Opis Wartość
secretUrl (tajny adres URL) Adres URL odwołujący się do wpisu tajnego w usłudze Key Vault. ciąg (wymagany)
repozytorium sourceVault (repozytorium źródłowe) Względny adres URL usługi Key Vault zawierający wpis tajny. SubResource (wymagane)

Podźródło

Nazwa Opis Wartość
id Identyfikator zasobu ciąg

Właściwości VirtualMachineScaleSetExtensionProperties

Nazwa Opis Wartość
automatycznaAktualizacjaMniejszejWersji Wskazuje, czy rozszerzenie powinno używać nowszej wersji pomocniczej, jeśli jest ona dostępna w czasie wdrażania. Po wdrożeniu rozszerzenie nie uaktualni wersji pomocniczych, chyba że zostanie ponownie wdrożone, nawet jeśli ta właściwość ma wartość true. Bool
włączAutomatycznąAktualizację Wskazuje, czy rozszerzenie powinno zostać automatycznie uaktualnione przez platformę, jeśli jest dostępna nowsza wersja rozszerzenia. Bool
forceUpdateTag (Znacznik siły) Jeśli podano wartość i różni się od poprzedniej wartości, program obsługi rozszerzeń zostanie zmuszony do aktualizacji, nawet jeśli konfiguracja rozszerzenia nie uległa zmianie. ciąg
protectedSettings (ustawienia chronione) Rozszerzenie może zawierać ustawienia protectedSettings lub protectedSettingsFromKeyVault lub w ogóle nie są chronione. jakikolwiek
protectedSettingsFromKeyVault Rozszerzenia chronione ustawienia, które są przekazywane przez odwołanie i używane z magazynu kluczy KeyVaultSecretReference (Odniesienie do klucza)
provisionAfterExtensions (Rozszerzenia aprowizacji) Kolekcja nazw rozszerzeń, po których należy aprowizować to rozszerzenie. ciąg znakowy[]
wydawca Nazwa wydawcy programu obsługi rozszerzeń. ciąg
ustawienia Ustawienia publiczne w formacie Json dla rozszerzenia. jakikolwiek
suppressFailures (pomijanieBłędy) Wskazuje, czy awarie wynikające z rozszerzenia zostaną pominięte (błędy operacyjne, takie jak brak nawiązywania połączenia z maszyną wirtualną, nie zostaną pominięte niezależnie od tej wartości). Wartość domyślna to false. Bool
typ Określa typ rozszerzenia; przykładem jest "CustomScriptExtension". ciąg
wersjaTypeHandlera Określa wersję programu obsługi skryptów. ciąg

Przykłady użycia

Szablony szybkiego startu platformy Azure

Następujące szablony szybkiego startu platformy Azure wdrożyć ten typ zasobu.

Szablon Opis
Tworzenie i szyfrowanie nowego zestawu skalowania maszyn wirtualnych z systemem Windows za pomocą serwera przesiadkowego

Wdrażanie do Azure
Ten szablon umożliwia wdrożenie prostego zestawu skalowania maszyn wirtualnych z systemem Windows przy użyciu najnowszej poprawkowej wersji serwera systemu Windows. Ten szablon wdraża również serwer przesiadkowy z publicznym adresem IP w tej samej sieci wirtualnej. Połączenie z serwerem przesiadkowym można nawiązać za pośrednictwem tego publicznego adresu IP, a następnie nawiązać połączenie z maszynami wirtualnymi w zestawie skalowania za pośrednictwem prywatnych adresów IP. Ten szablon umożliwia szyfrowanie w zestawie skalowania maszyn wirtualnych z systemem Windows.
Wdrażanie zestawu skalowania maszyn wirtualnych z systemem Windows z obsługą zaufanego uruchamiania

Wdrażanie do Azure
Ten szablon umożliwia wdrożenie zaufanego zestawu skalowania maszyn wirtualnych z obsługą uruchamiania maszyn wirtualnych z systemem Windows przy użyciu najnowszej poprawkowej wersji systemu Windows Server 2016, Windows Server 2019 lub Windows Server 2022 Azure Edition. Te maszyny wirtualne znajdują się za modułem równoważenia obciążenia z regułami translatora adresów sieciowych dla połączeń RDP. Jeśli włączysz protokół Secureboot i vTPM, rozszerzenie zaświadczania gościa zostanie zainstalowane w zestawie skalowania maszyn wirtualnych. To rozszerzenie wykona zdalne zaświadczanie przez chmurę.
deploy Darktrace Autoscaling vSensors

Wdrażanie do Azure
Ten szablon umożliwia wdrożenie automatycznego skalowania wdrożenia modułów vSensorów Darktrace
ten szablon odszyfrowuje wcześniej zaszyfrowane zestawu skalowania maszyn wirtualnych z systemem Windows

Wdrażanie do Azure
Ten szablon wyłącza szyfrowanie w uruchomionym zestawie skalowania maszyn wirtualnych z systemem Windows
Ten szablon szyfruje uruchomioną usługę VMSS systemu Windows

Wdrażanie do Azure
Ten szablon umożliwia szyfrowanie w uruchomionym zestawie skalowania maszyn wirtualnych z systemem Windows

Definicja zasobu narzędzia Terraform (dostawcy AzAPI)

Typ zasobu virtualMachineScaleSets/extensions można wdrożyć przy użyciu operacji docelowych:

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Compute/virtualMachineScaleSets/extensions, dodaj następujący program Terraform do szablonu.

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"
    }
  }
}

Wartości właściwości

Microsoft.Compute/virtualMachineScaleSets/extensions

Nazwa Opis Wartość
nazwa Nazwa zasobu ciąg (wymagany)
parent_id (identyfikator rodzica) Identyfikator zasobu, który jest elementem nadrzędnym dla tego zasobu. Identyfikator zasobu typu: virtualMachineScaleSets
Właściwości Opisuje właściwości rozszerzenia zestawu skalowania maszyn wirtualnych. Właściwości VirtualMachineScaleSetExtensionProperties
typ Typ zasobu "Microsoft.Compute/virtualMachineScaleSets/extensions@2025-04-01"

KeyVaultSecretReference (Odniesienie do klucza)

Nazwa Opis Wartość
secretUrl (tajny adres URL) Adres URL odwołujący się do wpisu tajnego w usłudze Key Vault. ciąg (wymagany)
repozytorium sourceVault (repozytorium źródłowe) Względny adres URL usługi Key Vault zawierający wpis tajny. SubResource (wymagane)

Podźródło

Nazwa Opis Wartość
id Identyfikator zasobu ciąg

Właściwości VirtualMachineScaleSetExtensionProperties

Nazwa Opis Wartość
automatycznaAktualizacjaMniejszejWersji Wskazuje, czy rozszerzenie powinno używać nowszej wersji pomocniczej, jeśli jest ona dostępna w czasie wdrażania. Po wdrożeniu rozszerzenie nie uaktualni wersji pomocniczych, chyba że zostanie ponownie wdrożone, nawet jeśli ta właściwość ma wartość true. Bool
włączAutomatycznąAktualizację Wskazuje, czy rozszerzenie powinno zostać automatycznie uaktualnione przez platformę, jeśli jest dostępna nowsza wersja rozszerzenia. Bool
forceUpdateTag (Znacznik siły) Jeśli podano wartość i różni się od poprzedniej wartości, program obsługi rozszerzeń zostanie zmuszony do aktualizacji, nawet jeśli konfiguracja rozszerzenia nie uległa zmianie. ciąg
protectedSettings (ustawienia chronione) Rozszerzenie może zawierać ustawienia protectedSettings lub protectedSettingsFromKeyVault lub w ogóle nie są chronione. jakikolwiek
protectedSettingsFromKeyVault Rozszerzenia chronione ustawienia, które są przekazywane przez odwołanie i używane z magazynu kluczy KeyVaultSecretReference (Odniesienie do klucza)
provisionAfterExtensions (Rozszerzenia aprowizacji) Kolekcja nazw rozszerzeń, po których należy aprowizować to rozszerzenie. ciąg znakowy[]
wydawca Nazwa wydawcy programu obsługi rozszerzeń. ciąg
ustawienia Ustawienia publiczne w formacie Json dla rozszerzenia. jakikolwiek
suppressFailures (pomijanieBłędy) Wskazuje, czy awarie wynikające z rozszerzenia zostaną pominięte (błędy operacyjne, takie jak brak nawiązywania połączenia z maszyną wirtualną, nie zostaną pominięte niezależnie od tej wartości). Wartość domyślna to false. Bool
typ Określa typ rozszerzenia; przykładem jest "CustomScriptExtension". ciąg
wersjaTypeHandlera Określa wersję programu obsługi skryptów. ciąg

Przykłady użycia

Przykłady programu Terraform

Podstawowy przykład wdrażania rozszerzenia dla zestawu skalowania maszyn wirtualnych.

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    = ["*"]
}