Azure Image Builderトリガー機能でイメージ更新を自動化する!

Azure Virtual Desktop(AVD)やWindows 365で利用するゴールデンイメージは、セキュリティ更新プログラムや機能更新プログラムの適用にあわせて定期的なメンテナンスが必要です。しかし、手動でイメージを更新する運用では、作業負荷が高く、更新漏れや適用遅延が発生することも少なくありません。
Azure Image Builder(AIB)のトリガー機能を利用すると、Marketplaceイメージの更新を契機として、自動的にイメージの作成とAzure Compute Galleryへの新しいイメージバージョン発行を実行できます。これにより、イメージ管理の自動化と運用負荷の軽減を実現できるようになりました。

本記事では、Azure Image Builderのトリガー機能の仕組みや構成要素を整理しながら、実際にWindowsイメージを対象として、自動的にイメージバージョンを作成する環境を構築する手順を紹介します。

できる事は、月次のセキュリティ更新プログラムや累積更新を含めた新バージョンへの更新であり、インプレースアップグレード(25H2→26H2)ではありません。

バージョン番号とは [OSビルド][リビジョン][YYMMDD]の形式で、末尾が発行日です。

バージョン リリース時期
26200.8037.260306 2026-03
26200.8246.260413 2026-04
26200.8457.260507 2026-05
26200.8655.260607 2026-06(最新 = latest)

【Azure Image Builder(AIB)のトリガー機能の流れ】

Azure Image Builderトリガー機能の処理フロー図

①マネージドIDの適用先と権限を分離するため、リソースグループを作成します。
②Azure Image Builderで利用するマネージドIDを作成し、リソースグループに共同作成者ロールを割り当てます。
③イメージの出力先となるAzure Compute Galleryのイメージ定義を作成します。
④イメージテンプレート(JSON)を作成します。
・ソースイメージ(Marketplace)
・マネージドID
・カスタマイズ処理
・出力先(Azure Compute Gallery)
⑤イメージテンプレートをAzure Image Builderへ登録します。
⑥ソースイメージ(Marketplace)の更新を監視するTriggerを作成します。
⑦ソースイメージが更新されると、Azure Image Builderが自動実行され、新しいイメージバージョンをAzure Compute Galleryへ作成します。

※Azure FilesやANF上のファイルを実行したい場合、既存の仮想ネットワークと接続します。


全体の流れ

Step1:Azure Image Builder トリガー機能のプロバイダー登録
Step2:リソースグループの作成 (AIBトリガー専用)
Step3:マネージドIDの作成
Step4:イメージ定義 (Azure Compute Gallery)の作成
Step5:イメージテンプレートの作成
Step6:イメージバージョンの作成とトリガーの設定

Step1:AIBトリガー機能のプロバイダー登録

Azure Image Builder でトリガー設定機能を利用するためのプロバイダー設定
※サブスクリプションで一度、実行すればOK

az feature register --namespace Microsoft.VirtualMachineImages --name Triggers
az provider register -n Microsoft.VirtualMachineImages

Step2:リソースグループの作成 (AIBトリガー専用)

サブスクリプション:Azureサービスの提供範囲
リソースグループ:表示名
リージョン:※AIBがサポートしているリージョンを選択

AIBトリガー専用リソースグループの作成画面

Step3:マネージドIDの作成

サブスクリプション:Azureサービスの提供範囲
リソースグループ:※Step2で作成したものを選択
名前:表示名
リージョン:※AIBがサポートしているリージョンを選択

マネージドIDの作成画面

作成したマネージドIDが確認できます。

作成したマネージドIDの確認画面

作成したマネージドIDに対し、リソースグループに[共同作成者]権限を付与します。

マネージドIDへの共同作成者ロール割り当て画面

Step4:イメージ定義 (Azure Compute Gallery)の作成

【コンピュートギャラリー】の作成

サブスクリプション:Azureサービスの提供範囲
リソースグループ:※Step2で作成したものを選択
名前:表示名
リージョン:デプロイするAzureのリージョン

Azureコンピュートギャラリーの作成画面

【イメージ定義】の作成

サブスクリプション:Azureサービスの提供範囲
リソースグループ:※Step2で作成したものを選択
リージョン:デプロイするAzureのリージョン
ターゲットAzureコンピュートギャラリー:※本イメージ定義が保存される場所
VMイメージ定義名:表示名
OSの種類:※ソースイメージの選択に影響
VMの世代:※ソースイメージの選択に影響
NVMeによるストレージパフォーマンスの向上:※利用する場合
高速ネットワーク:※利用する場合
VMアーキテクチャ:※一般的には[x64]を選択
休止状態のサポート:※利用する場合
OSの状態:※[一般化]を選択

発行元:※会社名/組織名 など
オファー:※Windows11_Enterprise_multi-session など
SKU:※利用用途 など

イメージ定義の作成画面

※「バージョン」「発行のオプション」はスルー

イメージ定義が確認できます。

作成したイメージ定義の確認画面

Step5:イメージテンプレートの作成

マスターイメージに対して、設定しておきたい、またインストールしたいアプリケーション情報を[ARMテンプレート(.json)もしくは、Bicep]で作成し、CloudShellにアップロードしておきます。
※サンプルとして、私の考えた最強テンプレートを置いておきます。所要時間 約2時間20分

JSONファイルを元に、イメージテンプレートを作成します。 ※CloudShellから実行

az resource create --resource-group "ibTriggersRG" --properties @win11-25h2-avd-jp-imageTemplate.json --is-full-object --resource-type Microsoft.VirtualMachineImages/imageTemplates -n "win11-25h2-avd-jp"

イメージテンプレートが確認できます。

作成したイメージテンプレートの確認画面

Step6:イメージバージョンの作成とトリガーの設定

トリガー設定の作成
※指定したソースイメージが更新されたら、自動的にイメージバージョンを作成します。

az image builder trigger create --name "ibTrigger" --resource-group "ibTriggersRG" --image-template-name "win11-25h2-avd-jp" --kind SourceImage

※CloudShellから実行

トリガー設定の確認方法

az image builder trigger list --resource-group "ibTriggersRG" --image-template-name "win11-25h2-avd-jp" -o table

Kind Name ProvisioningState ResourceGroup
----------- --------- ------------------- ---------------
SourceImage ibTrigger Succeeded ibTriggersRG

おわりに

Azure Image Builderは以前から利用できるサービスですが、トリガー機能の登場により、イメージ運用の自動化をさらに進めやすくなりました。特にAVDやWindows 365のように定期的なイメージ更新が求められる環境では、有力な選択肢の一つになるのではないでしょうか。本記事が、Azure上でゴールデンイメージ運用の効率化を検討している方の参考になれば幸いです。