Поделиться через


Восстановление удаленного приложения Службы приложений с помощью PowerShell

Если вы случайно удалили приложение в Службе приложений Azure, его можно восстановить с помощью команд из модуля Az PowerShell.

Примечание.

  • Удаленные приложения очищаются из системы через 30 дней после первоначального удаления. После очистки приложение невозможно восстановить.
  • Функциональность отмены не поддерживается для приложений-функций, размещенных в плане потребления или плане Elastic Premium.
  • Служба приложений приложения, работающие в Среда службы приложений, не поддерживают моментальные снимки. Поэтому функции отмены удаления и клонирования не поддерживаются в случае приложений Службы приложений, выполняющихся в среде службы приложений.

Повторная регистрация поставщика ресурсов Службы приложений

Некоторые клиенты могут столкнуться с проблемой, при которой не удается получить список удаленных приложений. Устранить эту проблему можно, выполнив следующую команду.

 Register-AzResourceProvider -ProviderNamespace "Microsoft.Web"

Вывод списка удаленных приложений

Чтобы получить коллекцию удаленных приложений, можно использовать Get-AzDeletedWebApp.

Дополнительные сведения о конкретном удаленном приложении можно получить следующим образом.

Get-AzDeletedWebApp -Name <your_deleted_app> -Location <your_deleted_app_location> 

Подробные сведения включают в себя следующее.

  • DeletedSiteId: уникальный идентификатор приложения, используемый для сценариев, в которых было удалено несколько приложений с одинаковым именем.
  • SubscriptionID: подписка, содержащая удаленный ресурс
  • Расположение: расположение исходного приложения
  • ResourceGroupName: имя исходной группы ресурсов
  • Имя: имя исходного приложения.
  • Slot: имя слота.
  • Время удаления: когда приложение было удалено

Восстановление удаленного приложения

Примечание.

  • Restore-AzDeletedWebApp не поддерживается для приложений-функций, размещенных в плане потребления или плане Elastic Premium.
  • Командлет Restore-AzDeletedWebApp восстанавливает удаленное веб-приложение. Веб-приложение, указанное TargetResourceGroupName, TargetName и TargetSlot, будет перезаписан с содержимым и параметрами удаленного веб-приложения. Если целевые параметры не указаны, они автоматически заполняются группой ресурсов удаленного веб-приложения, именем и слотом. Если целевое веб-приложение не существует, оно будет автоматически создано в плане службы приложений, указанном TargetAppServicePlanName.
  • По умолчанию 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>

Примечание.

Слоты развертывания не восстанавливаются в составе приложения. Если вам необходимо восстановить промежуточный слот, используйте флажок -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/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/locations/location/deletedSites/1234 -TargetAppServicePlanName <my_asp>

Входные данные для команды

  • Целевая группа ресурсов: целевая группа ресурсов, в которой нужно восстановить приложение
  • TargetName: целевое приложение для восстановления удаленного приложения
  • TargetAppServicePlanName: Служба приложений план, связанный с приложением
  • Имя: имя приложения должно быть глобально уникальным.
  • ResourceGroupName: исходная группа ресурсов для удаленного приложения
  • Слот: слот для удаленного приложения
  • RestoreContentOnly: по умолчанию восстанавливает конфигурацию Restore-AzDeletedWebApp приложения, а также любое содержимое. Если вы хотите восстановить только содержимое, можно использовать -RestoreContentOnly флаг с этим командлетом.

Примечание.

Если приложение было размещено в среде службы приложений, а затем удалено из нее, его можно восстановить только тогда, когда соответствующая среда службы приложений еще существует.

Восстановление удаленного приложения-функции

Если приложение-функция размещено в плане службы выделенных приложений, его можно восстановить, если оно использовало хранилище по умолчанию Служба приложений.

  1. Получите идентификатор DeletedSiteId версии приложения, которую вы хотите восстановить, с помощью командлета Get-AzDeletedWebApp:
Get-AzDeletedWebApp -ResourceGroupName <RGofDeletedApp> -Name <NameofApp> 
  1. Создайте приложение-функцию в выделенном плане. Ознакомьтесь с инструкциями по созданию приложения на портале.
  2. Восстановите созданное приложение-функцию с помощью этого командлета:
Restore-AzDeletedWebApp -ResourceGroupName <RGofnewapp> -Name <newApp> -deletedId "/subscriptions/xxxx/providers/Microsoft.Web/locations/xxxx/deletedSites/xxxx"

В настоящее время нет поддержки приложения-функции Undelete (Restore-AzDeletedWebApp), размещенного в плане потребления или плане elastic premium, так как содержимое находится на Файлы Azure в учетной записи служба хранилища. Если вы еще не удалили эту учетную запись хранения Файлы Azure или если учетная запись существует и общие папки не были удалены, можно использовать шаги в качестве обходного решения:

  1. Создайте приложение-функцию в плане потребления или уровня "Премиум". Ознакомьтесь с инструкциями по созданию приложения на портале.

  2. Задайте следующие параметры приложения, чтобы ссылаться на старую учетную запись хранения, содержащую содержимое из предыдущего приложения.

    Параметр приложения Предлагаемое значение
    AzureWebJobsStorage Подключение строка для учетной записи хранения, используемой удаленным приложением.
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Подключение строка для учетной записи хранения, используемой удаленным приложением.
    WEBSITE_CONTENTSHARE Общая папка в учетной записи хранения, используемой удаленным приложением.