From Azure diagram to Bicep, Terraform & ARM
The short version: Calma Studio exports your Azure architecture diagram as infrastructure-as-code — Bicep, Terraform or ARM — from the same canvas you drew it on. Diagram tools stop at a picture; Studio turns the picture into code you can deploy. Free, in your browser, no signup. Open Studio →
Why the drawing and the code should be one thing
Drawing an architecture and then hand-writing the IaC for it is doing the same work twice — and the two drift apart the moment someone edits one and not the other. The diagram becomes a lie the week after it's drawn. Studio keeps them as one artefact: the diagram is the source, and the code comes out of it, so what you present and what you deploy start from the same truth.
How it works
- Draw the architecture in Studio — resources, resource groups, VNets, subnets, regions and tags.
- Pick a target — Bicep, Terraform (HCL) or ARM (JSON).
- Export — Studio generates the templates and wires up the dependencies (App Service Plans, Container Apps environments, NICs, subnets, storage accounts for Functions) so the output is a coherent deployment, not a pile of disconnected resources.
A quick before / after
Draw an App Service that sits on a plan, and the Bicep export wires the dependency for you:
resource plan 'Microsoft.Web/serverfarms@2023-12-01' = {
name: 'plan-web'
location: 'westeurope'
sku: { name: 'P1v3' }
}
resource site 'Microsoft.Web/sites@2023-12-01' = {
name: 'app-web'
location: 'westeurope'
properties: { serverFarmId: plan.id } // the dependency Studio resolves from the diagram
}
You drew two boxes and a link; you got a plan, a site, and the reference between them — the part that's tedious to hand-write and easy to get wrong.
Which format should you export?
| Format | Best when |
|---|---|
| Bicep | You're all-in on Azure and want the cleanest, most readable native IaC |
| Terraform | You're multi-cloud or already standardised on Terraform/HCL across teams |
| ARM (JSON) | You need the raw native template — for tooling, policy, or existing ARM pipelines |
Studio produces all three from the same diagram, so the choice is yours at export time, not locked in when you start drawing.
Almost no diagram tool does this
Turning an Azure diagram into deployable infrastructure-as-code is rare. Most diagram tools — Lucidchart, Cloudcraft, draw.io — are built to produce a picture (PNG, SVG, PDF), and a few can generate Terraform for other clouds. Exporting Azure Bicep and ARM straight from a diagram is essentially unique to Calma Studio — which is exactly why it's worth building around.
| What Calma Studio exports from your diagram | |
|---|---|
| Bicep | ✅ |
| Terraform | ✅ |
| ARM | ✅ |
Honest about the edges
Export covers the common resource types cleanly, and the generated Bicep and Terraform pass bicep build
/ terraform validate on standard designs. Exotic or heavily-customised resources may need a hand-finish
— the export is a strong, deployable scaffold, not a promise that every corner of Azure round-trips
untouched. We'd rather tell you that up front than oversell it.
Draw it, then export to code — free →
FAQ
- Which formats can I export? Bicep, Terraform (HCL) and ARM (JSON).
- Is the generated code deployable? For standard designs, yes — it validates with
bicep build/terraform validate. Unusual resources may need a small hand-finish. - Do other diagram tools do this? Rarely. Most export images; a few do Terraform; Bicep and ARM export from a diagram is essentially unique.
- Can I set region and tags before exporting? Yes, per resource or at the project level, and it carries through to the code.
- Does the export handle dependencies? Yes — plans, environments, NICs, subnets and Functions storage are wired up so the output is a coherent deployment.
- Do I need an account? No. Drawing and exporting are free and run in your browser.
