Advanced Bicep

Solution Architect
Azure Resource Manager

Bicep enables you to deploy Azure resources. Bicep uses a declarative syntax that you treat like application code. Treating your infrastructure as code enables you to track changes to your infrastructure requirements and makes your deployments more consistent and repeatable.

Take this learning path to understand how you can use Bicep with complex deployment scenarios. In it, you'll:

  • Deploy advanced Azure resource types, and understand the Azure resource model.
  • Deploy resources at the subscription, management group, and tenant level.
  • Build deployment scripts that define custom steps in your Bicep templates.
  • Ensure reusability, consistency, and compliance by creating libraries of modules and templates.


Want to learn Bicep live from subject matter experts? Follow on-demand Learn Live sessions with our experts.

To learn about Bicep, we recommend you take these three learning paths:

After that, you might be interested in adding your Bicep code to a deployment pipeline. Take one of these two learning paths based on the tool you want to use:


This learning path assumes you have familiarity with deploying Azure resources by using Bicep.

Modules in this learning path

Deploy Azure resources at the subscription, management group, and tenant scope. Understand how Azure resources are deployed at different scopes, why this is important, and how to create Bicep code to deploy them. Create a single set of Bicep files that you can deploy across multiple scopes in one operation.

Add custom steps to your Bicep or JSON Azure Resource Manager templates (ARM templates). Integrate deployment scripts with your deployment by using parameters and outputs.

Reuse and share your ARM templates across your organization. Publish template specs that deploy resources preconfigured for your organization's requirements. Control access and safely update template specs by using versions.

Reuse Bicep modules to reduce code duplication and increase the quality of your deployments. Create a private registry for your organization. Publish shared modules to the registry, and consume them in multiple deployments.