Associate a maintenance configuration
March 21, 2025 ยท View on GitHub
SYNOPSIS
Use a maintenance configuration for virtual machines.
DESCRIPTION
Azure Virtual Machines (VMs) support maintenance configurations. You can use the Maintenance Configurations to control and manage updates for Azure VM resources. Configuring a maintenance window and time zone allows you to reduce disruptions to your workloads during peak hours.
If a maintenance configuration is not associated:
- Updates managed by the platform may be still be scheduled for your virtual machine.
- The schedule determined by the platform may not align with your maintenance window.
Maintenance configurations also integrate with Azure Update Manager. Azure Update Manager can be used to apply guest operating system (OS) updates to keep your VMs secure and compliant.
RECOMMENDATION
Consider associating a maintenance configuration to your VM to reduce unplanned disruptions to your workloads.
EXAMPLES
Configure with Azure template
To deploy virtual machines that pass this rule:
- Deploy a
Microsoft.Maintenance/configurationAssignmentssub-resource (extension resource). - Set the
properties.maintenanceConfigurationIdproperty to the linked maintenance configuration resource Id.
For example:
{
"type": "Microsoft.Maintenance/configurationAssignments",
"apiVersion": "2023-04-01",
"scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"maintenanceConfigurationId": "[resourceId('Microsoft.Maintenance/maintenanceConfigurations', parameters('name'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Maintenance/maintenanceConfigurations', parameters('name'))]",
"[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]"
]
}
Configure with Bicep
To deploy virtual machines that pass this rule:
- Deploy a
Microsoft.Maintenance/configurationAssignmentssub-resource (extension resource). - Set the
properties.maintenanceConfigurationIdproperty to the linked maintenance configuration resource Id.
For example:
resource config 'Microsoft.Maintenance/configurationAssignments@2023-04-01' = {
name: name
location: location
scope: vm
properties: {
maintenanceConfigurationId: maintenanceConfiguration.id
}
}