使用 PowerShell 還原已刪除的 App Service 應用程式
如果您意外刪除了 Azure App Service 中的應用程式,您可以使用 Az PowerShell 模組中的命令進行還原。
注意
- 已刪除的應用程式會在初始刪除之後的 30 天內從系統中清除。 應用程式清除之後就無法復原。
- 不支援裝載於使用量方案或 Elastic 進階方案上之函數應用程式的取消刪除功能。
- App Service 環境中執行的 Apps Service 應用程式不支援快照集。 因此,App Service 環境中執行的 App Service 不支援取消刪除功能和複製功能。
重新註冊 App Service 資源提供者
某些客戶可能會遇到無法擷取已刪除應用程式清單的問題。 若要解決此問題,請執行下列命令:
Register-AzResourceProvider -ProviderNamespace "Microsoft.Web"
列出刪除的應用程式
若要取得已刪除應用程式的集合,您可以使用 Get-AzDeletedWebApp
。
如需您可以使用之特定已刪除應用程式的詳細資料:
Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location>
詳細資訊包括:
- DeletedSiteId:應用程式的唯一識別碼,用於已刪除多個同名應用程式的案例
- SubscriptionID:包含已刪除資源的訂用帳戶
- Location:原始應用程式的位置
- ResourceGroupName:原始資源群組的名稱
- Name:原始應用程式的名稱。
- Slot:位置的名稱。
- Deletion Time:刪除應用程式的時間
還原已刪除的應用程式
注意
- 不支援裝載於使用量方案或 Elastic 進階方案上之函數應用程式的
Restore-AzDeletedWebApp
。 - Restore-AzDeletedWebApp Cmdlet 會還原已刪除的 Web 應用程式。 TargetResourceGroupName、TargetName 和 TargetSlot 所指定的 Web 應用程式將會以已刪除 Web 應用程式的內容和設定來覆寫。 如果未指定目標參數,系統將自動填入已刪除 Web 應用程式的資源群組、名稱和位置。 如果目標 Web 應用程式不存在,其將在 TargetAppServicePlanName 指定的 App Service 方案中自動建立。
Restore-AzDeletedWebApp
預設會還原應用程式設定及任何內容。 如果您只想還原內容,請使用-RestoreContentOnly
旗標搭配這個 commandlet。- 您匯入至應用程式的自訂網域、繫結或憑證將不會還原。 還原應用程式之後,您必須重新新增它們。
識別您想要還原的應用程式之後,可以使用 Restore-AzDeletedWebApp
來進行還原,如下列範例所示。
您可以在這裡找到完整的 Commandlet 參考: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>
注意
部署位置不會還原為應用程式的一部分。 如果您需要還原預備位置,請使用 -Slot <slot-name>
旗標。
此 Commandlet 正在將原始位置還原至目標應用程式的生產位置。
Restore-AzDeletedWebApp
預設會將您的應用程式設定及任何內容還原至目標應用程式。 如果您只想還原內容,請使用 -RestoreContentOnly
旗標搭配這個 commandlet。
僅將網站內容還原至目標應用程式
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>
命令的輸入如下:
- Target Resource Group:應用程式要在其中還原的目標資源群組
- TargetName:要將已刪除的應用程式還原至其中的目標應用程式
- TargetAppServicePlanName:連結至應用程式的 App Service 方案
- Name:應用程式的名稱,必須是全域唯一的。
- ResourceGroupName:已刪除應用程式的原始資源群組,您可以從 Get-AzDeletedWebApp -Name <your_deleted_app -Location <your_deleted_app_location>>
- Slot:已刪除應用程式的位置
- RestoreContentOnly:根據預設
Restore-AzDeletedWebApp
會還原您的應用程式設定以及任何內容。 如果您只想還原內容,則可使用-RestoreContentOnly
旗標搭配這個 Commandlet。
注意
如果應用程式裝載於 App Service 環境,然後刪除,則只有在對應的 App Service 環境仍存在時,才能還原應用程式。
還原已刪除的函數應用程式
如果函數應用程式裝載於專用應用程式服務方案,則只要它是使用預設 App Service 儲存體,即可還原。
- 使用 Get-AzDeletedWebApp Cmdlet 擷取您要還原之應用程式版本的 DeletedSiteId:
Get-AzDeletedWebApp -ResourceGroupName <RGofDeletedApp> -Name <NameofApp>
- 在專用方案中建立新函數應用程式。 請參閱如何在入口網站中建立應用程式的指示。
- 使用此 Cmdlet 還原至新建立的函數應用程式:
Restore-AzDeletedWebApp -ResourceGroupName <RGofnewapp> -Name <newApp> -deletedId "/subscriptions/xxxx/providers/Microsoft.Web/locations/xxxx/deletedSites/xxxx"
目前不支援裝載於使用量方案或 Elastic 進階方案的取消刪除 (Restore-AzDeletedWebApp) 函數應用程式,因為內容是位於儲存體帳戶中的 Azure 檔案儲存體上。 如果您尚未「實」刪除該 Azure 檔案儲存體帳戶,或如果帳戶存在且檔案共用尚未刪除,則可以使用該步驟作為因應措施:
在使用量或進階方案中建立新的函數應用程式。 請參閱如何在入口網站中建立應用程式的指示。
設定下列應用程式設定以參照舊儲存體帳戶,其中會包含先前應用程式的內容。
應用程式設定 建議的值 AzureWebJobsStorage 已刪除應用程式使用之儲存體帳戶的連接字串。 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 已刪除應用程式使用之儲存體帳戶的連接字串。 WEBSITE_CONTENTSHARE 已刪除應用程式使用之儲存體帳戶的檔案共用。