Microsoft.Compute availabilitySets 2023-09-01

Bicep resource definition

The availabilitySets resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Compute/availabilitySets resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.Compute/availabilitySets@2023-09-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  sku: {
    capacity: int
    name: 'string'
    tier: 'string'
  }
  properties: {
    platformFaultDomainCount: int
    platformUpdateDomainCount: int
    proximityPlacementGroup: {
      id: 'string'
    }
    virtualMachines: [
      {
        id: 'string'
      }
    ]
  }
}

Property values

availabilitySets

Name Description Value
name The resource name string (required)

Character limit: 1-80

Valid characters:
Alphanumerics, underscores, periods, and hyphens.

Start with alphanumeric. End with alphanumeric or underscore.
location Resource location string (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
sku Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. Sku
properties The instance view of a resource. AvailabilitySetProperties

AvailabilitySetProperties

Name Description Value
platformFaultDomainCount Fault Domain count. int
platformUpdateDomainCount Update Domain count. int
proximityPlacementGroup Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. SubResource
virtualMachines A list of references to all virtual machines in the availability set. SubResource[]

SubResource

Name Description Value
id Resource Id string

Sku

Name Description Value
capacity Specifies the number of virtual machines in the scale set. int
name The sku name. string
tier Specifies the tier of virtual machines in a scale set.

Possible Values:

Standard

Basic
string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
2 VMs in VNET - Internal Load Balancer and LB rules

Deploy to Azure
This template allows you to create 2 Virtual Machines in a VNET and under an internal Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces.
2 VMs in a Load Balancer and load balancing rules

Deploy to Azure
This template allows you to create 2 Virtual Machines under a Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines
2 VMs in a Load Balancer and configure NAT rules on the LB

Deploy to Azure
This template allows you to create 2 Virtual Machines in an Availability Set and configure NAT rules through the load balancer. This template also deploys a Storage Account, Virtual Network, Public IP address and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines
Create an Availability Set with 3 Fault Domains

Deploy to Azure
This template creates an Availability Set with 3 Fault Domains
Discover Private IP dynamically

Deploy to Azure
This template allows you to discover a private IP for a NIC dynamically. It passes the private IP of NIC0 to VM1 using custom script extensions which writes it to a file on VM1.
GlassFish on SUSE

Deploy to Azure
This template deploys a load balanced GlassFish (v3 or v4) cluster, consisting of a user defined number of SUSE (OpenSUSE or SLES) VMs.
Create VMs in Availability Sets using Resource Loops

Deploy to Azure
Create 2-5 VMs in Availability Sets using Resource Loops. The VMs can be Unbuntu or Windows with a maximum of 5 VMs since this sample uses a single storageAccount
Multi VM Template with Managed Disk

Deploy to Azure
This template will create N number of VM's with managed disks, public IPs and network interfaces. It will create the VMs in a single Availability Set. They will be provisioned in a Virtual Network which will also be created as part of the deployment
CentOS/UbuntuServer Auto Dynamic Disks & Docker 1.12(cs)

Deploy to Azure
This is a common template for creating single instance CentOS 7.2/7.1/6.5 or Ubuntu Server 16.04.0-LTS with configurable number of data disks (configurable sizes). Maximum 16 disks can be mentioned in the portal parameters and maximum size of each disk should be less than 1023 GB. The MDADM RAID0 Array is automounted and survives restarts. Latest Docker 1.12(cs3) (Swarm), docker-compose 1.9.0 & docker-machine 0.8.2 is available for usage from user azure-cli is auto running as a docker container. This single instance template is an offshoot of the HPC/GPU Clusters Template @ https://github.com/azurebigcompute/BigComputeBench

ARM template resource definition

The availabilitySets resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Compute/availabilitySets resource, add the following JSON to your template.

{
  "type": "Microsoft.Compute/availabilitySets",
  "apiVersion": "2023-09-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "sku": {
    "capacity": "int",
    "name": "string",
    "tier": "string"
  },
  "properties": {
    "platformFaultDomainCount": "int",
    "platformUpdateDomainCount": "int",
    "proximityPlacementGroup": {
      "id": "string"
    },
    "virtualMachines": [
      {
        "id": "string"
      }
    ]
  }
}

Property values

availabilitySets

Name Description Value
type The resource type 'Microsoft.Compute/availabilitySets'
apiVersion The resource api version '2023-09-01'
name The resource name string (required)

Character limit: 1-80

Valid characters:
Alphanumerics, underscores, periods, and hyphens.

Start with alphanumeric. End with alphanumeric or underscore.
location Resource location string (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
sku Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. Sku
properties The instance view of a resource. AvailabilitySetProperties

AvailabilitySetProperties

Name Description Value
platformFaultDomainCount Fault Domain count. int
platformUpdateDomainCount Update Domain count. int
proximityPlacementGroup Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. SubResource
virtualMachines A list of references to all virtual machines in the availability set. SubResource[]

SubResource

Name Description Value
id Resource Id string

Sku

Name Description Value
capacity Specifies the number of virtual machines in the scale set. int
name The sku name. string
tier Specifies the tier of virtual machines in a scale set.

Possible Values:

Standard

Basic
string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
2 VMs in VNET - Internal Load Balancer and LB rules

Deploy to Azure
This template allows you to create 2 Virtual Machines in a VNET and under an internal Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces.
2 VMs in a Load Balancer and load balancing rules

Deploy to Azure
This template allows you to create 2 Virtual Machines under a Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines
2 VMs in a Load Balancer and configure NAT rules on the LB

Deploy to Azure
This template allows you to create 2 Virtual Machines in an Availability Set and configure NAT rules through the load balancer. This template also deploys a Storage Account, Virtual Network, Public IP address and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines
Create an Availability Set with 3 Fault Domains

Deploy to Azure
This template creates an Availability Set with 3 Fault Domains
Discover Private IP dynamically

Deploy to Azure
This template allows you to discover a private IP for a NIC dynamically. It passes the private IP of NIC0 to VM1 using custom script extensions which writes it to a file on VM1.
GlassFish on SUSE

Deploy to Azure
This template deploys a load balanced GlassFish (v3 or v4) cluster, consisting of a user defined number of SUSE (OpenSUSE or SLES) VMs.
Create VMs in Availability Sets using Resource Loops

Deploy to Azure
Create 2-5 VMs in Availability Sets using Resource Loops. The VMs can be Unbuntu or Windows with a maximum of 5 VMs since this sample uses a single storageAccount
Multi VM Template with Managed Disk

Deploy to Azure
This template will create N number of VM's with managed disks, public IPs and network interfaces. It will create the VMs in a single Availability Set. They will be provisioned in a Virtual Network which will also be created as part of the deployment
CentOS/UbuntuServer Auto Dynamic Disks & Docker 1.12(cs)

Deploy to Azure
This is a common template for creating single instance CentOS 7.2/7.1/6.5 or Ubuntu Server 16.04.0-LTS with configurable number of data disks (configurable sizes). Maximum 16 disks can be mentioned in the portal parameters and maximum size of each disk should be less than 1023 GB. The MDADM RAID0 Array is automounted and survives restarts. Latest Docker 1.12(cs3) (Swarm), docker-compose 1.9.0 & docker-machine 0.8.2 is available for usage from user azure-cli is auto running as a docker container. This single instance template is an offshoot of the HPC/GPU Clusters Template @ https://github.com/azurebigcompute/BigComputeBench

Terraform (AzAPI provider) resource definition

The availabilitySets resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Compute/availabilitySets resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Compute/availabilitySets@2023-09-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      platformFaultDomainCount = int
      platformUpdateDomainCount = int
      proximityPlacementGroup = {
        id = "string"
      }
      virtualMachines = [
        {
          id = "string"
        }
      ]
    }
    sku = {
      capacity = int
      name = "string"
      tier = "string"
    }
  })
}

Property values

availabilitySets

Name Description Value
type The resource type "Microsoft.Compute/availabilitySets@2023-09-01"
name The resource name string (required)

Character limit: 1-80

Valid characters:
Alphanumerics, underscores, periods, and hyphens.

Start with alphanumeric. End with alphanumeric or underscore.
location Resource location string (required)
parent_id To deploy to a resource group, use the ID of that resource group. string (required)
tags Resource tags Dictionary of tag names and values.
sku Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. Sku
properties The instance view of a resource. AvailabilitySetProperties

AvailabilitySetProperties

Name Description Value
platformFaultDomainCount Fault Domain count. int
platformUpdateDomainCount Update Domain count. int
proximityPlacementGroup Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. SubResource
virtualMachines A list of references to all virtual machines in the availability set. SubResource[]

SubResource

Name Description Value
id Resource Id string

Sku

Name Description Value
capacity Specifies the number of virtual machines in the scale set. int
name The sku name. string
tier Specifies the tier of virtual machines in a scale set.

Possible Values:

Standard

Basic
string