Skip to main content

Menu

LEVEL 0
0/5 XP
HomeAboutTopicsPricingMy VaultStats

Categories

🤖 Artificial Intelligence
☁️ Cloud and Infrastructure
💾 Data and Databases
💼 Professional Skills
🎯 Programming and Development
🔒 Security and Networking
📚 Specialized Topics
HomeAboutTopicsPricingMy VaultStats
LEVEL 0
0/5 XP
GitHub
© 2026 CheatGrid™. All rights reserved.
Privacy PolicyTerms of UseAboutContact

Bicep (Domain-Specific Language) Cheat Sheet

Bicep (Domain-Specific Language) Cheat Sheet

Back to DevOps
Updated 2026-04-27
Next Topic: Blameless Postmortems Cheat Sheet

Bicep is a domain-specific language (DSL) for deploying Azure resources using declarative Infrastructure-as-Code (IaC). Bicep simplifies ARM template authoring with cleaner syntax, better tooling, and improved type safety. Unlike verbose JSON, Bicep provides concise, readable resource definitions while compiling to ARM templates transparently. The key insight: Bicep uses symbolic names instead of string-based resource IDs, enabling strong type checking and IntelliSense — this makes cross-resource references natural and safe, drastically reducing deployment errors compared to traditional ARM JSON.

What This Cheat Sheet Covers

This topic spans 17 focused tables and 151 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.

Table 1: Core Language SyntaxTable 2: Data TypesTable 3: DecoratorsTable 4: OperatorsTable 5: Control FlowTable 6: FunctionsTable 7: Modules and ReusabilityTable 8: Advanced TypesTable 9: Resource DependenciesTable 10: Deployment ScopesTable 11: Parameter FilesTable 12: Bicep CLI CommandsTable 13: Deployment StacksTable 14: ConfigurationTable 15: Testing and ValidationTable 16: Common PatternsTable 17: Bicep vs ARM JSON

Table 1: Core Language Syntax

ElementExampleDescription
resource declaration
resource stg 'Microsoft.Storage/storageAccounts@2023-01-01' = { ... }
• Declares an Azure resource with a symbolic name, type, API version, and properties
• symbolic name enables strongly-typed references throughout the file.
param
param location string = 'eastus'
• Declares an input parameter with type and optional default
• accepts values at deployment time for flexibility across environments.
var
var storageName = 'mystg${uniqueString(resourceGroup().id)}'
• Compile-time variable that simplifies expressions
• reduces duplication and improves readability.
output
output storageId string = stg.id
• Returns a deployment value
• passes data to calling templates or displays results post-deployment.
module
module myModule './module.bicep' = { params: { ... } }
• References another Bicep file for reuse
• encapsulates logic and promotes modular infrastructure design.

More in DevOps

  • Azure DevOps Cheat Sheet
  • Blameless Postmortems Cheat Sheet
  • Ansible Cheat Sheet
  • Continuous Testing Cheat Sheet
  • GitOps Cheat Sheet
  • Observability Cheat Sheet
View all 33 topics in DevOps