在 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"
]
}
}
}
}
}