Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
To assist with creating Azure Resource Manager templates, you can export a template from existing resources as either a Bicep file or an ARM JSON template. The exported template helps you understand the syntax and properties needed for resource deployment. To streamline future deployments, use the exported template as a starting point and customize it for your needs. While the export process generates a functional template, most exported templates require adjustments before they can be used for deployment.
Resource Manager enables you to pick one or more resources for exporting to a template. You can focus on exactly the resources you need in the template.
This article shows how to export templates through the portal. For other options, see:
There are two ways to export a template:
Export from resource group or resource. This option generates a new template from existing resources. The exported template is a "snapshot" of the current state of the resource group. You can export an entire resource group or specific resources within that resource group.
Save from history. This option supports exporting only ARM JSON templates. It retrieves an exact copy of the template used for deployment, allowing you to select a specific deployment from the deployment history. After exporting, you can decompile them into to Bicep files.
Depending on the option you choose, the exported templates have different qualities.
From resource group or resource | From history |
---|---|
Template is autogenerated. You'll probably want to improve the code before deploying it. | Template is an exact copy of the one created by the template author. It's ready to be redeployed without any changes. |
Template is snapshot of the resources' current state. It includes any manual changes you made after deployment. | Template only shows state of resources at the time of deployment. Any manual changes you made after deployment aren't included. |
You can select which resources from a resource group to export. | All resources for a specific deployment are included. You can't pick a subset of those resources or add resources that were added at a different time. |
Template includes all properties for the resources, including some properties you wouldn't normally set during deployment. You might want to remove or clean up these properties before reusing the template. | Template includes only the properties needed for the deployment. The template is more sparse and easier to read. |
Template probably doesn't include all of the parameters you need for reuse. Most property values are hard-coded in the template. To redeploy the template in other environments, you need to add parameters that increase the ability to configure the resources. You can unselect Include parameters so that you can author your own parameters. | Template includes parameters that make it easy to redeploy in different environments. |
Export the template from a resource group or resource, when:
Export the template from the history, when:
Export is not guaranteed to succeed. Export is not a reliable way to turn pre-existing resources into templates that are usable in production. It is better to create resources from scratch using hand-written Bicep file, ARM template or terraform.
When exporting from a resource group or resource, the exported template is generated from the published schemas for each resource type. Occasionally, the schema doesn't have the latest version for a resource type. Check your exported template to make sure it includes the properties you need. If necessary, edit the exported template to use the API version you need.
Some password parameters might be missing from the exported templates. You need to check template reference, and manually add these parameters before you can use the templates to deploy resources.
The export template feature doesn't support exporting Azure Data Factory resources. To learn about how you can export Data Factory resources, see Copy or clone a data factory in Azure Data Factory.
To export resources created through classic deployment model, you must migrate them to the Resource Manager deployment model.
If you get a warning when exporting a template that indicates a resource type wasn't exported, you can still discover the properties for that resource. For resource properties, see template reference. You can also look at the Azure REST API for the resource type.
There's a limit of 200 resources in the resource group you create the exported template for. If you attempt to export a resource group that has more than 200 resources, the error message Export template is not supported for resource groups more than 200 resources
is shown.
To export one or more resources from a resource group:
Select the resource group that contains the resources you want to export.
Select one or more resources by selecting the checkboxes. To select all, select the checkbox on the left of Name. The Export template from the top menu only becomes enabled after you've selected at least one resource.
Select Export template from the top menu. The Export template from the left menu exports all the resources in the group to a template.
Select ARM Template. The exported template is displayed, and is available to download and deploy.
Include parameters is selected by default. When selected, all template parameters are included when the template is generated. If you'd like to author your own parameters, toggle this checkbox to not include them.
To export one resource:
Select the resource group containing the resource you want to export.
Select the resource that you want to export to open the resource.
For that resource, select Export template in the left pane.
The exported template is displayed, and is available to download and deploy. The template only contains the single resource. Include parameters is selected by default. When selected, all template parameters are included when the template is generated. If you’d like to author your own parameters, toggle this checkbox to not include them.
You can export the template that was used to deploy existing resources. The template you get is exactly the one that was used for deployment.
Select the resource group you want to export.
Select the link under Deployments.
Select one of the deployments from the deployment history.
Select Template. The template used for this deployment is displayed, and is available for download.
Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayTraining
Module
Deploy Azure infrastructure by using JSON ARM templates - Training
Write JSON Azure Resource Manager templates by using Visual Studio Code to deploy your infrastructure to Azure consistently and reliably.
Certification
Microsoft Certified: Azure Developer Associate - Certifications
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.