Loading ARM to Terraform Converter...

How to Convert Azure ARM Templates to Terraform - Complete Guide

Step 1

Input Your Azure ARM Template

Start by providing your Azure Resource Manager template. Whether you're migrating from ARM to Terraform or modernizing your Azure Infrastructure as Code:

•
Paste directly: Copy your ARM template (JSON or YAML) and paste it into the input editor
•
Upload files: Click "Upload" to select your .json or .template files
•
Try the sample: Click "Sample" to load a complete Azure infrastructure example with VNet and Storage
Step 2

Automatic Conversion Process

Our intelligent converter analyzes your ARM template and generates idiomatic Terraform HCL using the azurerm provider:

•
Resource mapping: Converts 40+ Azure ARM resource types to Terraform azurerm provider resources
•
ARM functions: Translates parameters(), variables(), resourceId() to Terraform syntax
•
Parameters → Variables: ARM parameters become Terraform variables with proper types
•
Outputs preserved: ARM outputs are converted to Terraform outputs
•
Provider setup: Generates terraform required_providers block and azurerm provider configuration
Step 3

Review Generated Terraform Code

Review the generated main.tf configuration. The converter creates production-ready Terraform code for Azure:

•
Azure resources: VMs, VNets, Storage Accounts, AKS clusters, App Services, SQL databases, and more
•
Location handling: ARM location parameters correctly mapped to Azure regions
•
Tags preserved: Resource tags maintained for cost management and organization
Step 4

Download and Deploy with Terraform

Deploy your Azure infrastructure with Terraform:

•
Download: Save main.tf to your project directory
•
Initialize: Run terraform init to download the azurerm provider
•
Authenticate: Run az login to authenticate with Azure
•
Apply: Run terraform apply to provision Azure resources

Frequently Asked Questions

Which Azure resources are supported?

The converter supports 40+ Azure resource types including Virtual Machines, Virtual Networks, Storage Accounts, AKS clusters, App Services, SQL databases, CosmosDB, Container Registries, Key Vaults, Application Insights, and more.

How are ARM template functions handled?

Common ARM template functions are converted: parameters() becomes variables, variables() becomes locals, resourceId() becomes resource references. Complex expressions may need manual review.

Is the generated code production-ready?

The generated Terraform provides a solid starting point. Review the output, adjust resource properties as needed, and run terraform plan before deploying. ARM-specific features like nested deployments may need manual translation.

Can I import existing Azure resources?

Yes! After generating Terraform code, use terraform import to manage existing Azure resources that match your template. This allows you to adopt existing infrastructure without recreation.

Is my ARM template secure during conversion?

Absolutely! All conversion happens client-side in your browser. Your ARM templates, Azure configurations, and sensitive data never leave your computer or get sent to any server.

What about Azure Bicep files?

Bicep files need to be compiled to ARM templates first using az bicep build, then the resulting ARM JSON can be converted to Terraform.