ARM Bicep

Last updated:

AZUREBICEP
  • [[202405011242 ARM template|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 [[202405011242 ARM template|ARM template]]
  • There is no state management, [[202404061212 Azure Resources|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 [[202404061212 Azure Resources|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

[[202407191859 Bicep parameters|Bicep parameters]] [[202407191925 Use Azure Key Vault with bicep|Use Azure Key Vault with bicep]] [[202407191900 Bicep variables|Bicep variables]] [[202407191832 Bicep Modules|Bicep Modules]] [[202407191939 Bicep loops|Bicep loops]] [[202407191932 Bicep conditionals|Bicep conditionals]]


references:

MS Learn for Bicep Learn module MS Learn syntax