使用 Bicep Linter
Bicep Linter 会检查 Bicep 文件是否存在语法错误以及违反最佳做法。 Linter 在开发过程中提供指导,帮助用户强制实施代码标准。 你可以自定义最佳做法,用于检查文件。
Linter 要求
Linter 集成到 Bicep CLI 和适用于 Visual Studio Code 的 Bicep 扩展中。 要使用它,你必须具有版本 0.4 或更高版本。
默认规则
默认的 Linter 规则集最小,取自 arm-ttk 测试用例。 扩展和 Bicep CLI 会检查以下规则,这些规则设置为警告级别。
- adminusername-should-not-be-literal
- artifacts-parameters
- decompiler-cleanup
- explicit-values-for-loc-params
- max-asserts
- max-outputs
- max-params
- max-resources
- max-variables
- 嵌套部署模板范围
- 无冲突元数据
- 无部署资源
- no-hardcoded-env-urls
- no-hardcoded-location
- no-loc-expr-outside-params
- no-unnecessary-dependson
- no-unused-existing-resources
- no-unused-params
- no-unused-vars
- outputs-should-not-contain-secrets
- prefer-interpolation
- prefer-unquoted-property-names
- secure-parameter-default
- secure-params-in-nested-deploy
- secure-secrets-in-params
- simplify-interpolation
- simplify-json-null
- use-parent-property
- use-protectedsettings-for-commandtoexecute-secrets
- use-recent-api-versions
- use-resource-id-functions
- use-resource-symbol-reference
- 使用安全访问
- use-secure-value-for-secure-inputs
- use-stable-resource-identifiers
- use-stable-vm-image
- what-if-short-circuiting
可以自定义 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.chinacloudapi.cn/...'
最好是添加一条注释,解释为什么该规则不适用于此行。
如果要取消 Linter 规则,可以将规则级别更改为 bicepconfig.json 中的 Off
。 例如,在以下示例中,会关闭 no-deployments-reesources
规则:
{
"analyzers": {
"core": {
"rules": {
"no-deployments-resources": {
"level": "off"
}
}
}
}
}
后续步骤
- 有关自定义 Linter 规则的详细信息,请参阅在 Bicep 配置文件中添加自定义设置。
- 有关使用 Visual Studio Code 和 Bicep 扩展的详细信息,请参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件。