Azure naming · Microsoft.Compute/virtualMachineScaleSets

vmss Virtual machine scale set

A scale set of identical or flexible VMs.

Naming constraints

CAF abbreviationvmss
Resource typeMicrosoft.Compute/virtualMachineScaleSets
Length1–64 characters
CaseMixed case
Allowed charactersLetters, numbers, and hyphens. No underscores or periods. Can't end with a period or hyphen.
Uniqueness Resource group
Windows host namemax 15 characters
SeparatorHyphen
Watch out: Instance host names are derived from the scale set's computer-name prefix, and Windows host names are capped at 15 characters. AKS creates its own scale sets (aks-<pool>-<id>-vmss) in the node resource group, so don't enforce a vmss prefix there.

Source: Microsoft Learn, “Naming rules and restrictions for Azure resources”, checked October 2026. Abbreviation from the Cloud Adoption Framework.

Example & copy-ready

A worked name for workload app, env prod, region weu, instance 001.

Example name
vmss-app-prod-weu-001 Valid

⚠ 21 characters is over the 15-character Windows host name limit.

Validation regex for CI checks or pre-commit hooks (.NET and JavaScript)
^(?=.{1,64}$)[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$
Bicep naming expression
var name = take('vmss-${workload}-${env}-${region}-${instance}', 64)
Terraform local
locals {
  name = substr(join("-", compact(["vmss", var.workload, var.env, var.region, var.instance])), 0, 64)
}

Azure Policy can't evaluate regular expressions, so a policy can check the vmss prefix but not the full format. Run the regex in your pipeline, or audit existing names on a schedule.

Uniqueness scope

Unique within the parent resource group. The same name can be reused in a different resource group.

Open in the name generator