你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Bicep 配置文件中添加 linter 设置

在 bicepconfig.json 文件中,可以自定义 Bicep linter 的验证设置。 Linter 在评估 Bicep 文件以获得最佳做法时使用这些设置。

本文介绍可用于处理 Bicep Linter 的设置。

自定义 Linter

Linter 设置在 analyzers 元素下可用。 你可以启用或禁用 Linter,提供特定于规则的值,以及设置规则级别。

下面的示例演示了可用于配置的规则。

{
  "analyzers": {
    "core": {
      "enabled": true,
      "rules": {
        "adminusername-should-not-be-literal": {
          "level": "warning"
        },
        "artifacts-parameters": {
          "level": "warning"
        },
        "decompiler-cleanup": {
          "level": "warning"
        },
        "explicit-values-for-loc-params": {
          "level": "off"
        },
        "max-asserts": {
          "level": "warning"
        },
        "max-outputs": {
          "level": "warning"
        },
        "max-params": {
          "level": "warning"
        },
        "max-resources": {
          "level": "warning"
        },
        "max-variables": {
          "level": "warning"
        },
        "nested-deployment-template-scoping": {
          "level": "error"
        },
        "no-conflicting-metadata" : {
          "level": "warning"
        },
        "no-deployments-resources" : {
          "level": "warning"
        },
        "no-hardcoded-env-urls": {
          "level": "warning"
        },
        "no-hardcoded-location": {
          "level": "off"
        },
        "no-loc-expr-outside-params": {
          "level": "off"
        },
        "no-unnecessary-dependson": {
          "level": "warning"
        },
        "no-unused-existing-resources": {
          "level": "warning"
        },
        "no-unused-params": {
          "level": "warning"
        },
        "no-unused-vars": {
          "level": "warning"
        },
        "outputs-should-not-contain-secrets": {
          "level": "warning"
        },
        "prefer-interpolation": {
          "level": "warning"
        },
        "prefer-unquoted-property-names": {
          "level": "warning"
        },
        "protect-commandtoexecute-secrets": {
          "level": "warning"
        },
        "secure-parameter-default": {
          "level": "warning"
        },
        "secure-params-in-nested-deploy": {
          "level": "warning"
        },
        "secure-secrets-in-params": {
          "level": "warning"
        },
        "simplify-interpolation": {
          "level": "warning"
        },
        "simplify-json-null": {
          "level": "warning"
        },
        "use-parent-property": {
          "level": "warning"
        },
        "use-recent-api-versions": {
          "level": "warning",
          "maxAllowedAgeInDays": 730
        },
        "use-recent-module-versions": {
          "level": "warning"
        },
        "use-resource-id-functions": {
          "level": "warning"
        },
        "use-resource-symbol-reference": {
          "level": "warning"
        },
        "use-safe-access": {
          "level": "warning"
        },
        "use-secure-value-for-secure-inputs": {
          "level": "error"
        },
        "use-stable-resource-identifiers": {
          "level": "warning"
        },
        "use-stable-vm-image": {
          "level": "warning"
        },
        "what-if-short-circuiting": {
          "level": "warning"
        }
      }
    }
  }
}

这些属性为:

  • enabled:指定为“true”可启用 Linter,指定为 “false”可禁用 Linter。
  • verbose:指定为“true”可显示 Visual Studio Code 使用的 bicepconfig.json 文件。
  • rules:指定特定于规则的值。 每个规则都有一个级别,该级别确定在发现冲突时 Linter 的响应方式。

“级别”的可用值为:

level 生成时行为 编辑器行为
Error 冲突在命令行生成输出中显示为“错误”,并导致生成失败。 有问题的代码带有红色的波浪下划线,并显示在“问题”选项卡中。
Warning 冲突在命令行生成输出中显示为“警告”,但不会导致生成失败。 有问题的代码带有黄色的波浪下划线,并显示在“问题”选项卡中。
Info 冲突不会出现在命令行生成输出中。 有问题的代码带有蓝色的波浪下划线,并显示在“问题”选项卡中。
Off 完全禁止显示。 完全禁止显示。

环境 URL

有关硬编码环境 URL 的规则,可以自定义要检查的 URL。 默认情况下,会应用以下设置:

{
  "analyzers": {
    "core": {
      "enabled": true,
      "rules": {
        "no-hardcoded-env-urls": {
          "level": "warning",
          "disallowedhosts": [
            "api.loganalytics.io",
            "api.loganalytics.iov1",
            "asazure.windows.net",
            "azuredatalakeanalytics.net",
            "azuredatalakestore.net",
            "batch.core.windows.net",
            "core.windows.net",
            "database.windows.net",
            "datalake.azure.net",
            "gallery.azure.com",
            "graph.windows.net",
            "login.microsoftonline.com",
            "management.azure.com",
            "management.core.windows.net",
            "region.asazure.windows.net",
            "trafficmanager.net",
            "vault.azure.net"
          ],
          "excludedhosts": [
            "schema.management.azure.com"
          ]
        }
      }
    }
  }
}

后续步骤