二種類の Bicep: Azure CLI 内蔵 vs install の違いと使い分け
背景
Azure の IaC(Infrastructure as Code)で Bicep を使って デプロイをした際に出た WARNING
なんだこれ?って思って調べた記録
実は Bicep には二種類あるって話
- "Azure CLI に内蔵された Bicep"
- "ローカルに install した bicep バイナリ"
という二つの運用パターンが
TL;DR
- 簡単に始めたい / CI 環境で az が既に使われている → Azure CLI 内蔵で十分
-
特定バージョンを固定したい / 詳細なビルドや新機能を試したい →
az bicep installしてローカルバイナリを使う -
bicep.use_binary_from_path設定でどちらを優先するか制御可能。警告は情報表示で通常は無視して OK
概要: CLI 内蔵 と install
-
CLI 内蔵:
az(Azure CLI)が bicep のビルド/デプロイ機能を内蔵していて、追加インストール無しで.bicepファイルを直接az deploymentに渡せる。 -
install: ローカルに
bicepバイナリをインストールして利用する。bicepコマンドでbicep buildやbicep --versionが直接使える。
比較表
| 項目 | CLI 内蔵 | install (ローカル bicep) |
|---|---|---|
| セットアップコスト | 低 (az があれば OK) |
中 ( az bicep install かバイナリ配置が必要) |
| バージョン管理 | az に依存 | 明示的に管理可能 (プロジェクトで固定可) |
| 新機能の利用 | az のバージョン次第 | すぐに利用可能 (バイナリをアップデートすれば OK) |
| ローカルの詳細ビルド確認 | △ (az が出力する情報に依存) |
○ ( bicep build で細かく確認可) |
| CI の再現性 | az のバージョン管理が必要 | runner にインストールして再現性確保可 |
| 企業ネットワークでの配布 | 良い (az 経由が楽) |
配布先でのバイナリ承認が必要な場合あり |
実際の使い分け方
- ローカルでちょっと試す、もしくは
deploy.ps1のようにazを経由してデプロイする既存ワークフローがある場合はCLI 内蔵で十分。 - プロダクション CI でバージョン固定して再現性を確保したい場合はinstallして
bicep --versionを明示的に管理する方がベター。 - 詳細なデバッグや bicep の新機能(構文やモジュール関連)を試したい時はinstallを選ぶ。
公式インストール手順(抜粋)
Azure CLI 経由(推奨)
az bicep install
az bicep upgrade # 最新化
az bicep uninstall # 削除
GitHub Releases から直接ダウンロード
公式リリースページ:
例(Windows PowerShell):
Invoke-WebRequest -Uri "https://github.com/Azure/bicep/releases/latest/download/bicep-win-x64.exe" -OutFile bicep.exe
Move-Item bicep.exe 'C:\Tools\bicep.exe' # PATH上の場所へ移動
bicep.use_binary_from_path とは?
- 設定内容
az config set bicep.use_binary_from_path=true/false
- 意味:
-
trueのときは PATH にあるbicepバイナリを優先して使う。 -
falseのときは Azure CLI にバンドルされた Bicep を使う。
-
- 警告:
-
WARNING: The configuration value of bicep.use_binary_from_path has been set to 'false'.- 情報表示程度の意味
-
- 警告を抑えるコマンド:
az config unset bicep.use_binary_from_path
トラブルシュート・ヒント
-
azが古いとaz bicepサブコマンドが使えない場合があるaz upgrade
-
bicep buildがエラーを出す場合は、生成される JSON をaz deploymentに直接渡して原因を切り分けると良い
まとめ
- 普段使いは Azure CLI 内蔵で問題なし。詳細やバージョン固定が必要な場合は install。
- 警告は情報メッセージなので慌てず対応。警告が気になるなら
az config unset bicep.use_binary_from_pathを追加するか、スクリプトで自動クリアする。
参考リンク
- Bicep install (Microsoft Learn):
- Bicep overview:
- Bicep GitHub Releases: