• 2023年3月27日
  • 岡田梨絵
Azure でサブスクリプション間のリソース移動で発生したエラーを解決する

とある事情で、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 がどうのとか、プライベートエンドポイントがどうのってリソースでネットワークの構成している時は、移動前に必ず切断・削除するんだぞ!(備忘録)