Bicep をデプロイする際、通常では、外部から注入したいパラメータを ARM Template と同様の json ファイルを利用していますが、 今後新しく、.bicepparam という形式が利用可能になります。
恐らく、今後はこちらが主流になっていくと思われるので、簡単に概要をまとめます。
前提条件
今回は、次の環境を基に記載します。
- Azure CLI : v2.48.1
- Bicep : v0.17.1
事前準備
.bicepparam は、Bicep 0.17.1 では、Experimental features に該当する為、利用する場合、 bicepconfig.json が必要です。
ミニマムなファイルは次の通りです。
{ "experimentalFeaturesEnabled": { "paramsFiles": true } }
このファイルを main.bicep と同じフォルダに配置します。
App Service をデプロイしてみる
Bicep の準備
シンプルな App Service のデプロイで使い方を見ていきます。
App Service をデプロイする為の Bicep は、次の通りです。
param location string = resourceGroup().location var suffix = guid('guid') resource plan 'Microsoft.Web/serverfarms@2022-03-01' = { name: 'plan-demo-lab-${suffix}' location: location kind: 'app' sku: { name: 'B1' } } resource app 'Microsoft.Web/sites@2022-03-01' = { name: 'app-demo-lab-${suffix}' location: location kind: 'app' identity: { type: 'SystemAssigned' } properties: { serverFarmId: plan.id } }
パラメータとして、location を受け取れるようになっています。
これを、main.bicep として保存します。
次に、パラメータファイルを作成します。
内容は、次の通りです。
using 'main.bicep' param location = 'japaneast'
using 文に、利用したい bicep ファイルを指定します。
今回は、main.bicep です。
次に、bicep のように param {パラメータ名} = {値}
として、値を渡します。
パラメータを渡す対象を using 文で読み込んでいる為、パラメータは、intellisense が利用できます。
このファイルを param.bicepparam として保存します。
デプロイする
後は、通常の Bicep と同じようにデプロイします。
az deployment group create -f main.bicep -g {リソースグループ名} -p param.bicepparam
想定通りならば、通常の json ファイルと同じようにデプロイ出来ます。
まとめ
parameter.json は、記述量も多いですし、intellisense も利用できない為、あまり使い勝手が良くありませんでしたが、今後はシンプルな方向に倒れるという事で、より使いやすくなるかと思います。
この機能は、6/1 リリース予定の bicep 0.18 で正式に搭載予定なので、今のうちに覚えておくと良いかもしれません。