Introduction to Azure Resource Manager
Template Deployment & Advanced Concepts
The course is part of these learning pathsSee 3 more
This course will introduce the Microsoft Azure Resource Manager (ARM) REST API, and how to interact with it using the Azure Cross-Platform (xPlat) CLI Tool and the ARM PowerShell module. The ARM interface is a web service that provides two primary mechanisms for managing cloud resources:
- Declarative provisioning using Azure Resource Manager (ARM) JSON Templates
- Imperative provisioning - provisioning or deprovisioning cloud resources one-by-one
Microsoft's ARM interface offers several different methods of accessing it:
- REST API - A REST interface to interact with ARM
- PowerShell Module - The Azure Resource Manager PowerShell module can be installed directly from the PowerShell Gallery, and enables you to manage cloud resources both declaratively and imperatively.
- Cross-Platform (xPlat) CLI Tool - A Node.js-based automation tool that runs across multiple platforms, including Linux, Mac OS X, and Windows. This utility enables declarative and imperative management of cloud resources inside your Microsoft Azure subscription. It even enables certain automation functions within the Azure Active Directory (AAD) identity service.
- Python Module - a Python module that can be easily installed using pip, enabling declarative and imperative management of Azure resources via ARM.
After participating in this course, you'll be enabled with the following information:
- The architecture of the Microsoft Azure Resource Manager (ARM) interface
- installing and getting started with the ARM PowerShell module
- Installing and getting started with the Azure Cross-Platform (xPlat) CLI Tool
- How to build and understand Azure Resource Manager JSON Templates
- Common software tools you'll encounter, surrounding Azure Resource Manager
- Declarative provisioning and imperative provisioning of cloud resources in Azure
If you have thoughts or suggestions for this course, please contact Cloud Academy at firstname.lastname@example.org.
Hello and welcome to Microsoft Azure Resource Manager, ARM JSON Template Tooling. In this lecture, we're going to explore JSON Authoring Tools, the Microsoft Azure SDK and some example templates that Microsoft hosts on GitHub.
First, let's start by taking a look at some of the tools that are available to us as we author and edit Azure Resource Manager JSON templates.
First of all, we have GitHub. Microsoft has adopted GitHub at a large-scale, and one of the projects that is available on GitHub is called the Azure Quickstart Templates project. We will take a deeper look at that in a moment. Visual Studio Code is a relatively new text editor that provides native JSON support, and it also works cross-platform so you can install it on Windows and non-Windows operating systems. The full Visual Studio IDE has been available for many years, and when combined with the Azure SDK, you actually get some really great rich tooling to help you edit JSON files for Azure Resource Manager. PowerShell is the ideal tool to help deploy an Azure Resource Manager template once you've got it created. The Atom Editor is a great cross-platform editor tool that allows you to provide JSON native support during your editing experience. The Azure Resource Explorer is a web-based tool that requires a bit more advanced skills to utilize, but once you understand the Azure Resource Manager interface, it helps to give you a raw view or perspective into your Azure resources that are part of your Azure subscription. Finally, the Azure Resource Visualizer is a somewhat beta tool that allows you to graph the relationships between the resources that are inside of an Azure JSON template.
Let's take a deeper look at Visual Studio. If you're running Visual Studio with the Azure SDK tools installed, the Visual Studio editor will provide you an automatic template that provides the infrastructure to build out your Azure Resource Manager JSON template. It provides the essential framework and then leaves it up to you to actually implement each of the resources into your JSON template. As you can see in the solution explorer, we have a JSON file that's been pre-created for us as part of the Visual Studio template, and we also have a prebuilt PowerShell script file or PS1 file that allows us to rapidly deploy that JSON file to our Azure subscription. Another benefit of the Azure SDK is the JSON outline window that provides a breakdown of your Azure Resource Manager template as you are authoring it. For example, it will show you all of the input parameters, the variables and the individual resources that you've declared inside of your Azure Resource Manager JSON template.
The Atom Editor provides a native JSON editing experience on both Windows and non-Windows platforms. Some benefits of it are syntax highlighting, and JSON pretty printing, which helps you with the indentation to ensure consistency in your JSON files.
The Azure Quickstart Templates GitHub repository is a location that Microsoft has published many different example JSON templates that you can use to help author your own custom Quickstart templates. To access this repository, just visit the URL at the bottom of the screen. As we talked about briefly earlier, the Azure Resource Explorer is available at resources.azure.com, and provides a more raw view into your Azure subscription than what's provided by the Azure portal experience. As you can see on the left-hand side where the navigation area is, I have a breakdown of my Azure subscriptions and then inside each subscription, I have a breakdown of the resource groups that have been created in each subscription. Inside of each resource group, I have a breakdown of the actual resource instances that have been created such as a virtual network, a storage account, a redis cache instance and many others. On the right-hand side, when you select an actual resource instance, you're provided with a JSON file that you can then copy and paste to help you rapidly build out your JSON templates for future deployments.
The Azure Resource Visualizer, again, is a beta tool that's available publicly at armviz.io. Also this project is available as a NodeJS application on GitHub. The purpose of the Azure Resource Visualizer is to give you a visual breakdown of the relationships between different resources inside of your Azure subscription. Now that we've taken a brief overview of the different Azure Resource Manager tools, let's go ahead and demo some of them.
About the Author
Trevor Sullivan is a Microsoft MVP for Windows PowerShell, and enjoys working with cloud and automation technologies. As a strong, vocal veteran of the Microsoft-centric IT field since 2004, Trevor has developed open source projects, provided significant amounts of product feedback, authored a large variety of training resources, and presented at IT functions including worldwide user groups and conferences.