Use Objects With a Bicep Template

This blog post will show how to create an object with Bicep and use it in a Bicep template.


In our previous post, we showed how to declare a parameter with Bicep and the types of parameters available to us. One of the available parameters is an object type.

Objects in Bicep allow us to create a parameter with multiple parameters type (string and int). We can then use the object to hold configuration details of a resource, as you will see soon.


I have part of a configuration template in the example below that creates a MySQL Server.

In the first six lines of the code below, I declare the object and populate it with the configuration properties of the MySQL Server.

In the resource part of the configuration, I’m using the information that is in the object to create the MySQL Server.

To access information inside the object, I’m using the following format.


You can see the code below.

param mysqlsrv object = {
  skuname: 'GP_Gen5_2' 
  location: resourceGroup().location
  tier: 'GeneralPurpose'
  capacity: 2
  servername: 'ntweeklysql10'
resource mysqlserver 'Microsoft.DBforMySQL/servers@2017-12-01' = {
  name: mysqlsrv.servername
  location: mysqlsrv.location

 sku: {
    name: mysqlsrv.skuname
    capacity: mysqlsrv.capacity
    tier: mysqlsrv.tier

1 thought on “Use Objects With a Bicep Template”

Comments are closed.