使用 Bicep Linter

Bicep Linter 会检查 Bicep 文件是否存在语法错误以及违反最佳做法。 Linter 在开发过程中提供指导,帮助用户强制实施代码标准。 你可以自定义最佳做法,用于检查文件。

Linter 要求

Linter 集成到 Bicep CLI 和适用于 Visual Studio Code 的 Bicep 扩展中。 要使用它,你必须具有版本 0.4 或更高版本。

默认规则

默认的 Linter 规则集最小,取自 arm-ttk 测试用例。 扩展和 Bicep CLI 会检查以下规则,这些规则设置为警告级别。

可以自定义 Linter 规则的应用方式。 要覆盖默认设置,请添加 bicepconfig.json 文件并应用自定义设置。 有关应用这些设置的详细信息,请参阅在 Bicep 配置文件中添加自定义设置

在 Visual Studio Code 中使用

以下屏幕截图显示了 Visual Studio Code 中的 Linter:

Bicep linter usage in Visual Studio Code.

在屏幕截图所示的“问题”窗格中,显示了四条错误消息、一条警告消息和一条信息性消息。 信息消息显示了所使用的 Bicep 配置文件。 仅当已在配置文件中将 verbose 设置为 true 时,此消息才显示此信息片断 。

将鼠标光标悬停在某个问题区域上。 Linter 将提供有关错误或警告的详细信息。 选择该区域,还会显示蓝色灯泡:

Bicep linter usage in Visual Studio Code - show quickfix.

选择灯泡或“快速修复”链接以查看解决方法:

Bicep linter usage in Visual Studio Code - show quickfix solution.

选择解决方法以自动解决问题。

使用 Bicep CLI

以下屏幕截图显示了命令行中的 Linter。 lint 命令build 命令会显示任何规则冲突。

Bicep linter usage in command line.

可将这些检查集成为 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"
        }
      }
    }
  }
}

后续步骤