Bicep リンターの使用方法

Bicep リンターは、Bicep ファイルに構文エラーとベスト プラクティス違反がないかチェックします。 リンターを使用すると、開発時のガイダンスが提供され、コーディング標準を適用できます。 ファイルのチェックに使用するベスト プラクティスをカスタマイズできます。

リンターの要件

リンターは、Bicep CLI と、Visual Studio Code 用の Bicep 拡張機能に統合されています。 これを使用するには、 Bicep CLI バージョン 0.4 以降が必要です。

既定のルール

既定のリンター ルールのセットは最小限であり、arm-ttk テスト ケースから取得されます。 拡張機能と Bicep CLI では、警告レベルに設定されている次のルールがチェックされます。

リンター ルール 既定のレベル
管理者ユーザー名は文字通りにしないでください 警告
アーティファクトパラメータ 警告
デコンパイラのクリーンアップ 警告
loc パラメーターの明示的な値 オフ
マックスアサート (max-asserts) エラー
最大出力 エラー
最大パラメータ エラー
最大リソース エラー
最大変数 エラー
ネストされたデプロイメントテンプレートのスコープ設定 エラー
競合していないメタデータ 警告
デプロイメントなしリソース 警告
明示的な'any'なし 警告
ハードコードされた環境URLを使用しない 警告
ハードコードされた場所なし オフ
ハードコード出力なし オフ
no-loc-expr-outside-parameters(無 Loc-expr-outside-パラメータ) オフ
加群名なし オフ
不要な依存子 警告
未使用の既存リソースの禁止 警告
未使用インポートなし 警告
未使用パラメータなし 警告
未使用タイプは使われていません 警告
no-unused-vars(未使用変数を禁止) 警告
出力に秘密を含めるべきではありません 警告
補間を好む 警告
引用なしプロパティ名を優先します 警告
保護コマンド実行シークレット 警告
セキュアパラメータデフォルト 警告
secure-parameters-in-nested-deploy 警告
parameters ファイル内のセキュリティで保護されたパラメーター 警告
パラメーター内のシークレットを保護する 警告
簡略化補間 警告
simplify-json-null 警告
use-description-outputs オフ
use-description-params オフ
use-description-type-properties オフ
用途記述タイプ オフ
use-description-vars オフ
親プロパティを使用する 警告
最新の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 でのリンターを示しています。

Visual Studio Code での Bicep リンターの使用。

[ 問題 ] ウィンドウのスクリーンショットには、4 つのエラー、1 つの警告、1 つの情報メッセージが表示されます。 情報メッセージには、使用されている Bicep 構成ファイルが示されています。 この情報は、構成ファイルで verbosetrue に設定した場合にのみ表示されます。

問題のある領域の 1 つにマウス カーソルを置きます。 リンターは、エラーまたは警告に関する詳細を提供します。 領域を選択すると、青い電球も表示されます。

Visual Studio Code での Bicep リンターの使用 - quickfix の表示。

電球または Quick fix のリンクを選択し、解決方法を表示します。

Visual Studio Code での Bicep リンターの使用 - quickfix による解決方法の表示。

解決方法を選択して問題を自動的に修正します。

Bicep CLI での使用

次のスクリーンショットは、コマンド ラインでのリンターを示しています。 lint コマンドbuild コマンドからの出力には、規則違反が表示されています。

コマンド ラインでの Bicep リンターの使用。

これらのチェックは、CI/CD パイプラインの一部として統合できます。 GitHub アクションを使用して、bicep ビルドを試みることができます。 エラーがあると、パイプラインは失敗します。

偽陽性の抑制

ルールに誤検知がある場合があります。 たとえば、environment() 関数を使用せずに BLOB ストレージへのリンクを直接含める必要がある場合があります。

disable-next-linedisable-diagnosticsを使用して、Bicep リンターのルールを無効化することができます。 ディレクティブを参照してください。 リンター ルールを抑制する場合は、ルールのレベルを bicepconfig.jsonでOffするように変更します。 次の例では、 no-deployments-resources ルールは抑制されています。

{
  "analyzers": {
    "core": {
      "rules": {
        "no-deployments-resources": {
          "level": "off"
        }
      }
    }
  }
}

次のステップ