ごった煮

色々な事を書いてます

bicep の新しいパラメータファイル .bicepparam について

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 で正式に搭載予定なので、今のうちに覚えておくと良いかもしれません。