Book Image

Infrastructure as Code with Azure Bicep

By : Yaser Adel Mehraban
1 (1)
Book Image

Infrastructure as Code with Azure Bicep

1 (1)
By: Yaser Adel Mehraban

Overview of this book

It’s no secret that developers don’t like using JSON files to declare their resources in Azure because of issues such as parameter duplication and not being able to use comments in templates. Azure Bicep helps resolve these issues, and this book will guide you, as a developer or DevOps engineer, to get the most out of the Bicep language. The book takes you on a journey from understanding Azure Resource Manager (ARM) templates and what their drawbacks are to how you can use Bicep to overcome them. You will get familiar with tools such as Visual Studio Code, the Bicep extension, the Azure CLI, PowerShell, Azure DevOps, and GitHub for writing reusable, maintainable templates. After that, you’ll test the templates and deploy them to an Azure environment either from your own system or via a continuous integration and continuous delivery (CI/CD) pipeline. The book features a detailed overview of all the Bicep features, when to use what, and how to write great templates that fit well into your existing pipelines or in a new one. The chapters progress from easy to advanced topics and every effort has been put into making them easy to follow with examples, all of which are accessible via GitHub. By the end of this book, you’ll have developed a solid understanding of Azure Bicep and will be able to create, test, and deploy your resources locally or in your CI/CD pipelines.
Table of Contents (17 chapters)
1
Section 1: Getting Started with Azure Bicep
6
Section 2: Azure Bicep Core Concepts
11
Section 3: Deploying Azure Bicep Templates

Bicep language specification

Azure Bicep has its own language, so it is common to have a specification that defines the structure of a Bicep file. Let's start with its structure.

Structure

Any Bicep file can have one or multiple of each of the following declarations:

  • Parameters
  • Variables
  • Resources
  • Modules
  • Outputs

Each of these items should be separated by a new line. You cannot have a comma or semicolon in a Bicep file as a separator. We will cover these items later in this book.

Whitespaces

Whitespaces and tabs are ignored in Bicep files. However, as we mentioned previously, a new line will have a meaning, even within object properties or array items.

Comments

You can provide comments by using a double slash (//) for single-line comments and /* and */ for multiline comments:

param bool isProd  = true // this is a single line comment
/* this 
is a 
multi line comment */

You also have all the different data types...