在 bicepconfig.json 文件中,可以自定义 Bicep linter 的验证设置。 Linter 在评估 Bicep 文件以获得最佳做法时使用这些设置。
本文介绍可用于处理 Bicep 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": "off"
},
"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:为启用 linter 指定 true ,对于禁用 linter,则为 false 。
- verbose:指定为“true”可显示 Visual Studio Code 使用的 bicepconfig.json 文件。
- 规则:指定特定于规则的值。 每个规则都有一个级别,该级别确定在发现冲突时 Linter 的响应方式。
级别的可用值为:
等级 | 构建时行为 | 编辑器行为 |
---|---|---|
Error |
冲突在命令行生成输出中显示为“错误”,导致生成失败。 | 有问题的代码带有红色的波浪下划线,并显示在“问题”选项卡中。 |
Warning |
冲突在命令行生成输出中显示为警告,但它们不会导致生成失败。 | 有问题的代码带有黄色的波浪下划线,并显示在“问题”选项卡中。 |
Info |
违规不会显示在命令行构建输出中。 | 有问题的代码带有蓝色的波浪下划线,并显示在“问题”选项卡中。 |
Off |
完全压制。 | 完全压制。 |
关于硬编码环境 URL 的规则,您可以自定义要检查的 URL。 默认情况下,将应用以下设置:
{
"analyzers": {
"core": {
"enabled": true,
"rules": {
"no-hardcoded-env-urls": {
"level": "warning",
"disallowedhosts": [
"api.loganalytics.io",
"api.loganalytics.iov1",
"asazure.chinacloudapi.cn",
"azuredatalakeanalytics.net",
"azuredatalakestore.net",
"batch.core.chinacloudapi.cn",
"core.chinacloudapi.cn",
"database.chinacloudapi.cn",
"datalake.chinacloudapi.cn",
"gallery.azure.com",
"graph.chinacloudapi.cn",
"login.partner.microsoftonline.cn",
"management.chinacloudapi.cn",
"management.core.chinacloudapi.cn",
"region.asazure.chinacloudapi.cn",
"trafficmanager.cn",
"vault.azure.cn"
],
"excludedhosts": [
"schema.management.azure.com"
]
}
}
}
}
}