还原已删除的应用服务应用

如果意外删除了 Azure 应用服务中的应用,现在可以使用 Azure 门户或 PowerShell 还原它。

使用 Azure 门户还原已删除的应用服务应用

如果在 Azure 应用服务中删除了应用,可以通过以下步骤从门户还原它:

  1. 在 Azure 门户中转到 应用服务
  2. 选择“ 管理已删除的应用”。
  3. 选择订阅
  4. 从下拉列表中选择已删除的应用。 在过去 30 天内删除的应用将显示在列表中。
  5. 从下拉列表中选择与要还原应用的位置相关的目标应用。
  6. 如果要将已删除的应用程序恢复到目标应用程序的插槽,请选中插槽复选框,并从下拉列表中选择可用插槽。
  7. 默认情况下,仅还原应用内容。 如果还希望还原应用配置,请选择“ 还原应用配置”。

使用 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 应用。 由 TargetResourceGroupNameTargetNameTargetSlot 指定的 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 应用

如果函数应用托管在专用应用服务计划上,则可以还原它,只要它使用默认的应用服务存储。

  1. 使用 DeletedSiteId cmdlet 提取要还原的应用版本的 Get-AzDeletedWebApp

    Get-AzDeletedWebApp -ResourceGroupName <RGofDeletedApp> -Name <NameofApp> 
    
  2. 在专用计划中新建一个函数应用。 请参阅如何在门户中创建应用,了解操作说明。 使用此 cmdlet 还原到新创建的函数应用:

    Restore-AzDeletedWebApp -ResourceGroupName <RGofnewapp> -Name <newApp> -deletedId "/subscriptions/xxxx/providers/Microsoft.Web/locations/xxxx/deletedSites/xxxx"
    

目前不支持使用 Restore-AzDeletedWebApp cmdlet 取消删除托管在消耗计划或弹性高级计划中的函数应用,因为内容位于存储帐户中的 Azure 文件存储上。 如果未硬删除该 Azure 文件存储存储帐户,或者帐户存在且未删除文件共享,则可以使用以下步骤作为解决方法:

  1. 在消耗计划或高级计划中创建新的函数应用。 请参阅如何在门户中创建应用,了解操作说明。

  2. 设置以下 应用设置 以引用旧存储帐户,其中包含上一个应用的内容。

    应用设置 建议的值
    AzureWebJobsStorage 已删除的应用使用的存储帐户的连接字符串
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 已删除的应用使用的存储帐户的连接字符串
    WEBSITE_CONTENTSHARE 已删除应用的存储帐户上的文件共享