你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Bicep Linter 会检查 Bicep 文件是否存在语法错误以及违反最佳做法。 Linter 在开发过程中提供指导,帮助用户强制实施代码标准。 你可以自定义最佳做法,用于检查文件。
Linter 要求
Linter 集成到 Bicep CLI 和适用于 Visual Studio Code 的 Bicep 扩展中。 要使用它,你必须具有版本 0.4 或更高版本。
默认规则
默认的 Linter 规则集最小,取自 arm-ttk 测试用例。 扩展和 Bicep CLI 会检查以下规则,这些规则设置为警告级别。
- 管理员用户名不应是字面意思
- 构件参数
- decompiler-cleanup
- 本地参数的明确值
- max-asserts
- max-outputs
- max-params
- max-resources
- 最大变量
- 嵌套部署模板范围
- 无冲突元数据
- 无部署资源
- 禁止硬编码环境URL
- 无硬编码位置
- no-loc-expr-outside-params
- 无不必要的依赖
- 无未使用的现有资源
- no-unused-imports(无未使用的导入)
- no-unused-params(无未使用的参数)
- no-unused-vars
- 输出不应包含秘密
- prefer-interpolation
- 更倾向于无引号属性名
- 保护-执行命令-密钥
- 安全参数默认值
- 嵌套部署中的安全参数
- 在参数中安全存储秘密
- 简化插值
- simplify-json-null
- 使用父属性
- 使用最新的API版本
- 使用最新的模块版本
- use-resource-id-functions
- use-resource-symbol-reference
- 使用安全访问
- 为安全输入使用安全值
- 使用稳定资源标识符
- 使用稳定虚拟机映像
- 假设短路操作
可以启用或禁用所有 linter 规则,并控制如何使用配置文件应用它们。 若要替代默认行为,请使用自定义设置创建 bicepconfig.json 文件。 有关应用这些设置的详细信息,请参阅在 Bicep 配置文件中添加自定义设置。
在 Visual Studio Code 中使用
以下屏幕截图显示了 Visual Studio Code 中的 Linter:
在屏幕截图所示的“问题”窗格中,显示了四条错误消息、一条警告消息和一条信息性消息。 信息消息显示了所使用的 Bicep 配置文件。 仅当已在配置文件中将 verbose 设置为 true 时,此消息才显示此信息片断 。
将鼠标光标悬停在某个问题区域上。 Linter 将提供有关错误或警告的详细信息。 选择该区域,还会显示蓝色灯泡:
选择灯泡或“快速修复”链接以查看解决方法:
选择解决方法以自动解决问题。
使用 Bicep CLI
以下屏幕截图显示了命令行中的 Linter。 lint 命令和 build 命令会显示任何规则冲突。
可将这些检查集成为 CI/CD 管道的一部分。 可以使用 GitHub 操作来尝试生成 Bicep。 出错会导致管道失败。
静默处理误报
有时,规则可能有误报。 例如,可能需要直接包含 Blob 存储的链接,而无需使用 environment() 函数。
在这种情况下,可在具有警告的行之前添加 #disable-next-line <rule name>
,仅对一行(而不是整个文档)禁用警告。
#disable-next-line no-hardcoded-env-urls //Direct download link to my toolset
scriptDownloadUrl: 'https://mytools.blob.core.windows.net/...'
最好是添加一条注释,解释为什么该规则不适用于此行。
如果要取消 Linter 规则,可以将规则级别更改为 Off
中的 。 例如,在以下示例中,会关闭 no-deployments-resources
规则:
{
"analyzers": {
"core": {
"rules": {
"no-deployments-resources": {
"level": "off"
}
}
}
}
}
后续步骤
- 有关自定义 Linter 规则的详细信息,请参阅在 Bicep 配置文件中添加自定义设置。
- 有关使用 Visual Studio Code 和 Bicep 扩展的详细信息,请参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件。