Azure Verified Modules (AVM) のBicep で複数のサブネットからインデックスを数値で書かずサブネットID を取得したい

>100 Views

May 31, 25

スライド概要

2025/05/31 第6回 Azure Travelers 勉強会 愛媛の旅の登壇資料です。

profile-image

都内で働いているインフラエンジニアです。Azure を含むMicrosoft 製品、インフラ、CI/CD を強みとしています。Microsoft MVP 2025~

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Azure Verified Modules (AVM) のBicep で 複数のサブネットからインデックスを数値で書かず サブネットID を取得したい 2025/05/31 第6回 Azure Travelers 勉強会 愛媛の旅 Kazuki Yamabe

2.

アジェンダ • 自己紹介 • Azure Verified Modules (AVM) とは • AVM におけるサブネットの作成 • AVM で複数サブネットID を取得するときの課題 • AVM 利用時の複数のサブネットID 取得方法 • まとめ 2

3.

自己紹介 名前:Kazuki Yamabe 所属:株式会社エーピーコミュニケーションズ 受賞歴:Microsoft MVP 2025 ~ (Azure Compute Infrastructure、Azure Networking) ◼ ブログ・SNS • ブログ:https://www.kdkwakaba.com/ • X:@kdk_wakaba • Linkedin:kdk-wakaba 3

4.

注意事項 本内容は2025年5月31日現在の内容となります。今後のアップデートで 仕様が変更となる可能性もあるためご了承ください。 4

5.

Azure Verified Modules (AVM) とは • Azure のWell-Architected Framework に 準拠した構成のIaC モジュール - Bicep とTerraform をサポート - Resource Modules、Pattern Modules、 Utility Modules で構成 • Microsoft 公式のサポートのため信頼性がある • Azure Developer CLI のToDo アプリやazd compose (アルファ版機能) でもAVM が利用され ている 画像引用元:Azure Verified Modules 5

6.

AVM におけるサブネットの作成 • AVM でサブネットを作成する場合、仮想 ネットワークと同時に作成する • サブネット単体を操作するModule は無し - 仮想ネットワークのピアリングも仮想ネットワー ク内で操作している • サブネットを作成後、サブネットID は配列 形式でOutputs に出力されるため、イン デックスを指定すれば取得可能 参考:bicep-registry-modules/avm/res/network/virtual-network/ 6

7.

AVM における複数のサブネットID 取得方法 Bicep でサブネット作成する場合、仮想ネットワークの子リソースを推奨されている。 AZURE Virtual Network API が更新され、PUT 要求にサブネット プロパティを 含める必要なく、仮想ネットワークを変更できます。 以前は、サブネット プロパティを 省略すると、既存のサブネットが削除されます。 新しい動作では、サブネット プロパ ティが PUT 要求に含まれていない場合、既存のサブネットは変更されません。 サブ ネット プロパティを空の値に明示的に設定すると、既存のすべてのサブネットが削除 されますが、特定のサブネット構成では、それに応じてサブネットが作成または更新さ れます。 この変更により、更新中に意図しないサブネットが削除されるのを防ぎ、仮 想ネットワーク管理が簡略化されます。 詳細については、「Azure Virtual Network でサブネット プロパティのない更新プログラムがサポートされるようになりま した」を参照してください。 引用元:Bicep を使用して仮想ネットワーク リソースを作成する 7

8.

AVM で複数サブネットID を取得するときの課題 配列形式でインデックスをそのまま指定すれば取得はできるが…。 インデックスが何を指し ているかわかりにくい。 Bicep の配列が書いた通りに 作成されるとは限らないので 冪等性がない。 インデックスのを数値で書く のはイケてない。 8

9.

AVM 利用時の複数のサブネットID 取得方法 • サブネットの存在確認でサブネットID を取得する • サブネット名からサブネットID のインデックスを取得する 9

10.

AVM 利用時の複数のサブネットID 取得方法 - サブネットの存在確認 でサブネットID を取得する 仮想ネットワークのみAVM を使用せずresource で記述するかサブネット個別の作成で も対応可能。 10

11.

AVM 利用時の複数のサブネットID 取得方法 - サブネット名からサブ ネットID のインデックスを取得する IndexOf 関数でサブネット名からインデックスを取得することで動的に取得可能。 11

12.

AVM 利用時の複数のサブネットID 取得方法 - サブネット名からサブ ネットID のインデックスを取得する インデックスに長い文字列を使いたくない場合は変数でわかりやすくする。 12

13.

まとめ • Azure Verified Modules (AVM) はAzure のWell-Architected Framework に準拠した構成のBicep 、Terraform のモジュール • AVM ではサブネット単体を操作するモジュールは存在しない • AVM 利用時の複数のサブネットID 取得は、サブネットの存在確認でサブネットID を取 得するかサブネット名からサブネットID のインデックスを取得する 13

14.

ご清聴ありがとうございました。 14