Bicep to ARM Converter - Generate ARM Templates
Free tool to convert Bicep files to Azure Resource Manager (ARM) JSON templates with automatic syntax conversion.
How to Convert Bicep to ARM Templates - Step by Step Guide
Input Your Bicep Code
Start with your Bicep file. While Bicep is the modern approach, sometimes you need ARM templates for tooling compatibility or pipeline requirements:
Example: Bicep Code
Clean and readable Bicep syntax:
targetScope = 'resourceGroup'
@description('Storage account name')
param storageAccountName string
param location string = resourceGroup().location
var storageAccountType = 'Standard_LRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}Automatic Conversion to ARM Template
The converter automatically transforms your Bicep code into standard ARM template JSON:
Example: Converted ARM Template
Standard ARM template format:
{
"$schema": "https://schema.management.azure.com/...",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"metadata": {
"description": "Storage account name"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"storageAccountType": "Standard_LRS"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[variables('storageAccountType')]"
},
"kind": "StorageV2"
}
]
}Review Generated ARM Template
Review the generated ARM template and verify the conversion:
Deploy Your ARM Template
Download and use your ARM template for deployment:
az deployment group create --template-file azuredeploy.jsonFrequently Asked Questions
Why would I convert Bicep back to ARM templates?
While Bicep is recommended for new development, ARM templates are still needed for: legacy tooling compatibility, certain CI/CD pipelines that don't yet support Bicep natively, sharing templates with teams not using Bicep, or integrating with third-party tools that require ARM JSON format.
Is the conversion lossy or does it preserve all features?
Bicep is designed to be a transparent abstraction over ARM templates. The official az bicep build command produces ARM templates with 100% feature parity. This browser-based tool handles common Bicep patterns, though complex features may require the Azure CLI for full fidelity.
Can I still use Bicep modules after conversion?
Bicep modules compile to nested ARM template deployments. When you convert a Bicep file with modules, each module reference becomes a nested deployment resource in the ARM template. The module files themselves need to be converted separately or referenced as linked templates.
What's the difference between this and az bicep build?
Azure CLI's az bicep build is the official tool with full Bicep language support. This browser-based converter provides quick, client-side conversion for common scenarios without requiring Azure CLI installation. For production deployments, we recommend the official Azure CLI tool.
Are ARM templates still supported by Microsoft?
Yes! ARM templates remain fully supported and are the foundation of Azure Resource Manager. Bicep compiles to ARM templates under the hood. Microsoft will continue supporting ARM templates indefinitely, though they recommend Bicep for new projects due to its improved developer experience.
Can I convert ARM templates to Bicep?
Absolutely! We offer the reverse converter: ARM to Bicep. You can also use Azure CLI's az bicep decompile command for official Microsoft conversion with full language support.
Related Tools
CloudFormation to Terraform
Convert AWS CloudFormation templates to Terraform HCL configuration
Terraform to CloudFormation
Convert Terraform HCL configurations to AWS CloudFormation templates in YAML or JSON
Azure ARM to Terraform
Convert Azure Resource Manager templates to Terraform HCL with azurerm provider
Ansible to Terraform
Convert Ansible playbooks to Terraform HCL for AWS, Azure, and GCP resources
ARM to Bicep
Convert Azure Resource Manager (ARM) templates to Bicep with modern syntax and improved readability
CloudFormation to Pulumi
Convert AWS CloudFormation templates to Pulumi TypeScript for modern infrastructure as code