PowerShell を使用して、削除された App Service アプリを復元する
Azure App Service で誤ってアプリを削除した場合は、Az PowerShell モジュールのコマンドを使用して復元できます。
Note
- 削除されたアプリは、最初の削除から 30 日後にシステムから削除されます。 削除されたアプリは、復元できません。
- 従量課金プランまたはエラスティック Premium プランでホストされている関数アプリについては、削除の取り消し機能がサポートされません。
- App Service Environment で実行されている App Service アプリは、スナップショットをサポートしません。 そのため、App Service Environment で実行されている App Service アプリでは、削除の取り消し機能と複製機能はサポートされていません。
App Service リソース プロバイダーを再登録します。
一部のお客様では、削除されたアプリの一覧を取得できないという問題が発生する可能性があります。 この問題を解決するには、次のコマンドを実行します。
Register-AzResourceProvider -ProviderNamespace "Microsoft.Web"
削除したアプリの一覧を表示する
削除されたアプリのコレクションを取得するには、Get-AzDeletedWebApp
を使用します。
削除された特定のアプリの詳細については、次を使用できます。
Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location>
詳細情報には次のものが含まれます。
- DeletedSiteId:同じ名前の複数のアプリが削除されたシナリオで使用される、アプリの一意の識別子
- SubscriptionID:削除されたリソースを含むサブスクリプション
- [場所] :元のアプリの場所
- ResourceGroupName:元のリソース グループの名前
- Name:元のアプリの場所。
- Slot: スロットの名前。
- 削除時刻:アプリが削除された日時
削除したアプリを復元する
Note
- 従量課金プランまたはエラスティック Premium プランでホストされている関数アプリについては、
Restore-AzDeletedWebApp
がサポートされません。 - Restore-AzDeletedWebApp コマンドレットは、削除された Web アプリを復元します。 TargetResourceGroupName、TargetName、TargetSlot で指定された Web アプリは、削除された Web アプリの内容と設定で上書きされます。 ターゲット パラメーターが指定されていない場合、削除された Web アプリのリソース グループ、名前、スロットが自動的に設定されます。 ターゲット Web アプリが存在しない場合は、TargetAppServicePlanName で指定された App Service プランで自動的に作成されます。
- 既定では
Restore-AzDeletedWebApp
によって、アプリの構成とすべてのコンテンツの両方が復元されます。 コンテンツのみを復元する場合は、このコマンドレットで-RestoreContentOnly
フラグを使用します。 - アプリにインポートしたカスタム ドメイン、バインド、または証明書は復元されません。 アプリを復元した後に、それらを再追加する必要があります。
復元するアプリを特定したら、次の例に示すように Restore-AzDeletedWebApp
を使用してそれを復元できます。
コマンドレットの完全な参照については、「Restore-AzDeletedWebApp」をご覧ください。
元のアプリ名に復元します。
Restore-AzDeletedWebApp -TargetResourceGroupName <my_rg> -Name <my_app> -TargetAppServicePlanName <my_asp>
別のアプリ名に復元します。
Restore-AzDeletedWebApp -ResourceGroupName <original_rg> -Name <original_app> -TargetResourceGroupName <target_rg> -TargetName <target_app> -TargetAppServicePlanName <target_asp>
スロットをターゲット アプリに復元します。
Restore-AzDeletedWebApp -TargetResourceGroupName <my_rg> -Name <my_app> -TargetAppServicePlanName <my_asp> -Slot <original_slot>
Note
アプリの一部としてデプロイ スロットは復元されません。 ステージング スロットを復元する必要がある場合は、-Slot <slot-name>
フラグを使用します。
コマンドレットは、元のスロットをターゲット アプリの運用スロットに復元しています。
既定では、Restore-AzDeletedWebApp
はアプリの構成とすべてのコンテンツの両方をターゲット アプリに復元します。 コンテンツのみを復元する場合は、このコマンドレットで -RestoreContentOnly
フラグを使用します。
サイトのコンテンツのみをターゲット アプリに復元します
Restore-AzDeletedWebApp -TargetResourceGroupName <my_rg> -Name <my_app> -TargetAppServicePlanName <my_asp> -RestoreContentOnly
同じ名前の複数のアプリが
-DeletedSiteId
で削除されたシナリオに使われる復元
Restore-AzDeletedWebApp -ResourceGroupName <original_rg> -Name <original_app> -DeletedId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/location/deletedSites/1234 -TargetAppServicePlanName <my_asp>
コマンドの入力は次のとおりです。
- ターゲット リソース グループ: アプリの復元先のターゲット リソース グループ
- TargetName: 削除されたアプリの復元先のターゲット アプリ
- TargetAppServicePlanName:アプリにリンクされている App Service プラン
- Name:アプリの名前。グローバルに一意である必要があります。
- ResourceGroupName: 削除されたアプリの元のリソース グループは、Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location> から取得できます
- Slot: 削除されたアプリのスロット
- RestoreContentOnly: 既定では、
Restore-AzDeletedWebApp
はアプリの構成とすべてのコンテンツの両方を復元します。 コンテンツのみを復元する場合は、このコマンドレットで-RestoreContentOnly
フラグを使用できます。
Note
アプリが App Service Environment 上でホストされ、そこから削除された場合は、対応する App Service Environment が引き続き存在する場合にのみ復元できます。
削除された関数アプリを復元する
関数アプリが専用の App Service プランでホストされている場合は、既定の App Service ストレージを使用している限り、復元できます。
- Get-AzDeletedWebApp コマンドレットを使用して、復元するアプリ バージョンの DeletedSiteId をフェッチします。
Get-AzDeletedWebApp -ResourceGroupName <RGofDeletedApp> -Name <NameofApp>
- 専用プランで新しい関数アプリを作成します。 ポータルでアプリを作成する方法については、こちらの手順を参照してください。
- 次のコマンドレットを使用して、新しく作成した関数アプリに復元します。
Restore-AzDeletedWebApp -ResourceGroupName <RGofnewapp> -Name <newApp> -deletedId "/subscriptions/xxxx/providers/Microsoft.Web/locations/xxxx/deletedSites/xxxx"
現在、従量課金プランまたはエラスティック Premium プランでホストされている関数アプリの削除の取り消し (Restore-AzDeletedWebApp) はサポートされていません。コンテンツがストレージ アカウントの Azure Files に存在するためです。 その Azure Files ストレージ アカウントを "物理的には" 削除していない場合、またはアカウントが存在し、ファイル共有が削除されていない場合は、次の手順を回避策として使用できます。
従量課金または Premium プランで新しい関数アプリを作成します。 ポータルでアプリを作成する方法については、こちらの手順を参照してください。
次のアプリ設定を行って、前のアプリのコンテンツを含む古いストレージ アカウントを参照します。
アプリ設定 推奨値 AzureWebJobsStorage 削除されたアプリで使用されていたストレージ アカウントの接続文字列。 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 削除されたアプリで使用されていたストレージ アカウントの接続文字列。 WEBSITE_CONTENTSHARE 削除されたアプリで使用されていたストレージ アカウント上のファイル共有。