ARM Bicep

  • ARM JSON is complex
  • Bicep abstracts away this JSON so that it is simpler to define what we want.
  • Bicep is domain specific language, so can only be used to create ARM template
  • There is no state management, ARM knows what resources are present
  • Might not be useful in multi-cloud setups or if we have a different tool already, like [[202407162143 Terraform|Terraform]]
  • By default resources are deployed in parallel
    • we can control this by using @batchSize
# Convert to json
bicep compile

# Convert from json
bicep decompile

How to install

# Add the tap for bicep 
brew tap azure/bicep 

# Install the tool 
brew install bicep

Also add to VSCode from extensions

How to deploy

# deploy resource

az deployment group create --template-file main.bicep --resource-group storage-resource-group
New-AzResourceGroupDeployment -TemplateFile main.bicep -ResourceGroupName zyz
  • Use VS Code extension to simplify development

Bicep parameters Use Azure Key Vault with bicep Bicep variables Bicep Modules Bicep loops Bicep conditionals


references:

MS Learn for Bicep Learn module MS Learn syntax

Subscribe to NordLetter

A weekly newsletter on living in Finland.

UPDATED