Azure Resource Manager (ARM) Template

The ARM template is JavaScript Object Notation (JSON) file that defines resources which will be deployed and is made up of different sections.

In its simplest structure, a template has the following elements:
"$schema": "",
"contentVersion": "",
"apiProfile": "",
"parameters": { },
"variables": { },
"functions": [ ],
"resources": [ ],
"outputs": { }


Location of the JSON schema file that describes the version of the template language.

Version of the template (such as You can provide any value for this element. Use this value to document significant changes in your template.

An API version that serves as a collection of API versions for resource types. Use this value to avoid having to specify API versions for each resource in the template.

Allows for specifying  values to be provided when deployment is executed to customize resource deployment. For example specifying environment (such as dev, test, and production). Without parameters the template will always deploy with the same names, locations and properties.

These do not need to be defined but can be used to simplify the template by constructing values that can be used throughout the template.

User-defined functions that are available within the template.

Resource types that are deployed or updated in a resource group or subscription.

Values that are returned from deployment are specified here

Leave a Reply