使用 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 (部分機器翻譯)
- nested-deployment-template-scoping (部分機器翻譯)
- no-conflicting-metadata (部分機器翻譯)
- no-deployments-resources (部分機器翻譯)
- 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-recent-module-versions
- use-resource-id-functions
- use-resource-symbol-reference (部分機器翻譯)
- use-safe-access
- 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.windows.net/...'
建議新增註解,說明該規則不適用這一行的原因。
如果您想要隱藏 linter 規則,可以將規則的層級變更為 bicepconfig.json 中的 Off
。 例如,在下列範例中,會隱藏 no-deployments-resources
規則:
{
"analyzers": {
"core": {
"rules": {
"no-deployments-resources": {
"level": "off"
}
}
}
}
}
下一步
- 如需自訂 Linter 規則的詳細資訊,請參閱在 Bicep 設定檔中新增自訂設定 (部分機器翻譯)。
- 如需使用 Visual Studio Code 和 Bicep 延伸模組的詳細資訊,請參閱快速入門:使用 Visual Studio Code 建立 Bicep 檔案。