Thursday, June 15, 2023

Bicep param files now available, upgrade to v0.18.4!


You might have seen my post a few days ago on Bicep parameter files. That was based on an experimental feature. Bicep version 0.18.4 is released now which, amongst other features and fixes, contains support for the new bicep parameter files!

Time to upgrade!

Besides the Bicep parameter files itself now being available, a couple of additional features are also included as part of it,

Similar functionality we’ve had before, decompiling ARM Templates into Bicep templates, is now also available parameters files. Simply right-click a parameters file based on JSON, and select Decompile into Bicepparams.

On a similar note, you can also select any Bicep template, right-click and select Generate Parameters File.

This option was there before, but you now have a new choice, generating bicepparam files!

Within the bicepparm file itself, you can now also use expressions using any functions in the sys namespace, for example we can use the uniqueString() function as shown below.

Bicepparam files are now also natively supported when deploying using Az CLI as well as PowerShell. For example, using Az CLI you can now pass bicepparm files as shown below.

As I mentioned in my previous post, having parameters files in ‘Bicep style’ was a very common request, and it’s great to now see it out there!

And finally, did you notice bicepparam files have their own icon? How cool is that!

Looking to get started with Bicep? I authored and published the book Getting started with Bicep: Infrastructure as code on Azure

Saturday, June 10, 2023

First glance at upcoming Bicep parameter files!

 It’s probably the most heard question whenever I provide a talk on Bicep and dive into deploying Bicep files and the options to provide parameters:

“Why is the parameters file you use while deploying a Bicep template to Azure still of type JSON?”

A very valid question, and this is about to change! Beyond all of the awesome extra capabilities that Bicep provides compared to ARM Templates (based on JSON), a big benefit of Bicep is also the simplified syntax. Compared to ARM Templates, Bicep templates are much easier to read, author, debug and digest.

But for the parameter files, you still need to revert to JSON. Today, the Bicep integration in VSCode and Visual Studio code provides options to generate a parameters files based on your Bicep files. Simply right click and select ‘Generate Parameters File’ as shown below.

The parameters file that is generated is of type JSON and looks like below. If you’ve worked with ARM templates in the past, this is the exact same parameters file we’re all used to.

This is about to change! We’re close to the release of an feature that introduces Bicep parameters files. These are not based on JSON anymore, have the extension .bicepparam, and provide the same clean syntax we all love about Bicep!

Today, the feature is still in experimental phase, so if you want to test it prior to release, make sure you allow the experimental feature ‘paramsFiles’ inside your bicepconfig file.

Let’s consider the following straightforward Bicep file which deploys an Azure Virtual Desktop host pool.

Below is what the corresponding .bicepparam file looks like.

Super clean, much less in terms of lines of code, and all of the complex syntax overhead is removed! I love it! Also note that a new keyword is introduced called ‘using’, here you specify the corresponding bicep template. As a result of that you also get the code completions and suggestions inside your .bicepparam files. For example when a parameter is missing inside your .bicepparam, the VSCode integration knows about this and you get the following error

And of course the Bicep language integration inside VSCode and Visual Studio code helps you fix this in no time!

Bicep parameters files are expected to become available soon as part of version 0.18! Once available I’ll share more details and options like for example the ability to generate a .bicepparam file from your Bicep file, VSCode deploy and much more!

Looking to get started with Bicep? I authored and published the book Getting started with Bicep: Infrastructure as code on Azure

p.s. I love the Microsoft AI Image creator, it created the header for this post in seconds!