如果意外删除了 Azure 应用服务中的应用,现在可以使用 Azure 门户或 PowerShell 还原它。
使用 Azure 门户还原已删除的应用服务应用
如果在 Azure 应用服务中删除了应用,可以通过以下步骤从门户还原它:
- 在 Azure 门户中转到 应用服务 。
- 选择“ 管理已删除的应用”。
- 选择订阅。
- 从下拉列表中选择已删除的应用。 在过去 30 天内删除的应用将显示在列表中。
- 从下拉列表中选择与要还原应用的位置相关的目标应用。
- 如果要将已删除的应用程序恢复到目标应用程序的插槽,请选中插槽复选框,并从下拉列表中选择可用插槽。
- 默认情况下,仅还原应用内容。 如果还希望还原应用配置,请选择“ 还原应用配置”。
使用 PowerShell 还原已删除的应用服务应用
如果在 Azure 应用服务中删除了应用,则可以使用来自 Azure Az PowerShell module
应用服务的命令还原它。
注意
- 初始删除 30 天后,已删除的应用将从系统中清除。 清除应用后,将无法恢复它。
- 消耗计划或弹性高级计划上托管的函数应用不支持取消删除功能。
重新注册应用服务资源提供程序
某些客户可能无法检索已删除的应用列表。 若要解决该问题,请运行以下命令:
Register-AzResourceProvider -ProviderNamespace "Microsoft.Web"
列出已删除的应用
若要访问已删除应用的集合,可以使用 Get-AzDeletedWebApp
。
若要获取有关特定已删除应用的详细信息,可以使用:
Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location>
详细信息包括:
- DeletedSiteId:应用的唯一标识符,用于删除具有相同名称的多个应用的情况。
- SubscriptionID:包含已删除资源的订阅。
- 位置:原始应用的位置。
- ResourceGroupName:原始资源组的名称。
- 名称:原始应用的名称。
- 槽:槽的名称。
- 删除时间:删除应用的时间。
还原已删除的应用
注意
- 消耗计划或弹性高级计划上托管的函数应用不支持
Restore-AzDeletedWebApp
。 - 该
Restore-AzDeletedWebApp
cmdlet 还原已删除的 Web 应用。 由TargetResourceGroupName
、TargetName
和TargetSlot
指定的 Web 应用被已删除的 Web 应用的内容和设置覆盖。 如果未指定目标参数,它们将自动使用已删除的 Web 应用的资源组、名称和槽位进行填充。 如果目标 Web 应用不存在,则它会自动在指定的TargetAppServicePlanName
应用服务计划中创建。 - 默认情况下
Restore-AzDeletedWebApp
,还原应用配置和任何内容。 如果只想还原内容,请使用此 cmdlet 的-RestoreContentOnly
标志。 - 不会还原导入到应用的自定义域、绑定或证书。 还原应用后,需要再次添加它们。
确定要还原的应用后,可以通过使用Restore-AzDeletedWebApp
进行还原,如以下示例所示。
可在此处找到完整的 cmdlet 参考: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>
标志。
该 cmdlet 将源槽位还原到目标应用的生产槽。
默认情况下, Restore-AzDeletedWebApp
将应用配置以及任何内容还原到目标应用。 如果只想还原内容,请使用此 cmdlet 的 -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:链接到应用的应用服务计划。
- 名称:应用的名称。 我们建议确保它具有全局唯一性。
-
ResourceGroupName:已删除应用的原始资源组。 你可以从
Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location>
中获取它。 - 槽位:已删除应用的槽位。
-
RestoreContentOnly:默认情况下,
Restore-AzDeletedWebApp
会同时还原应用配置以及任何内容。 如果只想还原内容,可以将-RestoreContentOnly
标志用于此 cmdlet。
注意
如果应用以前托管在应用服务环境中,然后被删除,则还原该应用的前提是相应的应用服务环境仍然存在。
还原已删除的 Azure Functions 应用
如果函数应用托管在专用应用服务计划上,则可以还原它,只要它使用默认的应用服务存储。
使用
DeletedSiteId
cmdlet 提取要还原的应用版本的Get-AzDeletedWebApp
:Get-AzDeletedWebApp -ResourceGroupName <RGofDeletedApp> -Name <NameofApp>
在专用计划中新建一个函数应用。 请参阅如何在门户中创建应用,了解操作说明。 使用此 cmdlet 还原到新创建的函数应用:
Restore-AzDeletedWebApp -ResourceGroupName <RGofnewapp> -Name <newApp> -deletedId "/subscriptions/xxxx/providers/Microsoft.Web/locations/xxxx/deletedSites/xxxx"
目前不支持使用 Restore-AzDeletedWebApp
cmdlet 取消删除托管在消耗计划或弹性高级计划中的函数应用,因为内容位于存储帐户中的 Azure 文件存储上。 如果未硬删除该 Azure 文件存储存储帐户,或者帐户存在且未删除文件共享,则可以使用以下步骤作为解决方法:
在消耗计划或高级计划中创建新的函数应用。 请参阅如何在门户中创建应用,了解操作说明。
设置以下 应用设置 以引用旧存储帐户,其中包含上一个应用的内容。
应用设置 建议的值 AzureWebJobsStorage
已删除的应用使用的存储帐户的连接字符串 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
已删除的应用使用的存储帐户的连接字符串 WEBSITE_CONTENTSHARE
已删除应用的存储帐户上的文件共享