Provisioning resources with an Azure-specific language
Flex
Microsoft Bicep is a relatively new declarative language for defining Azure resources, with a user-friendly syntax that makes it far easier to create storage accounts, virtual machines, and resource groups. The aim of this article is not to cover all of Bicep's language elements – it has far too many to even attempt. Instead, I provide an overview of what the language can do in general and where the biggest differences lie compared with conventional JSON ARM templates. The advantages of Microsoft Bicep over ARM templates include easier readability, simpler syntax, the ability to work with conditions, and more convenient handling of modules.
Exclusively for Azure
ARM templates have been available for a very long time to help admins create resources in Azure in a declarative way. These templates are built according to the JSON standard, a universal format for transferring and storing structured data. It was not developed specifically for Azure and can quickly become confusing as the data becomes complex.
Microsoft Bicep sets out to remedy precisely this shortcoming. The language was developed exclusively for Azure. One aim was to avoid the complexity of ARM templates and simplify the process of defining resources. Bicep files can generally manage with considerably fewer lines of code than ARM templates – and with fewer parentheses. On the other hand, the language can only be used for the Azure cloud.
Script Conversion
Azure does not execute Bicep code directly but converts it into traditional ARM templates. At the end of the day, Bicep can only do what ARM templates can do. Of course, ARM files can also be converted to Bicep, for which Microsoft provides a sample application [1] and instructions [2]. Usefully,
...Buy this article as PDF
(incl. VAT)