【Bicep入門 #13】prefixを使った時短テク

この記事の内容

  • Bicepでリソース名にprefixを変数化し、一括変更する方法を紹介します
  • prefixを変えるだけで、別環境・別プロジェクト向けのリソースを並列作成できます
  • サブスクリプションレベルでのデプロイを行い、リソースグループを含めて展開する手順を解説します
  • GitHubを使ったCI/CDパイプラインでBicepテンプレートをデプロイする流れを確認します
  • 実際にVMを展開し、パブリックIPアドレス経由で接続できるところまで確認します

prefixとは何か

BicepでAzureリソースをデプロイする際、リソース名を個別に管理していると、環境を複数作りたいときに手間がかかります。そこで活用できるのが「prefix(プレフィックス)」です。

prefixとは、リソース名の先頭に付ける共通文字列を変数として定義する手法です。たとえば prefix という変数を1か所に定義しておき、リソースグループ名・VNet名・VM名など、すべてのリソース名にこの変数を組み合わせます。

var prefix = 'ebi'

var resourceGroupName = '${prefix}-rg'
var vmName = '${prefix}-vm'
var vnetName = '${prefix}-vnet'

このようにしておくと、prefix の値を変えるだけで、すべてのリソース名が一括で変わります。


prefixを使う利点

prefixを1か所で管理することで、以下のような操作が簡単になります。

  • 別プロジェクト・別環境を隣に作れる:prefixを変えてデプロイするだけで、既存リソースとは名前が衝突しない新しいセットを作れます
  • 削除・再作成がやりやすい:リソースグループごと削除して作り直す場合も、prefixを変えれば削除を待たずに別名で新規作成できます
  • コード変更箇所が最小限:名前のルールを一元管理しているため、変更のミスが減ります

実際のデプロイ手順

1. prefixを変数として定義する

Bicepファイルの冒頭でprefixを変数として定義します。

var prefix = 'ebi'

この変数を、リソースグループ名・VNet・パブリックIP・ストレージアカウント・ネットワークインターフェース・VMなど、すべてのリソース名に組み込みます。

2. サブスクリプションレベルでデプロイする

リソースグループ自体をBicepで作成する場合は、デプロイのスコープをサブスクリプションレベルに設定します。

targetScope = 'subscription'

これにより、リソースグループの作成からVMのデプロイまでを一連のテンプレートで完結させられます。

3. GitHubを使ったCI/CDパイプラインでコミット・デプロイ

コードをGitHubにコミットすると、CI/CDパイプラインが自動でBicepテンプレートをデプロイします。デプロイが走り出すと、Azureポータル上でサブスクリプションレベルの展開ログが確認できます。


デプロイされるリソースの確認

デプロイが進むと、以下のリソースが順次作成されます。

  • リソースグループ
  • パブリックIPアドレス
  • 仮想ネットワーク(VNet)
  • ストレージアカウント
  • ネットワークインターフェースカード(NIC)
  • 仮想マシン(VM)

NICの設定を確認すると、パブリックIPが紐づいていることも確認できます。


VMへの接続確認

デプロイ完了後、パブリックIPアドレスを使ってVMへの接続を試みます。VMの準備が整うまで少し時間がかかりますが、接続が確立されるとVMへのログインが成功します。

※ライブ配信中にパブリックIPを共有する場面があった場合、視聴者が接続を試みることがあります。本番環境でのデモ時はご注意ください。


まとめ

  • Bicepでは prefix を変数として定義し、すべてのリソース名に組み込むことで、名前管理を一元化できます
  • prefixを変えるだけで既存環境と並行して新しいリソースセットを作成でき、開発・検証がしやすくなります
  • サブスクリプションレベルのデプロイを使うことで、リソースグループの作成からVMのデプロイまでをBicep1本でまかなえます
  • GitHubと組み合わせたCI/CDパイプラインにより、コミットを起点に自動デプロイが実現できます
  • 今回の手順でVMの展開・接続確認まで、Bicepによるインフラ自動化の一連の流れを実践できました