Использование параллельной функции миграции для миграции Среда службы приложений версии 2 на Среда службы приложений версии 3

Примечание.

Функция миграции, описанная в этой статье, используется для параллельной (другой подсети) автоматической миграции Среда службы приложений версии 2 в Среда службы приложений версии 3.

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

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

Внимание

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

Необходимые компоненты

Убедитесь, что миграция на Среда службы приложений версии 3 влияет на приложения. Просмотрите процесс миграции, чтобы понять процесс временная шкала и где и когда необходимо принять участие. Также ознакомьтесь с часто задаваемыми вопросами, которые могут ответить на некоторые вопросы.

Убедитесь, что в виртуальной сети, группах ресурсов, ресурсах или подписке нет блокировок. Блокирует операции платформы во время миграции.

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

Так как Среда службы приложений версии 3 находится в другой подсети в виртуальной сети, необходимо убедиться, что у вас есть доступная подсеть в виртуальной сети, которая соответствует требованиям подсети для Среда службы приложений версии 3. Выбранная подсеть также должна иметь возможность взаимодействовать с подсетью, в которую находится существующий Среда службы приложений. Убедитесь, что связь между двумя подсетями не блокируется. Если у вас нет доступной подсети, необходимо создать ее перед переносом. Создание новой подсети может включать увеличение адресного пространства виртуальной сети. Дополнительные сведения см. в статье "Создание виртуальной сети и подсети".

Так как масштабирование блокируется во время миграции, перед началом миграции следует масштабировать среду до требуемого размера. Если вы хотите масштабировать среду после миграции, вы можете сделать это после завершения миграции.

Выполните действия, описанные здесь, и как записано, так как вы выполняете вызовы REST API Azure. Рекомендуется использовать Azure CLI для выполнения этих вызовов API. Дополнительные сведения о других методах см . в справочнике по REST API Azure.

В этом руководстве установите Azure CLI или используйте Azure Cloud Shell и используйте оболочку Bash.

Примечание.

Мы рекомендуем использовать оболочку Bash для выполнения команд, приведенных в этом руководстве. Команды могут быть несовместимы с соглашениями PowerShell и escape-символами.

Внимание

Во время миграции портал Azure могут отображаться неверные сведения о Среда службы приложений и приложениях. Не перейдите к интерфейсу миграции в портал Azure, так как функция параллельной миграции недоступна. Рекомендуется использовать Azure CLI для проверка состояния миграции. Если у вас есть вопросы о состоянии миграции или ваших приложений, обратитесь в службу поддержки.

1. Выберите подсеть для новой Среда службы приложений версии 3

Выберите подсеть в Среда службы приложений версии 3, которая соответствует требованиям подсети для Среда службы приложений версии 3. Запишите имя выбранной подсети. Эта подсеть должна отличаться от подсети существующей Среда службы приложений.

2. Получение идентификатора Среда службы приложений

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

ASE_NAME=<Your-App-Service-Environment-name>
ASE_RG=<Your-ASE-Resource-Group>
VNET_RG=<Your-VNet-Resource-Group>
ASE_ID=$(az appservice ase show --name $ASE_NAME --resource-group $ASE_RG --query id --output tsv)

3. Проверка миграции поддерживается

Следующая команда проверка указывает, поддерживается ли Среда службы приложений для миграции. Если вы получаете сообщение об ошибке либо ваша Среда службы приложений находится в неработоспособном или приостановленном состоянии, вы не сможете выполнить миграцию в это время. Сведения о возможных сообщениях об ошибках, которые можно получить, см. в разделе "Устранение неполадок". Если ваша среда не поддерживается для миграции с помощью параллельной функции миграции или вы хотите выполнить миграцию в Среда службы приложений версии 3 без использования параллельной функции миграции, см. параметры миграции вручную. Эта команда также проверяет, находится ли Среда службы приложений в поддерживаемой версии сборки для миграции. Если ваша Среда службы приложений не включена в поддерживаемую версию сборки, необходимо начать обновление самостоятельно. Дополнительные сведения об обновлении предварительной миграции см. в статье "Проверка поддержки миграции с помощью параллельной функции миграции для Среда службы приложений".

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=Validation&api-version=2022-03-01"

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

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

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigrationUpgrade&api-version=2022-03-01"

4. Создание исходящих IP-адресов для новых Среда службы приложений версии 3

Создайте файл с именем zoneredundancy.json со следующими сведениями о выбранном регионе и избыточности зоны.

{
    "location":"<region>",    
    "Properties": {
        "zoneRedundant": "<true/false>"
    }
}

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

Выполните следующую команду, чтобы создать новые исходящие IP-адреса. Этот шаг занимает около 15 минут. Не масштабируйте и не вносите изменения в существующую Среду службы приложений в это время.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigration&api-version=2022-03-01" --body @zoneredundancy.json

Выполните следующую команду, чтобы проверка состояние этого шага:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.status

Если шаг выполняется, вы получите состояние Migrating. После получения состояния Readyвыполните следующую команду, чтобы просмотреть новые исходящие IP-адреса. Если вы не видите новые IP-адреса сразу, подождите несколько минут и повторите попытку.

az rest --method get --uri "${ASE_ID}/configurations/networking?api-version=2022-03-01" --query properties.windowsOutboundIpAddresses

5. Обновление зависимых ресурсов с новыми исходящими IP-адресами

Используя новые исходящие IP-адреса, обновите все ресурсы или сетевые компоненты, чтобы обеспечить выполнение новых функций среды в случае завершения миграции. Вы отвечаете за внесение всех необходимых обновлений.

6. Делегируйте подсеть Среда службы приложений

Среда службы приложений версии 3 требует, чтобы подсеть, в которой она находится, имела одно делегирование Microsoft.Web/hostingEnvironments. Предыдущие версии не требовали этого делегирования. Перед миграцией необходимо убедиться, что подсеть делегирована делегирование делегирования делегирования (при необходимости). Вы можете обновить делегирование, выполнив следующую команду или перейдя в подсеть в портал Azure.

az network vnet subnet update --resource-group $VNET_RG --name <subnet-name> --vnet-name <vnet-name> --delegations Microsoft.Web/hostingEnvironments

7. Убедитесь, что блокировки в виртуальной сети отсутствуют

Виртуальная сеть блокирует операции платформы во время миграции. Если у виртуальной сети есть блокировки, их необходимо удалить перед переносом. При необходимости можно добавить блокировки после завершения миграции.

Блокировки могут существовать в трех область: подписка, группа ресурсов и ресурс. При применении блокировки к родительской области все ресурсы в этой области наследуют ту же блокировку. Если у вас есть блокировки, примененные к подписке, группе ресурсов или область ресурсов, их необходимо удалить перед миграцией. Дополнительные сведения о блокировках и наследовании блокировок см. в разделе "Блокировка ресурсов для защиты инфраструктуры".

Используйте следующую команду, чтобы проверка, если у виртуальной сети есть блокировки:

az lock list --resource-group $VNET_RG --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Удалите все существующие блокировки с помощью следующей команды:

az lock delete --resource-group $VNET_RG --name <lock-name> --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Связанные команды для проверка, если у вашей подписки или группы ресурсов есть блокировки, см. справочник по Azure CLI для блокировок.

8. Подготовка конфигураций

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

Примечание.

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

Чтобы задать эти конфигурации, включая идентификацию выбранной ранее подсети, создайте другой файл с именем parameters.json со следующими сведениями на основе вашего сценария. Обязательно используйте новую подсеть, выбранную для нового Среда службы приложений версии 3. Не включайте свойства суффикса личного домена, если эта функция не применяется к миграции. Обратите внимание на значение zoneRedundant свойства и присвойте ему то же значение, которое использовалось на шаге создания исходящих IP-адресов. Необходимо использовать то же значение для избыточности зоны, используемой на шаге создания исходящих IP-адресов.

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

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>"
    }
}

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

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-migration/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-managed-identity"
        }
    }
}

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

{
    "properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "SystemAssigned"
        }
    }
}

9. Переход на Среда службы приложений версии 3 и состояние проверка

Выполнив все описанные выше действия, вы можете начать миграцию. Убедитесь, что вы понимаете последствия миграции.

Этот шаг занимает три-шесть часов. В течение этого времени простоя приложения нет. Масштабирование, развертывание и изменение существующих Среда службы приложений блокируются на этом шаге.

Выполните следующую команду, чтобы начать миграцию:

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=HybridDeployment&api-version=2022-03-01" --body @parameters.json

Выполните следующую команду, чтобы проверка состояние миграции:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

После получения состояния миграции MigrationPendingDnsChangeвыполняется миграция и у вас есть ресурс Среда службы приложений версии 3. Теперь ваши приложения работают в новой среде и в старой среде.

Получите сведения о новой среде, выполнив следующую команду:

az appservice ase show --name $ASE_NAME --resource-group $ASE_RG

Внимание

Во время миграции, а также на MigrationPendingDnsChange этапе портал Azure отображаются неверные сведения о Среда службы приложений и приложениях. Используйте Azure CLI, чтобы проверка состояние миграции. Если у вас есть вопросы о состоянии миграции или ваших приложений, обратитесь в службу поддержки.

Примечание.

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

Снимок экрана: образец конфигурации суффикса личного домена с пониженным состоянием.

10. Получение входящих IP-адресов для новых Среда службы приложений версии 3 и обновление зависимых ресурсов

На этом этапе в процессе миграции имеется два Среда службы приложений. Приложения работают в обеих средах. Необходимо обновить все зависимые ресурсы, чтобы использовать новый входящий IP-адрес для нового Среда службы приложений версии 3. Для внутренних Среда службы приложений (ILB) необходимо обновить частные зоны DNS, чтобы указать новый входящий IP-адрес.

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

Для Среда службы приложений балансировки нагрузки получите частный входящий IP-адрес, выполнив следующую команду:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.internalInboundIpAddresses

Для Среда службы приложений ELB получите общедоступный входящий IP-адрес, выполнив следующую команду:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.externalInboundIpAddresses

11. Перенаправление трафика клиентов, проверка Среда службы приложений версии 3 и завершение миграции

Этот шаг — это возможность протестировать и проверить новые Среда службы приложений версии 3. По умолчанию трафик отправляется в интерфейсные Среда службы приложений версии 2. Если вы используете Среда службы приложений ILB версии 3, вы можете протестировать интерфейс Среда службы приложений версии 3, обновив частную зону DNS с новым входящий IP-адрес. Если вы используете Среда службы приложений ELB версии 3, процесс тестирования зависит от конкретной конфигурации сети. Одним из простых способов проверки среды ELB является обновление файла узлов для использования нового ip-адреса Среда службы приложений версии 3. Если у вас есть пользовательские домены, назначенные отдельным приложениям, можно также обновить DNS, чтобы указать новый входящий IP-адрес. Тестирование этого изменения позволяет полностью проверить Среда службы приложений версии 3 перед началом окончательного этапа миграции, в котором удален старый Среда службы приложений. Если вы можете получить доступ к приложениям без проблем, что означает, что вы готовы завершить миграцию.

Убедившись, что приложения работают должным образом, вы можете перенаправить трафик клиентов в новый Среда службы приложений версии 3, выполнив следующую команду. Эта команда также удаляет старую среду. Для выполнения этого шага требуется 14 дней. Если этот шаг не выполнен в 14 дней, миграция автоматически отменить изменения обратно в Среда службы приложений версии 2. Если вам потребуется более 14 дней для выполнения этого шага, обратитесь в службу поддержки.

Если вы найдете какие-либо проблемы или решите на этом этапе, что вы больше не хотите продолжить миграцию, обратитесь в службу поддержки, чтобы отменить изменения миграции. Не выполняйте команду изменения DNS, если необходимо отменить изменения миграции. Дополнительные сведения см. в разделе "Восстановление миграции".

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=DnsChange&api-version=2022-03-01"

Выполните следующую команду, чтобы проверка состояние этого шага:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

На этом шаге вы получите состояние CompletingMigration. После получения состояния MigrationCompletedвыполняется шаг перенаправления трафика и миграция завершена.

Следующие шаги