Bicep リンターは、Bicep ファイルに構文エラーとベスト プラクティス違反がないかチェックします。 リンターを使用すると、開発時のガイダンスが提供され、コーディング標準を適用できます。 ファイルのチェックに使用するベスト プラクティスをカスタマイズできます。
リンターの要件
リンターは、Bicep CLI と、Visual Studio Code 用の Bicep 拡張機能に統合されています。 これを使用するには、 Bicep CLI バージョン 0.4 以降が必要です。
既定のルール
既定のリンター ルールのセットは最小限であり、arm-ttk テスト ケースから取得されます。 拡張機能と Bicep CLI では、警告レベルに設定されている次のルールがチェックされます。
| リンター ルール | 既定のレベル |
|---|---|
| 管理者ユーザー名は文字通りにしないでください | 警告 |
| アーティファクトパラメータ | 警告 |
| decompiler-cleanup | 警告 |
| locパラメータの明示的な値 | オフ |
| max-asserts | エラー |
| max-outputs | エラー |
| max-params | エラー |
| max-resources | エラー |
| max-variables | エラー |
| ネストされたデプロイメントテンプレートのスコープ設定 | エラー |
| 競合していないメタデータ | 警告 |
| デプロイメントなしリソース | 警告 |
| no-explicit-any | 警告 |
| ハードコードされた環境URLを使用しない | 警告 |
| ハードコードされた場所なし | オフ |
| no-loc-expr-outside-params | オフ |
| no-unnecessary-dependson | 警告 |
| 未使用の既存リソースの禁止 | 警告 |
| 未使用インポートなし | 警告 |
| no-unused-params | 警告 |
| no-unused-vars(未使用変数を禁止) | 警告 |
| 出力に秘密を含めるべきではありません | 警告 |
| 補間を好む | 警告 |
| prefer-unquoted-property-names | 警告 |
| 保護コマンド実行シークレット | 警告 |
| セキュアパラメータデフォルト | 警告 |
| secure-params-in-nested-deploy | 警告 |
| パラメータ内で秘密を保護する | 警告 |
| simplify-interpolation | 警告 |
| simplify-json-null | 警告 |
| 親プロパティを使用する | 警告 |
| 最新のAPIバージョンを使用する | オフ |
| 最新の Azure PowerShell バージョンを使用するコマンド (use-recent-az-powershell-version) | 警告 |
| 最新のモジュールバージョンを使用する | オフ |
| use-resource-id-functions(リソースID関数を使用) | オフ |
| 使用リソースシンボル参照 | 警告 |
| セーフアクセスを使用 | 警告 |
| セキュアな入力にはセキュアな値を使用する | 警告 |
| use-stable-resource-identifiers | 警告 |
| 安定したVMイメージを使用する | 警告 |
| フィックス回路切断 | オフ |
すべてのリンター ルールを有効または無効にし、構成ファイルを使用して適用方法を制御できます。 既定の動作をオーバーライドするには、カスタム設定で bicepconfig.json ファイルを作成します。 これらの設定の適用方法の詳細については、「Bicep 構成ファイルにカスタム設定を追加する」を参照してください。
Visual Studio Code での使用
次のスクリーンショットは、Visual Studio Code でのリンターを示しています。
以下のスクリーンショットに示されているように、[問題] ペインには 4 つのエラーと、1 つの警告、1 つの情報メッセージがあります。 情報メッセージには、使用されている Bicep 構成ファイルが示されています。 この情報は、構成ファイルで verbose を true に設定した場合にのみ表示されます。
問題のある領域のいずれかに、マウス カーソルを置きます。 リンターによって、エラーまたは警告に関する詳細が示されます。 領域を選択すると、青い電球も表示されます。
電球または Quick fix のリンクを選択し、解決方法を表示します。
解決方法を選択して問題を自動的に修正します。
Bicep CLI での使用
次のスクリーンショットは、コマンド ラインでのリンターを示しています。 lint コマンドと build コマンドからの出力には、規則違反が表示されています。
これらのチェックは、CI/CD パイプラインの一部として統合できます。 GitHub アクションを使用して、bicep ビルドを試みることができます。 エラーにより、パイプラインが失敗します。
偽陽性の抑制
ルールで誤検知を受け取る場合があります。 たとえば、environment() 関数を使用せずに BLOB ストレージへのリンクを直接含める必要がある場合があります。
この場合、警告を含む行の前に #disable-next-line <rule name> を追加することで、ドキュメント全体ではなく、1 行のみの警告を無効にすることができます。
#disable-next-line no-hardcoded-env-urls //Direct download link to my toolset
scriptDownloadUrl: 'https://mytools.blob.core.windows.net/...'
複数のコードをスペースで区切って一覧表示できます。
ルールがこの行に適用されない理由を説明するコメントを追加することをお勧めします。
リンター ルールを抑制する場合は、Off でルールのレベルを に変更できます。 たとえば、次の例では、no-deployments-resources ルールが抑制されます。
{
"analyzers": {
"core": {
"rules": {
"no-deployments-resources": {
"level": "off"
}
}
}
}
}
次のステップ
- リンター ルールのカスタマイズ方法の詳細については、「Bicep 構成ファイルにカスタム設定を追加する」を参照してください。
- Visual Studio Code と Bicep 拡張機能の使用方法の詳細については、「クイック スタート: Visual Studio Code を使用して Bicep ファイルを作成する」を参照してください。