Description:

  • Defines all resources and its dependencies in 1 deployment
  • Can also use parameters

Syntax:

  • Doc
  • Use with Azure ARM tools extension on VScode
    • Other editors (including Visual Studio) may not be able to process this schema. For those editors, use: this
    • For subscription deployments, use: this
    • For management group deployments, use: this
    • For tenant deployments, use: this
ElementDescription
schemaA required section that defines the location of the JSON schema file that describes the structure of JSON data. The version number you use depends on the scope of the deployment and your JSON editor.
contentVersionA required section that defines the version of your template (such as 1.0.0.0). You can use this value to document significant changes in your template to ensure you’re deploying the right template.
apiProfileAn optional section that defines a collection of API versions for resource types. You can use this value to avoid having to specify API versions for each resource in the template.
parametersAn optional section where you define values that are provided during deployment. These values can be provided by a parameter file, by command-line parameters, or in the Azure portal.
variablesAn optional section where you define values that are used to simplify template language expressions.
functionsAn optional section where you can define user-defined functions that are available within the template. User-defined functions can simplify your template when complicated expressions are used repeatedly in your template.
resourcesA required section that defines the actual items you want to deploy or update in a resource group or a subscription.
outputAn optional section where you specify the values that will be returned at the end of the deployment.