【Bicep入門 #5】変数を使う方法

この記事の内容

  • Bicepファイル内で変数(var)を定義する方法を解説します
  • 設定値をファイルの上部にまとめることで、見通しを良くする手法を紹介します
  • リソース名などをハードコーディングせず変数で管理するメリットを説明します
  • パラメータと変数の使い分けについて触れます
  • 実際にデプロイして変数が正しく反映されることを確認します

変数を使うメリット

Bicepファイルを書いていると、設定値があちこちに散らばってしまうことがあります。たとえばリソース名やサービス名のような値が、ファイルの中間や末尾に埋まっていると、後から見直すときに分かりにくくなります。

変数を使うと、こうした設定値をファイルの先頭にまとめて定義しておくことができます。その結果、どこに何の設定があるかが一目で分かる、見通しの良いファイルになります。


変数の定義方法

Bicepで変数を定義するには var キーワードを使います。

var serviceName = 'youtube-ab-suka'

このように、ファイルの上部に変数としてリソース名などを宣言しておきます。


変数をリソース定義で使う

定義した変数は、リソースのプロパティに参照する形で使用できます。たとえばリソースグループ名やサービス名の箇所に変数を指定することができます。

var serviceName = 'youtube-ab-suka'

resource exampleResource 'Microsoft.Something/resource@2023-01-01' = {
  name: serviceName
  // ...
}

変数を使う前と後で、Bicepとして実行される内容は完全に同じです。違いは、値がハードコーディングされていたものを変数に切り出したという点だけです。


ファイルの構成イメージ

変数を活用したBicepファイルは、おおむね以下のような構成になります。

varrpeasroaumrce

上の方に変数をまとめて定義しておき、下の方にあるリソース定義からその変数を参照するという流れです。こうすることで「設定値は上、リソース定義は下」という明確な構造が生まれます。


デプロイして確認する

実際にデプロイすると、変数で指定したサービス名(例: youtube-ab-suka)がリソースとして作成されていることが確認できます。変数に書いた値がそのままリソース名として反映されており、意図通りに動作しています。


パラメータと変数の違い

今回の内容を通じて、Bicepには大きく2つの仕組みがあることが分かります。

種類キーワード用途
パラメータparamファイルの外から値を受け取る
変数varファイルの内部で値を定義して使い回す

パラメータはデプロイ実行時に外部から渡す値に使い、変数はファイル内で完結する設定値に使う、という使い分けが基本です。


まとめ

Bicepの変数(var)を使うことで、設定値をファイルの上部にまとめて管理できるようになります。ハードコーディングをなくし、変更が必要な場合も1か所を修正するだけで済むため、メンテナンス性が向上します。パラメータと変数を上手く組み合わせることで、柔軟で読みやすいBicepファイルを作成できます。