hands-on lab

Azure Resource Manager Templates In Depth

Up to 2h
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.


Azure Resource Manager (ARM) is a deployment and management service for Azure that allows you to manage resources using declarative JSON templates rather than scripts. With Azure Resource Manager, you have the ability to customize resource deployment using parameters, access controls, tags, and more to tailor a template toward any scenario you need to. Additionally, you have the ability to use one of the dozens of built-in functions to greatly increase the customization and automation of your deployments.

In this lab, you will first create a Windows virtual machine using an Azure Resource Manager template. Then, you will improve the template using several additional ARM features.

Lab Objectives

Upon completion of this lab you will be able to:

  • Understand several powerful features of Azure Resource Manager
  • Deploy Azure Resource Manager templates using the Azure CLI
  • Customize Resource Manager templates using parameters, variables, and functions

Intended Audience

This lab is intended for:

  • Azure administrators
  • Students interested in the customization and automation of resources in Azure
  • Those looking to test for one of several Azure certifications, including AZ-104 and AZ-303


You should be familiar with:


May 21st, 2024 - Resolved check error

May 2nd, 2023 - Updated theia to include autosave

September 27th, 2022 - Updated lab to use the Cloud Academy IDE and updated checks

April 12th, 2021 - Moved validation checks to the most relevant lab step for more immediate validation feedback

Environment before

Environment after

About the author

Matt Martinez, opens in a new tab
Cloud Content & Labs QA
Learning paths

Matt has worked for multiple Fortune 500 companies as a DevOps Engineer and Solutions Architect. He is an AWS Certified DevOps Engineer - Professional, and an AWS Certified Solution Architect - Associate. He enjoys reading and learning new technologies.

Covered topics

Lab steps

Logging in to the Microsoft Azure Portal
Logging in to the Azure CLI in the Web IDE
Deploying a VM Using Azure Resource Manager
Customizing an Azure Resource Manager Template with In Depth ARM Features