You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Bicep is a domain-specific language (DSL) for deploying Azure resources. It provides a cleaner, more concise syntax compared to raw ARM template JSON, while compiling down to ARM templates behind the scenes. Microsoft considers Bicep the recommended authoring experience for Azure IaC.
ARM templates work, but JSON is verbose. Consider a simple storage account:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "mystorageaccount",
"location": "[parameters('location')]",
"sku": { "name": "Standard_LRS" },
"kind": "StorageV2",
"properties": {
"minimumTlsVersion": "TLS1_2"
}
}
]
}
param location string = resourceGroup().location
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: 'mystorageaccount'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
minimumTlsVersion: 'TLS1_2'
}
}
The Bicep version is shorter, easier to read, and eliminates JSON boilerplate.
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.