Use Bicep in Azure Cloud Slice Labs

Prev Next

Overview

Skillable Lab Profiles support Azure Bicep templates for cloud-based lab deployments. This enables lab authors to define Azure infrastructure as code (IaC) using native Bicep syntax and automatically deploy it when a lab launches.

Bicep is Microsoft’s domain specific-language (DSL) for defining Azure infrastructure as code. If you already use Bicep in your Azure workflows, you can reuse those same templates in Skillable lab profiles without converting them to Azure Resource Manager (ARM) JSON.

When a lab starts, Skillable compiles the Bicep template into an ARM template and deploys the defined resources into your configured subscription and resource group.

Using Bicep in lab profiles helps you:

  • Author infrastructure using native Azure IaC standards

  • Maintain clearer, more modular deployment definitions

  • Align lab deployments with modern Azure practices

  • Achieve full parity with ARM JSON templates

This option is ideal for lab authors who already use Bicep in their Azure environments and want consistent, automated cloud provisioning in Skillable.

Create a Bicep Resource Template in Skillable

Skillable supports two methods for creating a Bicep template:

  • Create a template directly from a lab profile

  • Create and manage templates centrally from Site Administration

Both methods use the same template configuration process. The difference is where you initiate the workflow.

Create a Bicep Resource Template from a Lab Profile

These settings ensure that Azure resources can deploy successfully at lab launch.

To create a Bicep template in a lab profile:

Edit the Lab Profile

  1. In Skillable Studio, navigate to your lab.

  2. In the top-right, click Edit Profile.

  3. Select the Cloud tab.

  4. Ensure these settings are configured:

    1. Cloud Platform: Azure

    2. Subscription Pool

    3. Datacenter Availability

Add a Resource Group

  1. In Resource Groups, click +Add Resource Group.

    This defines the Azure resource group that will contain the deployed infrastructure.

  2. Fill in the Name Prefix and Replacement Token Alias fields.

Create the Bicep Template

  1. In Resource Templates, click +Create Template.

  2. Configure the template basic details:

    1. Name: Enter a name for the resource group template.

    2. Description: Optionally enter a description to help identify the template.

    3. Organization: Confirm the correct organization is selected.

    4. Cloud Platform: Confirm Azure is selected.

    5. Template Type: Select Bicep Template from the dropdown menu.

  3. Use the checkboxes to set additional options.

  4. In the template editor, add your Bicep template content.

  5. Click Save at the bottom of the page to save your changes.

Once the template is created, it is associated with the lab profile.

Create a Bicep Resource Template from Site Administration

To create and manage Bicep templates centrally:

  1. In Skillable Studio, select the Admin tab to open Site Administration.

  2. In the Cloud Services tile, select Resource Templates.

  3. On the right, click + Create Resource Template.

  4. Create the Bicep template, following the steps outlined above.

Once the template is created, you can associate it with one or more lab profiles as needed.

Deployment Behavior

When a lab launches:

  1. Skillable compiles the Bicep template into ARM format.

  2. Azure validates and deploys the defined resources.

  3. Lab provisioning continues until deployment completes.

This process mirrors standard Azure deployment behavior while remaining fully integrated with Skillable lab profiles.

Teardown behavior remains consistent with other Azure cloud deployments. When the lab session ends, Skillable deletes all Azure resources created by the template in the associated resource group.

Bicep Template Authoring Limitations

Skillable Studio uses the Monaco Editor for template authoring. The current version of the editor does not provide native Bicep language support. We recommend authoring and validating Bicep templates locally before pasting them into Studio, using one of these methods:

  • Azure CLI (az bicep build)

  • Visual Studio Code with the official Bicep extension

  • Bicep CLI validation commands

When working with Bicep templates in Studio:

The editor does not provide Bicep syntax highlighting.

❌ IntelliSense and autocomplete are not available.

❌ Inline validation and semantic error detection are unsupported.

The editor behaves as a plain text editor for Bicep files.

Valid templates will still compile and deploy successfully at lab launch. Compilation and validation occur during the Azure deployment process.

When to Use Bicep vs. ARM JSON

Both Bicep and ARM JSON templates are supported in Skillable. Choose the format that best aligns with your existing Azure workflows and infrastructure standards:

Use Bicep when:

Use ARM JSON when:

  • You want cleaner, more modular infrastructure code

  • You want to align with modern Azure IaC standards

  • You’re managing complex resource relationships

  • You already maintain legacy ARM templates

  • Tooling dependencies require JSON

Summary

Azure Bicep support in Skillable enables modern IaC lab deployments using Microsoft’s recommended Azure templating language. Whether you create templates directly within a lab profile or manage them centrally from the Site Administration page, the deployment process remains consistent and fully compatible with ARM.

Bicep templates compile automatically at lab launch and deploy resources into the configured subscription and resource group. When the lab session ends, associated Azure resources are removed.

For lab authors already using Bicep in Azure environments, this provides a streamlined way to reuse existing templates and align lab provisioning with production infrastructure.


If you’re experiencing an issue with a lab, platform feature, or your account, please submit a ticket to Skillable Support. Our Support team can help you troubleshoot errors, resolve access issues, and answer questions specific to your environment.

If you noticed an error or have suggestions for improving this documentation, use the Was this article helpful? section below. Your input helps us keep our documentation accurate and up to date.

Was this article helpful?

Please note that this feedback is for documentation only. Be sure to log in to your Skillable account when leaving feedback so we can respond directly.