top of page

LetsDevOps: Azure Bicep -> Getting Started, A Step-by-Step Tutorial for Beginners.


In this blog we will learn the basic of bicep, further we will setup it from scratch and deploy your first bicep template.


  • Visual Studio Code

  • Azure CLI/ Az Module

What is Bicep

  • Bicep is azure native declarative, domain-specific language to deploy azure resources.

  • It helps to create resource manager template.

  • It is easy to understand and learn.

  • It simplifies the complexity of ARM json template.

Benefit of Bicep

  1. Simpler Syntax

  2. Module-specific

  3. Automatic Dependency Management

  4. Type validation and IntelliSense

Bicep Workflow

Setup Bicep

For creating bicep template you should have the Visual studio code Installed.

1. Download and Install VS Code from -->

After Installation --> Open VS Code -->1. go to Extension -->2. search for Bicep -->3. Install

2. Check if the bicep cli installed if not you can follow the link below to install

bicep --version

3. Install Azure CLI or Powershell AZ if not installed.

az --version

Azure CLI

PowerShell AZ

Bicep basic keywords

  1. param

  2. var

  3. resource

  4. output


Bicep Syntax

Bicep is declarative which means the elements can appear in any order.

param <parameter-name> <parameter-data-type> = <default-value>  
var <variable-name> = <variable-value>  

resource <resource-symbolic-name> '<resource-type>@<api-version>' =
output <output-name> <output-data-type> = <output-value>

Create first bicep

Creating storage account

param staccount1 string = 'staccount0103'
param location string = 'East US'
resource staccount 'Microsoft.Storage/storageAccounts@2022-09-01'={
  name: staccount1
  kind: 'BlobStorage'
  location: location
  sku: {
    name: 'Standard_LRS'
    accessTier: 'Cool'

Run the bicep

Using AZ Module

# Set the variables
$resourceGroupName = "srsdemo"
$templateFilePath = "path/to/your/template.bicep"
$parametersFilePath = "path/to/your/parameters.json"
$deploymentName = "demodeploy"

# Authenticate to Azure

# Select the subscription (if necessary)
Set-AzContext -SubscriptionId "your-subscription-id"

# Deploy the Bicep template
New-AzResourceGroupDeployment `
  -DeploymentName $deploymentName `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile $templateFilePath `
  -TemplateParameterFile $parametersFilePath

Using Azure CLI

$resourceGroupName = "test"
$deploymentName = "your11"
$bicepFile = "path/to/your/template.bicep"
$parametersFile = "path/to/your/parameters.json"

# Log in to Azure using the Azure CLI
az login

# Set the active subscription
az account set --subscription "your-subscription-id"

# Create the resource group if it doesn't exist
#az group create --name $resourceGroupName --location "your-location"

# Deploy the Bicep file
az deployment group create --name $deploymentName `
                           --resource-group $resourceGroupName `
                           --template-file $bicepFile `
                           --parameters $parametersFile

GitHub Repo



bottom of page