vscode 已弃用 arm tools 扩展,应改用官方 bicep 扩展:卸载旧扩展、安装 azure 官方 bicep 扩展、配置 az cli 或 az powershell、使用 .bicep 文件开发并避免手动编辑 json。

VSCode 目前不再推荐使用已弃用的 Azure Resource Manager (ARM) Tools 扩展来开发 ARM 模板——它已于 2025 年 10 月 1 日起停止支持。你现在应该用 Bicep 替代,它是 Azure 官方主推的、更简洁可读的基础设施即代码语言,底层仍编译为 ARM JSON,但开发体验大幅优化。
装对扩展:只留 Bicep,卸掉旧 ARM Tools
如果你还装着 Azure Resource Manager Tools(旧版 ARM 扩展),请先在 VSCode 的扩展面板中禁用或卸载它。它和 Bicep 扩展存在功能重叠且不兼容,尤其在语法高亮、补全和 arm! 片段上会互相干扰。
只安装官方维护的 Bicep 扩展(Publisher: Azure):
- 打开 VSCode → 点击左侧扩展图标 → 搜索
Bicep→ 点击安装 - 安装后重启 VSCode,确保状态栏右下角出现
Bicep标识 - 验证是否生效:新建文件 → 保存为
main.bicep→ 应自动识别语言并启用语法高亮与 IntelliSense
必须配 CLI 或 PowerShell:否则 build 和 deploy 都会失败
bicep build 命令依赖本地 az CLI 或 Az PowerShell 模块,不是纯编辑器功能。没装或没登录,VSCode 内右键菜单里的 Bicep: Build 会直接报错 Command 'Bicep: Build' resulted in an error。
确认方式:
- 终端运行
az --version或Get-Module -ListAvailable -Name Az,确保有输出 - 运行
az login完成身份验证(沙盒环境也需此步) - 若使用多订阅,用
az account set --subscription "xxx"显式指定目标订阅
注意:Bicep CLI 本身(bicep 命令)已随扩展自动安装,无需单独 npm install 或手动下载。
建模时别硬写 JSON:用 Bicep 语法 + 自动补全
虽然你仍可手写 azuredeploy.json,但 VSCode 对纯 JSON ARM 模板已无深度支持——没有资源类型校验、API 版本提示、参数引用检查。而 .bicep 文件能实时提示:
- 输入
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01'后按Enter,自动补全完整属性结构 - 写
location:时,自动列出当前订阅支持的 region 列表 - 引用参数如
name: storageName,若storageName未定义,会标红并提示Unknown symbol 'storageName' - 所有资源类型、API 版本都来自实时读取的 Azure REST API 元数据,比硬记 schema 准确得多
build 输出路径和覆盖逻辑要心里有数
VSCode 右键 → Bicep: Build 会生成同名 .json 文件,例如 main.bicep → main.json。这个行为不可配置,且默认静默覆盖已有文件。
容易踩的坑:
- 如果
main.json是手动改过的(比如加了注释或调试字段),build会直接清空它——Bicep 编译结果不含注释 - 不要把
.json加入源码管理;应只提交.bicep和.bicepparam(参数文件) - 需要查看生成的 JSON 时,用
bicep decompile azuredeploy.json反向生成 .bicep,而不是反向编辑 JSON
真正关键的是:Bicep 不是“语法糖翻译器”,它的设计哲学是让模板可维护性优先于 JSON 兼容性。一旦你习惯用 module 复用、existing 引用已有资源、targetScope 控制部署范围,就很难再退回纯 JSON ARM 模板开发流了。











