Skip to main content

virtual_machine_scale_sets

Creates, updates, deletes, gets or lists a virtual_machine_scale_sets resource.

Overview

Namevirtual_machine_scale_sets
TypeResource
Idazure.compute.virtual_machine_scale_sets

Fields

The following fields are returned by SELECT queries:

NameDatatypeDescription
idstringFully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
namestringThe name of the resource.
additionalCapabilitiesobjectSpecifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
automaticRepairsPolicyobjectPolicy for automatic repairs.
constrainedMaximumCapacitybooleanOptional property which must either be set to True or omitted.
doNotRunExtensionsOnOverprovisionedVMsbooleanWhen Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
etagstringEtag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates.
extendedLocationobjectThe extended location of the Virtual Machine Scale Set.
externalHealthPolicyobjectSpecifies the external health policy for the virtual machine scale set.
highSpeedInterconnectPlacementstringSpecifies the high speed interconnect placement for the virtual machine scale set. Known values are: "None" and "Trunk". (None, Trunk)
hostGroupobjectSubResource.
identityobjectThe identity of the virtual machine scale set, if configured.
lifecycleHooksProfileobjectSpecifies the lifecycle hooks profile for the virtual machine scale set.
locationstringThe geo-location where the resource lives. Required.
orchestrationModestringSpecifies the orchestration mode for the virtual machine scale set. Known values are: "Uniform" and "Flexible". (Uniform, Flexible)
overprovisionbooleanSpecifies whether the Virtual Machine Scale Set should be overprovisioned.
placementobjectPlacement section specifies the user-defined constraints for virtual machine scale set hardware placement. Minimum api-version: 2025-04-01.
planobjectSpecifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
platformFaultDomainCountintegerFault Domain count for each placement group.
priorityMixPolicyobjectSpecifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
provisioningStatestringThe provisioning state, which only appears in the response.
proximityPlacementGroupobjectSubResource.
resiliencyPolicyobjectPolicy for Resiliency.
scaleInPolicyobjectSpecifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
scheduledEventsPolicyobjectThe ScheduledEventsPolicy.
singlePlacementGroupbooleanWhen true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
skuobjectThe virtual machine scale set sku.
skuProfileobjectSpecifies the sku profile for the virtual machine scale set.
spotRestorePolicyobjectSpecifies the Spot Restore properties for the virtual machine scale set.
systemDataobjectAzure Resource Manager metadata containing createdBy and modifiedBy information.
tagsobjectResource tags.
timeCreatedstring (date-time)Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
typestringThe type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts".
uniqueIdstringSpecifies the ID which uniquely identifies a Virtual Machine Scale Set.
upgradePolicyobjectThe upgrade policy.
virtualMachineProfileobjectThe virtual machine profile.
zonalPlatformFaultDomainAlignModestringSpecifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count. Known values are: "Aligned", "Unaligned", and "BestEffortAligned". (Aligned, Unaligned, BestEffortAligned)
zoneBalancebooleanWhether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set.
zonesarrayThe availability zones.

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
getselectresource_group_name, vm_scale_set_name, subscription_id$expandDisplay information about a virtual machine scale set.
listselectresource_group_name, subscription_idGets a list of all VM scale sets under a resource group.
list_by_locationselectlocation, subscription_idGets all the VM scale sets under the specified subscription for the specified location.
list_allselectsubscription_idGets a list of all VM Scale Sets in the subscription, regardless of the associated resource group. Use nextLink property in the response to get the next page of VM Scale Sets. Do this till nextLink is null to fetch all the VM Scale Sets.
create_or_updateinsertresource_group_name, vm_scale_set_name, subscription_id, locationCreate or update a VM scale set.
updateupdateresource_group_name, vm_scale_set_name, subscription_idUpdate a VM scale set.
create_or_updatereplaceresource_group_name, vm_scale_set_name, subscription_id, locationCreate or update a VM scale set.
deletedeleteresource_group_name, vm_scale_set_name, subscription_idforceDeletionDeletes a VM scale set.
list_skusexecresource_group_name, vm_scale_set_name, subscription_idGets a list of SKUs available for your VM scale set, including the minimum and maximum VM instances allowed for each SKU.
get_instance_viewexecresource_group_name, vm_scale_set_name, subscription_idGets the status of a VM scale set instance.
get_os_upgrade_historyexecresource_group_name, vm_scale_set_name, subscription_idGets list of OS upgrades on a VM scale set instance.
approve_rolling_upgradeexecresource_group_name, vm_scale_set_name, subscription_idApprove upgrade on deferred rolling upgrades for OS disks in the virtual machines in a VM scale set.
convert_to_single_placement_groupexecresource_group_name, vm_scale_set_name, subscription_idConverts SinglePlacementGroup property to false for a existing virtual machine scale set.
deallocateexecresource_group_name, vm_scale_set_name, subscription_idhibernateDeallocates specific virtual machines in a VM scale set. Shuts down the virtual machines and releases the compute resources. You are not billed for the compute resources that this virtual machine scale set deallocates.
delete_instancesexecresource_group_name, vm_scale_set_name, subscription_id, instanceIdsforceDeletionDeletes virtual machines in a VM scale set.
force_recovery_service_fabric_platform_update_domain_walkexecresource_group_name, vm_scale_set_name, subscription_id, platformUpdateDomainzone, placementGroupIdManual platform update domain walk to update virtual machines in a service fabric virtual machine scale set.
update_instancesexecresource_group_name, vm_scale_set_name, subscription_id, instanceIdsUpgrades one or more virtual machines to the latest SKU set in the VM scale set model.
perform_maintenanceexecresource_group_name, vm_scale_set_name, subscription_idPerform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications _.
power_offexecresource_group_name, vm_scale_set_name, subscription_idskipShutdownPower off (stop) one or more virtual machines in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.
reapplyexecresource_group_name, vm_scale_set_name, subscription_idReapplies the Virtual Machine Scale Set Virtual Machine Profile to the Virtual Machine Instances.
redeployexecresource_group_name, vm_scale_set_name, subscription_idShuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
reimageexecresource_group_name, vm_scale_set_name, subscription_idReimages (upgrade the operating system) one or more virtual machines in a VM scale set which don't have a ephemeral OS disk, for virtual machines who have a ephemeral OS disk the virtual machine is reset to initial state.
reimage_allexecresource_group_name, vm_scale_set_name, subscription_idReimages all the disks ( including data disks ) in the virtual machines in a VM scale set. This operation is only supported for managed disks.
restartexecresource_group_name, vm_scale_set_name, subscription_idRestarts one or more virtual machines in a VM scale set.
set_orchestration_service_stateexecresource_group_name, vm_scale_set_name, subscription_id, serviceName, actionChanges ServiceState property for a given service.
startexecresource_group_name, vm_scale_set_name, subscription_idStarts one or more virtual machines in a VM scale set.
scale_outexecresource_group_name, vm_scale_set_name, subscription_id, capacityScales out one or more virtual machines in a VM scale set.

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
locationstringThe location name. Required.
platformUpdateDomainintegerThe platform update domain for which a manual recovery walk is requested. Required.
resource_group_namestringThe name of the resource group. The name is case insensitive. Required.
subscription_idstring
vm_scale_set_namestringThe name of the VM scale set. Required.
$expandstringThe expand expression to apply on the operation. 'UserData' retrieves the UserData property of the VM scale set that was provided by the user during the VM scale set Create/Update operation. "userData" Default value is None.
forceDeletionbooleanOptional parameter to force delete virtual machines from the VM scale set. (Feature in Preview). Default value is None.
hibernatebooleanOptional parameter to hibernate a virtual machine from the VM scale set. (This feature is available for VMSS with Flexible OrchestrationMode only). Default value is None.
placementGroupIdstringThe placement group id for which the manual recovery walk is requested. Default value is None.
skipShutdownbooleanThe parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified. Default value is None.
zonestringThe zone in which the manual recovery walk is requested for cross zone virtual machine scale set. Default value is None.

SELECT examples

Display information about a virtual machine scale set.

SELECT
id,
name,
additionalCapabilities,
automaticRepairsPolicy,
constrainedMaximumCapacity,
doNotRunExtensionsOnOverprovisionedVMs,
etag,
extendedLocation,
externalHealthPolicy,
highSpeedInterconnectPlacement,
hostGroup,
identity,
lifecycleHooksProfile,
location,
orchestrationMode,
overprovision,
placement,
plan,
platformFaultDomainCount,
priorityMixPolicy,
provisioningState,
proximityPlacementGroup,
resiliencyPolicy,
scaleInPolicy,
scheduledEventsPolicy,
singlePlacementGroup,
sku,
skuProfile,
spotRestorePolicy,
systemData,
tags,
timeCreated,
type,
uniqueId,
upgradePolicy,
virtualMachineProfile,
zonalPlatformFaultDomainAlignMode,
zoneBalance,
zones
FROM azure.compute.virtual_machine_scale_sets
WHERE resource_group_name = '{{ resource_group_name }}' -- required
AND vm_scale_set_name = '{{ vm_scale_set_name }}' -- required
AND subscription_id = '{{ subscription_id }}' -- required
AND $expand = '{{ $expand }}'
;

INSERT examples

Create or update a VM scale set.

INSERT INTO azure.compute.virtual_machine_scale_sets (
tags,
location,
sku,
plan,
properties,
identity,
zones,
extendedLocation,
placement,
resource_group_name,
vm_scale_set_name,
subscription_id
)
SELECT
'{{ tags }}',
'{{ location }}' /* required */,
'{{ sku }}',
'{{ plan }}',
'{{ properties }}',
'{{ identity }}',
'{{ zones }}',
'{{ extendedLocation }}',
'{{ placement }}',
'{{ resource_group_name }}',
'{{ vm_scale_set_name }}',
'{{ subscription_id }}'
RETURNING
id,
name,
etag,
extendedLocation,
identity,
location,
placement,
plan,
properties,
sku,
systemData,
tags,
type,
zones
;

UPDATE examples

Update a VM scale set.

UPDATE azure.compute.virtual_machine_scale_sets
SET
tags = '{{ tags }}',
sku = '{{ sku }}',
plan = '{{ plan }}',
properties = '{{ properties }}',
identity = '{{ identity }}',
zones = '{{ zones }}',
placement = '{{ placement }}'
WHERE
resource_group_name = '{{ resource_group_name }}' --required
AND vm_scale_set_name = '{{ vm_scale_set_name }}' --required
AND subscription_id = '{{ subscription_id }}' --required
RETURNING
id,
name,
etag,
extendedLocation,
identity,
location,
placement,
plan,
properties,
sku,
systemData,
tags,
type,
zones;

REPLACE examples

Create or update a VM scale set.

REPLACE azure.compute.virtual_machine_scale_sets
SET
tags = '{{ tags }}',
location = '{{ location }}',
sku = '{{ sku }}',
plan = '{{ plan }}',
properties = '{{ properties }}',
identity = '{{ identity }}',
zones = '{{ zones }}',
extendedLocation = '{{ extendedLocation }}',
placement = '{{ placement }}'
WHERE
resource_group_name = '{{ resource_group_name }}' --required
AND vm_scale_set_name = '{{ vm_scale_set_name }}' --required
AND subscription_id = '{{ subscription_id }}' --required
AND location = '{{ location }}' --required
RETURNING
id,
name,
etag,
extendedLocation,
identity,
location,
placement,
plan,
properties,
sku,
systemData,
tags,
type,
zones;

DELETE examples

Deletes a VM scale set.

DELETE FROM azure.compute.virtual_machine_scale_sets
WHERE resource_group_name = '{{ resource_group_name }}' --required
AND vm_scale_set_name = '{{ vm_scale_set_name }}' --required
AND subscription_id = '{{ subscription_id }}' --required
AND forceDeletion = '{{ forceDeletion }}'
;

Lifecycle Methods

Gets a list of SKUs available for your VM scale set, including the minimum and maximum VM instances allowed for each SKU.

EXEC azure.compute.virtual_machine_scale_sets.list_skus 
@resource_group_name='{{ resource_group_name }}' --required,
@vm_scale_set_name='{{ vm_scale_set_name }}' --required,
@subscription_id='{{ subscription_id }}' --required
;