Skip main navigation

ARM Template Structure

A primer on the benefits and restrictions when using templates in Azure Resource Manager (ARM)

With an understaning of the basics of Azure Resource Manager, you are now ready to discover Azure Resource Manager (ARM) Templates and Strucutres.

An Azure Resource Manager template consists of JSON and expressions that you can use to construct values for your deployment. You must limit the size your template to 1 megabyte (MB), and each parameter file to 64 kilobytes (KB.) The 1 MB limit applies to the final state of the template after it has been expanded with iterative resource definitions and values for variables and parameters.

In its simplest structure, a template contains the following elements:

"$schema": "",
"contentVersion": "",
"parameters": { },
"variables": { },
"resources": [ ],
"outputs": { }
  • $schema: The location of the JSON schema file that describes the version of the template language.
  • contentVersion: The version of the template (such as
  • parameters: The optional values that are provided when deployment is executed to customise resource deployment.
  • variables: The values that are used as JSON fragments in the template to simplify template language expressions.
  • resources: A manageable item that is available through Azure. Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more.
  • outputs: The values that are returned after deployment.
This article is from the free online

Microsoft Future Ready: Fundamentals of DevOps and Azure Pipeline

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now