- 2023年3月27日
とある事情で、Azure にてサブスクリプション間のリソース移動をやらねばならんことになりました。
今までであれば、リソースグループの移動メニューでひょひょい(そこそこ長時間)っと移動していたわけですが。
今回は何やら検証で盛大にエラーが発生して失敗してしまいました。
はじめに
Azure に App Service やら Logic Apps やら Functions やら……
けっこうガッチガチに外からのアクセスを許可しない構成にしています。
まぁまぁいろんなリソースを作成して、システムをテスト稼働していた環境を、別サブスクリプションにお引越しする作業。
その途中の移動の検証でエラーが発生。
なんとかエラーを解決して、リソースグループを移動するぞ!
エラーの内容を確認する
エラーとなっているリソースはこんな感じ。
- App Service プラン
- Logic Apps (スタンダード)プラン
- Storage アカウント
App Service プランでのエラー
まずは App Service プランから見てみます。
App Service プランで発生しているエラーメッセージはこんな感じ。
Cannot move resources because some site(s) are connected to regional VNet integration.
Disconnect all sites from regional VNet integration and try again.
Affected sites: ‘VNet 統合しているリソース名たち’.
Vnet 統合しているリソースたちが軒並みって感じですね……。
Logic Apps (スタンダード)プランでのエラー
これはどうやら App Service プラント同じエラーのご様子。
Cannot move resources because some site(s) are connected to regional VNet integration.
Disconnect all sites from regional VNet integration and try again.
Affected sites: ‘VNet 統合しているリソース名たち’.
Storage アカウント でのエラー
続いて Storage アカウント。
エラーメッセージはこんな感じ。
プライベート エンドポイントを含むストレージ アカウント StorageResourceProvider.Common.StorageAccount のリソースを移動することはサポートされていません。
大変有り難い日本語のエラーメッセージ。
ははぁ~んなるほどね。
エラーの原因
プライベートエンドポイント
まずは大変分かりやすい Storage アカウントの方から。
プライベートエンドポイントは、一度削除してしまいましょう。
App Service の方もよくよくMicrosoft さんのドキュメントを読んでみれば
プライベート エンドポイントを持つ App Service アプリは移動できません。 プライベート エンドポイントを削除し、移動後に再作成します。
なんて書いてあるじゃあありませんか……(遠い目)
はいはい、プライベートエンドポイント消しましょうねぇ……
VNet 統合
あとは、App Service の方で出てた
Disconnect all sites from regional VNet integration and try again.
の対応ですね。
エラーメッセージに書かれていた VNet 統合しているリソース名たちを片っ端から切断じゃ!
ネットワークメニューを開いて、送信トラフィックにある VNET 統合を切断じゃ!!!
……よっしゃ移動できるぅ!
さいごに
まぁ実際にはもうちょっと仮想ネットワークがあれこれ参照してて移動できないよとかのエラーも出てたんですが、そこはリソースの削除で強引に突破してやったので割愛。
教訓としては、Vnet がどうのとか、プライベートエンドポイントがどうのってリソースでネットワークの構成している時は、移動前に必ず切断・削除するんだぞ!(備忘録)