MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Azure AVM Bicep mode

Azure AVM Bicep mode是一款engineering方向的AI技能,核心价值是Create, update, or review Azure IaC in Bicep using Azure Verified Modules (AVM),可用于解决开发者在engineering领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Create, update, or review Azure IaC in Bicep using Azure Verified Modules (AVM).

Last verified on: 2026-05-30
mkdir -p ./skills/azure-verified-modules-bicep && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/azure-verified-modules-bicep/SKILL.md -o ./skills/azure-verified-modules-bicep/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Azure Verified Modules (AVM) Bicep


Overview


Azure Verified Modules (AVM) are pre-built, tested, and validated Bicep modules that follow Azure best practices. Use these modules to create, update, or review Azure Infrastructure as Code (IaC) with confidence.


Module Discovery


Bicep Public Registry


- Search for modules: `br/public:avm/res/{service}/{resource}:{version}`

- Browse available modules: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res`

- Example: `br/public:avm/res/storage/storage-account:0.30.0`


Official AVM Index


- **Bicep Resource Modules**: `https://raw.githubusercontent.com/Azure/Azure-Verified-Modules/refs/heads/main/docs/static/module-indexes/BicepResourceModules.csv`

- **Bicep Pattern Modules**: `https://raw.githubusercontent.com/Azure/Azure-Verified-Modules/refs/heads/main/docs/static/module-indexes/BicepPatternModules.csv`


Module Documentation


- **GitHub Repository**: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}`

- **README**: Each module contains comprehensive documentation with examples


Module Usage


From Examples


1. Review module README in `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}`

2. Copy example code from module documentation

3. Reference module using `br/public:avm/res/{service}/{resource}:{version}`

4. Configure required and optional parameters


Example Usage


bicep
module storageAccount 'br/public:avm/res/storage/storage-account:0.30.0' = {
  name: 'storage-account-deployment'
  scope: resourceGroup()
  params: {
    name: storageAccountName
    location: location
    skuName: 'Standard_LRS'
    tags: tags
  }
}

When AVM Module Not Available


If no AVM module exists for a resource type, use native Bicep resource declarations with latest stable API version.


Naming Conventions


Module References


- **Resource Modules**: `br/public:avm/res/{service}/{resource}:{version}`

- **Pattern Modules**: `br/public:avm/ptn/{pattern}:{version}`

- Example: `br/public:avm/res/network/virtual-network:0.7.2`


Symbolic Names


- Use lowerCamelCase for all names (variables, parameters, resources, modules)

- Use resource type descriptive names (e.g., `storageAccount` not `storageAccountName`)

- Avoid 'name' suffix in symbolic names as they represent the resource, not the resource's name

- Avoid distinguishing variables and parameters by suffixes


Version Management


Version Pinning Best Practices


- Always pin to specific module versions: `:{version}`

- Use semantic versioning (e.g., `:0.30.0`)

- Review module changelog before upgrading

- Test version upgrades in non-production environments first


Development Best Practices


Module Discovery and Usage


- ✅ **Always** check for existing AVM modules before creating raw resources

- ✅ **Review** module documentation and examples before implementation

- ✅ **Pin** module versions explicitly

- ✅ **Use** types from modules when available (import types from module)

- ✅ **Prefer** AVM modules over raw resource declarations


Code Structure


- ✅ **Declare** parameters at top of file with `@sys.description()` decorators

- ✅ **Specify** `@minLength()` and `@maxLength()` for naming parameters

- ✅ **Use** `@allowed()` decorator sparingly to avoid blocking valid deployments

- ✅ **Set** default values safe for test environments (low-cost SKUs)

- ✅ **Use** variables for complex expressions instead of embedding in resource properties

- ✅ **Leverage** `loadJsonContent()` for external configuration files


Resource References


- ✅ **Use** symbolic names for references (e.g., `storageAccount.id`) not `reference()` or `resourceId()`

- ✅ **Create** dependencies through symbolic names, not explicit `dependsOn`

- ✅ **Use** `existing` keyword for accessing properties from other resources

- ✅ **Access** module outputs via dot notation (e.g., `storageAccount.outputs.resourceId`)


Resource Naming


- ✅ **Use** `

🎯 Best For

  • Engineering teams doing code reviews
  • Open source maintainers
  • Claude users
  • GitHub Copilot users
  • AI users

💡 Use Cases

  • Reviewing pull requests for security vulnerabilities
  • Checking code style consistency
  • Using Azure AVM Bicep mode in daily workflow
  • Automating repetitive engineering tasks

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Azure AVM Bicep mode to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Does this skill check for OWASP Top 10?

Security-focused review skills often include OWASP checks. Check the skill content for specific vulnerability categories covered.

How do I install Azure AVM Bicep mode?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/azure-verified-modules-bicep/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Blindly accepting AI suggestions

Always verify AI-generated review comments. Some suggestions may not apply to your specific codebase conventions.

Not reading the full skill

Skills contain important context and edge cases beyond the quick start.

🔗 Related Skills