Microsoft.Network/dnsResolvers/inboundEndpoints の subnet 指定のIDはリソースIDじゃないから注意(ARMテンプレート, Bicep)
Microsoftのドキュメントを読んでフンフンフーンとBicepを書いていたらドハマりしたので共有。
なにが起こったか
DNSプライベートリゾルバを使用するとき、DNSへのインバウンド通信に使用するIPを定義する「inboundEndpoints」というリソースがあるんですが、ドキュメントを読んで適当に実装すると死にます。
というのも、IP指定を行う IpConfiguration
のパラメータには以下のような記載があります。
これをそのまま真に受けて、「subnet の id はリソースIDを指定すればいいんだな」と考えてしまい、
subnet: { id: inboundSubnet.id }
とか書いてしまうと、デプロイ時にエラーが起こります。
で、今回は別モジュールでbicepを書いていたので、該当デプロイのログを見ようとすると・・・
なぜか404…
解決方法
解決方法はサンプルにありました。
ここによると、サブネットのID指定は ${resolverVnet.id}/subnets/${inboundSubnetName}
(著者編集) で行う必要があるみたいですね。
終わりに
あんまサブネットを指定するケースってなかったので今回ハマってしまったのですが、「<VNET_ID>/subnets/<SUBNET_NAME>」って指定するのが一般的なんでしょうか?
結構注意が必要ですね