Book Image

Azure Resource Manager Templates Quick Start Guide

By : Ritesh Modi
Book Image

Azure Resource Manager Templates Quick Start Guide

By: Ritesh Modi

Overview of this book

Azure Resource Manager (ARM) templates are declarations of Azure resources in the JSON format to provision and maintain them using infrastructure as code. This book gives practical solutions and examples for provisioning and managing various Azure services using ARM templates. The book starts with an understanding of infrastructure as code, a refresher on JSON, and then moves on to explain the fundamental concepts of ARM templates. Important concepts like iteration, conditional evaluation, security, usage of expressions, and functions will be covered in detail. You will use linked and nested templates to create modular ARM templates. You will see how to create multiple instances of the same resources, how to nest and link templates, and how to establish dependencies between them. You will also learn about implementing design patterns, secure template design, the unit testing of ARM templates, and adopting best practices. By the end of this book, you will understand the entire life cycle of ARM templates and their testing, and be able to author them for complex deployments.
Table of Contents (12 chapters)
Free Chapter
1
Section 1: ARM Template Foundational Skills
6
Section 2: ARM Template Advanced Concepts

Writing your first template

Now it's time to focus and create our first ARM template using Visual Studio 2017. Open Visual Studio 2017 and select File | New | Project | Cloud | Azure Resource Group. Provide a Name and Location in New Project dialog box and click on OK:

Select Blank Template and click on OK:

This should create a solution and the MyFirstTemplate project in Visual Studio. It will also create an ARM template file named azureDeploy.json and a template parameters file named azureDeploy.parameters.json. There is also a PowerShell file, Deploy-AzureResourceGroup.ps1, for both creating a resource group and deploying a template in it. We are not going to use it. Readers can go ahead and delete it:

The content of the azuredeploy.json file is the same as shown before; for simplicity's sake, it is shown again:

{

"$schema": "https://schema.management...