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


Клонирование приложения службы приложений Azure с помощью PowerShell

Замечание

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.

С выпуском Microsoft Azure PowerShell версии 1.1.0 появилась новая возможность New-AzWebApp. С помощью этого параметра можно клонировать существующее приложение службы приложений в только что созданное приложение в другом регионе или в одном регионе. Вы можете быстро и легко развертывать несколько приложений в разных регионах.

Клонирование приложений поддерживается для планов службы приложений уровня "Стандартный", "Премиум", "Премиум" версии 2 и "Изолированный". Эта функция использует те же ограничения, что и функция резервного копирования службы приложений, см. в статье "Резервное копирование приложения" в Службе приложений Azure.

Клонирование существующего приложения

Сценарий. Вы хотите клонировать содержимое существующего приложения в регионе "Центральная часть США" в новое приложение в регионе "Северная часть США". Используйте версию Azure Resource Manager команды PowerShell cmdlet для создания нового приложения с параметром -SourceWebApp.

Если вы знаете имя группы ресурсов, содержащей исходное приложение, можно использовать следующую команду PowerShell для получения сведений о исходном приложении (в данном случае с именем source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

Чтобы создать план службы приложений, можно использовать команду, показанную New-AzAppServicePlan в следующем примере:

New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard

С помощью New-AzWebApp команды можно создать новое приложение в регионе "Северная часть США" и связать его с существующим планом службы приложений. Кроме того, можно использовать ту же группу ресурсов, что и исходное приложение, или определить новую группу ресурсов. См. следующую команду:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp

Чтобы клонировать существующее приложение, включая все связанные слоты развертывания, необходимо использовать этот параметр IncludeSourceWebAppSlots. Параметр IncludeSourceWebAppSlots поддерживается только для клонирования всего приложения, включая все его слоты. Следующая команда PowerShell демонстрирует использование этого параметра с командой New-AzWebApp :

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots

Чтобы клонировать существующее приложение в одном регионе, создайте новую группу ресурсов и новый план службы приложений в том же регионе. Затем используйте следующую команду PowerShell, чтобы клонировать приложение:

$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp

Клонирование существующего приложения в среду службы приложений

Сценарий. Вы хотите клонировать содержимое существующего приложения в регионе "Южная часть США" в новое приложение в существующей среде службы приложений.

Если вы знаете имя группы ресурсов, содержащей исходное приложение, можно использовать следующую команду PowerShell для получения сведений о исходном приложении (в данном случае с именем source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

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

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp

Параметр Location требуется по устаревшим причинам, но он игнорируется при создании приложения в среде службы приложений.

Клонирование существующего слота приложения

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

Если вы знаете название группы ресурсов, включающей исходное приложение, можно использовать следующую команду PowerShell, чтобы получить сведения о слоте исходного приложения (в данном случае с именем source-appslot), привязанного к source-app.

$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot

Следующая команда демонстрирует создание клона исходного приложения в новом приложении:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot

Настройка диспетчера трафика при клонирование приложения

При создании приложений с несколькими регионами и настройке диспетчера трафика Azure для маршрутизации трафика в эти приложения рекомендуется обеспечить высокую доступность клиентских приложений. При клонировании существующего приложения можно подключить оба приложения к новому профилю диспетчера трафика или существующему. Поддерживается только версия Диспетчера трафика Azure Resource Manager.

Создайте новый профиль диспетчера трафика при клонировании приложения

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

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile

Добавление нового клонированного приложения в существующий профиль диспетчера трафика

Сценарий. У вас уже есть профиль диспетчера трафика Azure Resource Manager и требуется добавить оба приложения в качестве конечных точек. Сначала соберите существующий идентификатор профиля диспетчера трафика. Вам нужен идентификатор подписки, имя группы ресурсов и существующее имя профиля диспетчера трафика.

$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"

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

$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID

Замечание

Если при выполнении операции клонирования вы получаете сообщение об ошибке "Проверка SSL в имени узла диспетчера трафика завершается неудачей", мы рекомендуем использовать атрибут -IgnoreCustomHostNames в командлете PowerShell. Альтернатива заключается в том, что вы можете использовать портал.

Текущие ограничения

Ниже приведены известные ограничения клонирования приложения:

  • Параметры автомасштабирования не клонируются.
  • Параметры расписания резервного копирования не клонируются.
  • Параметры виртуальной сети не клонируются.
  • Application Insights не настраивается автоматически в целевом приложении.
  • Параметры простой проверки подлинности не клонируются.
  • Расширения Kudu не клонируются.
  • Правила TiP не клонируются.
  • Содержимое базы данных не клонируется.
  • Исходящие IP-адреса изменяются, если клонировать в другую единицу масштабирования.
  • Приложения Linux: недоступны.
  • Управляемые удостоверения не клонируются.
  • Функциональные приложения: недоступны.