Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как перенести существующие приложения-функции из Плана потребления на План гибкого потребления. Для большинства приложений эта миграция проста, и коду не нужно изменяться.
Это важно
Поддержка размещения приложений-функций в Linux в плане потребления прекращается 30 сентября 2028 г. По состоянию на сегодняшний день улучшения функций и языков не вносятся в план потребления Linux. Ознакомьтесь с этой статьей, чтобы перенести приложения, работающие на плане потребления, на план Flex. Чтобы узнать больше о датах окончания поддержки плана потребления Linux, см. статью Размещение плана потребления в Функции Azure (устаревшая версия).
Методы миграции
Эта статья поддерживает миграцию на приложение-функцию на Linux в плане потребления Flex, который подходит для приложений как на Linux, так и на Windows. Функции предоставляют несколько способов упрощения большинства шагов миграции, особенно для приложений Linux.
В следующей таблице показано, какие методы миграции доступны для каждой операционной системы и рассматриваются в этой статье.
| Метод миграции | Описание | Линукс | Windows |
|---|---|---|---|
| Навыки Azure в GitHub Copilot. | Позвольте Copilot'у руководить и автоматизировать вашу миграцию интерактивно (рекомендуется для Linux). | ✅ | ❌ |
| Команда миграции CLI | Используйте az functionapp flex-migration для автоматизации миграции. |
✅ | ❌ |
| Стандартные команды CLI | Пошаговая миграция с помощью команд Azure CLI. | ➖ | ✅ |
| портал Azure | Пошаговая миграция на портале Azure. | ✅ | ✅ |
| инфраструктура в виде кода | Создайте повторяемый код миграции с помощью шаблонов ARM, файлов Bicep или Terraform. | ➖ | ➖ |
✅ Поддерживаемые и рекомендуемые | ➖ Поддерживаемые, не рекомендуемые | ❌ Не поддерживается
Чтобы просмотреть правильные инструкции для приложения, выберите операционную систему в верхней части статьи.
Чего следует ожидать
Конкретные шаги, необходимые для переноса приложения плана потребления, зависят от операционной системы и конкретного метода миграции:
- GitHub Copilot
- Azure CLI
- портал Azure
Функция Azure автоматизирует большую часть миграции. Ниже приведены шаги высокого уровня.
Подсказка
Чтобы начать миграцию с использованием GitHub Copilot, см. статью Краткое руководство: перенос приложений потребления Linux в Flex Consumption с помощью GitHub Copilot.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Независимо от метода миграции, ниже приведены общие принципы миграции:
- Код остается неизменным. Вам не нужно переписать функции, если вы используете поддерживаемую языковую версию Flex Consumption. Это руководство поможет вам проверить.
- Необходимо создать новое приложение. Процесс миграции создает новое приложение Flex Consumption вместе с существующим приложением, чтобы можно было протестировать перед переключением.
- Используйте ту же группу ресурсов. Новое приложение выполняется в той же группе ресурсов с доступом к тем же зависимостям.
- Вы управляете временем. Тщательно протестируйте новое приложение, прежде чем перенаправлять трафик и отключайте старый.
Замечание
Если вы используете Azure для государственных организаций, Flex Consumption пока недоступно. Просмотрите это руководство, чтобы вы были готовы, когда он станет доступным.
Преимущества миграции на Flex Consumption
При миграции функции получают следующие преимущества, не изменяя код:
- Быстрый холодный запуск: всегда готовые экземпляры означают, что функции реагируют быстрее.
- Лучшее масштабирование: элементы управления масштабированием и параллелизмом для каждой функции обеспечивают больше контроля.
- Поддержка виртуальной сети. Подключение функций к частным сетям и использование частных конечных точек.
- Активные инвестиции: Flex Consumption — это платформа, на которой первыми появляются новые функции и улучшения.
Дополнительные сведения см. в разделе "Преимущества плана потребления Flex " и сравнение планов размещения.
Развертывания на основе ресурсов
В этой статье не показано, как использовать инфраструктуру как код (IaC) для миграции. Однако вы можете выполнить те же действия по миграции, чтобы преобразовать шаблоны ARM, файлы Bicep и конфигурации Terraform.
План потребления Flex представляет новый раздел functionAppConfig в определении ресурсов Майкрософт.Web/sites, который заменяет несколько устаревших параметров приложения. Дополнительные сведения об этих изменениях см. в статье об отмене плана потребления Flex.
Эти ресурсы помогут вам приступить к развертыванию ресурсов Flex Consumption:
- Автоматизация развертывания ресурсов охватывает полные сведения о конфигурации ресурсов.
- Примеры готовых к использованию доступны для шаблонов ARM, Bicep и Terraform.
После успешной миграции обновите файлы развертывания ресурсов , чтобы соответствовать новой конфигурации потребления Flex.
Предпосылки
Доступ к подписке Azure, содержащей одно или несколько приложений-функций для миграции. Учетная запись, используемая для выполнения задач миграции, должна иметь следующие разрешения:
- Создание приложений-функций и планов размещения службы приложений и управление ими.
- Назначьте роли управляемым удостоверениям.
- Создание учетных записей хранения и управление ими.
- Создание ресурсов Application Insights и управление ими.
- Доступ ко всем зависимым ресурсам приложения, таким как Azure Key Vault, Служебная шина Azure или Центры событий Azure.
Назначение ролей владельца или участника в группе ресурсов обычно предоставляет достаточные разрешения.
Чтобы выполнить миграцию с помощью Azure CLI или GitHub Copilot, выполните следующие действия.
- Azure CLI версии 2.77.0 или более поздней. Обязательный при использовании команд Azure CLI. Скрипты тестируются с помощью Azure CLI в Azure Cloud Shell.
- Войдите в Azure CLI, выполнив
az login. Убедитесь, что вы вошли в подписку, содержащую приложения-функции, которые вы хотите перенести.
- Расширение resource-graph , которое можно установить с помощью
az extension addкоманды:
az extension add --name resource-graph- Средство
jq, которое используется для работы с выходными данными JSON.
Чтобы выполнить миграцию с помощью GitHub Copilot, настройте GitHub Copilot в нужном режиме:
Войдите в Azure CLI, если вы еще не сделали:
az loginУбедитесь, что вы вошли в подписку, содержащую приложения-функции, которые вы хотите перенести.
Запустите интерфейс командной строки Copilot:
copilotДобавьте источник Marketplace (только в первый раз):
/plugin marketplace add microsoft/azure-skillsУстановите плагин:
/plugin install azure@azure-skillsПосле установки перезагрузите серверы протокола контекста модели (MCP):
/mcp reloadПроверьте установку:
/mcp showВы увидите подключаемый модуль Azure, который отмечен галочкой. Это
functionappсредство является частью этого плагина.
Подсказка
Если Copilot нацелен на неправильную подписку, попросите его использовать определенный идентификатор подписки. Идентификатор подписки можно найти, выполнив команду
az account show --query id -o tsv. Если Copilot подключается к неправильному клиенту Azure, попросите Copilot использовать идентификатор конкретного клиента при вызове Azure. Идентификатор клиента можно найти, выполнив командуaz account show --query tenantId -o tsv.
Определение потенциальных приложений для миграции
Подсказка
Уже знаете, какое приложение нужно перенести? Вы можете пропустить этот раздел и перейти непосредственно к оценке существующего приложения.
Если у вас есть несколько приложений-функций и не уверены, какие из них необходимо перенести, этот раздел поможет вам найти их. Вы получаете список имен приложений, групп ресурсов, расположений и стеков среды выполнения.
- GitHub Copilot
- Azure CLI
- портал Azure
Чтобы начать интерактивную миграцию, которая сканирует подписку и запрашивает выбор приложений для миграции, используйте следующий запрос:
migrate my linux function apps in azure from consumption to flex consumption
Copilot идентифицирует подходящие приложения потребления Linux, позволяет выбрать те, которые необходимо перенести, а затем провести оценку, создание приложений, конфигурацию и развертывание для каждого приложения. Перейдите к шагам по миграции.
Если вы хотите просто увидеть, какие приложения доступны без запуска миграции, используйте этот запрос:
list my linux consumption apps eligible for flex consumption migration
Copilot возвращает список допустимых и неприемлемых приложений, а также причины любых несовместимостей. Затем можно перенести конкретное приложение с помощью запроса на запуск миграции для Linux.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Оценка существующего приложения
Навыки Azure выполняют эти задачи автоматически. При использовании навыка Azure перейдите непосредственно к Запустите миграцию.
Перед миграцией выполните этот краткий контрольный список, чтобы убедиться, что приложение готово. Большинство приложений проходят эти проверки без проблем:
Подтверждение совместимости региона
Убедитесь, что план потребления Flex в настоящее время поддерживается в том же регионе, что и приложение плана потребления, которое вы планируете перенести.
Confirmed: Если выходные данные команды
az functionapp flex-migration listили оценка Copilot включают приложение в списокeligible_apps, план потребления Flex поддерживается в том же регионе, который используется текущим приложением потребления Linux. В этом случае можно продолжить проверку совместимости стека языков.
Требуется действие: Если выходные данные включают ваше приложение в список, вы увидите сообщение
ineligible_appsоб ошибкеThe site '<name>' is not in a region supported in Flex Consumption. Please see the list of regions supported in Flex Consumption by running az functionapp list-flexconsumption-locations. В этом случае план потребления Flex не поддерживается в регионе, используемом текущим приложением потребления Linux.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Если ваш регион в настоящее время не поддерживается, и вы по-прежнему решили перенести приложение-функцию, ваше приложение должно работать в другом регионе, где поддерживается план потребления Flex. Однако запуск приложения в другом регионе, отличном от других подключенных служб, может привести к дополнительной задержке. Перед завершением миграции убедитесь, что новый регион может соответствовать требованиям к производительности приложения.
Проверка совместимости языкового стека
Планы потребления Flex пока не поддерживают все стеки языков функций. Эта таблица указывает, какие языковые стеки в настоящее время поддерживаются:
| Настройка стека | Имя стека | Поддерживается |
|---|---|---|
dotnet-isolated |
.NET (изолированная рабочая модель) | ✅ Да |
node |
JavaScript/TypeScript | ✅ Да |
java |
Java | ✅ Да |
python |
Python | ✅ Да |
powershell |
PowerShell | ✅ Да |
dotnet |
.NET (модель в процессе) | ❌ Нет |
custom |
Пользовательские обработчики | ✅ Да |
Подтверждено: Если команда
az functionapp flex-migration listили оценка Copilot включала ваше приложение в списокeligible_apps, ваше приложение Linux Consumption уже использует поддерживаемый стек языков Flex Consumption. Вы можете продолжать проверять совместимость версий стека.
Требуется действие: Если в выходных данных ваше приложение включено в список
ineligible_appsвместе с сообщением об ошибкеRuntime '<name>' not supported for function apps on the Flex Consumption plan., ваше приложение Linux Consumption не использует поддерживаемую Flex Consumption среду выполнения.
Если приложение-функция использует неподдерживаемый стек среды выполнения:
- Для C# приложений, выполняющихся внутри процесса среды выполнения (
dotnet), сначала необходимо мигрировать приложение на .NET с изоляцией. Дополнительные сведения см. в статье "Миграция приложений C# из модели в процессе в изолированную рабочую модель".
Проверка совместимости версий стека
Перед переносом убедитесь, что версия стека среды выполнения вашего приложения поддерживается в плане Flex Consumption в текущем регионе.
Подтверждено: Если команда
az functionapp flex-migration listили оценка Copilot включает ваше приложение в списокeligible_apps, ваше приложение для Linux Consumption уже использует поддерживаемую версию стека языков Flex Consumption, и вы можете продолжать проверять использование слотов развертывания.
Требуется действие: Если выходные данные содержат ваше приложение в
ineligible_appsсписке с сообщениемInvalid version {0} for runtime {1} for function apps on the Flex Consumption plan. Supported versions for runtime {1} are {2}.об ошибке, ваше Linux-потребительское приложение не работает на поддерживаемой Flex Consumption среде выполнения.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Если приложение-функция использует неподдерживаемую версию стека языков, сначала обновите код приложения до поддерживаемой версии перед переносом в план потребления Flex.
Проверка использования слотов развертывания
Приложения плана потребления могут иметь определенный слот развертывания. Дополнительные сведения см. в разделе Функции Azure слоты развертывания. Однако тарифный план Flex Consumption в настоящее время не поддерживает слоты развертывания. Перед миграцией определите, имеет ли приложение слот развертывания. Если это так, разработайте стратегию управления вашим приложением без использования слотов развертывания при работе в плане Flex Consumption.
Подтверждено: Если в вашем текущем приложении включены слоты развертывания, команда
az functionapp flex-migration listили оценка Copilot показывают ваше функциональное приложение в спискеeligible_appsбез предупреждения. Продолжайте проверять использование сертификатов.
Требуется действие: Текущее приложение включает слоты развертывания, и вывод показывает функцию приложения в списке , но добавляет предупреждение, что гласит:
eligible_apps
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Если ваше функциональное приложение использует слоты развертывания, вы сейчас не можете воспроизвести эту функциональность в плане Flex Consumption. Перед миграцией рассмотрите следующие параметры:
- Переархитируйте приложение для использования отдельных приложений-функций. Таким образом, вы можете разрабатывать, тестировать и развертывать код функции во втором непроизводственном приложении вместо того чтобы использовать слоты.
- Перенос любого нового кода или компонентов из слота развертывания в основной (рабочий) слот.
Проверка использования сертификатов
Сертификаты TLS, ранее известные как СЕРТИФИКАТЫ SSL, помогают защитить интернет-подключения. План потребления Flex в настоящее время не поддерживает сертификаты TLS/SSL, которые включают управляемые сертификаты, собственные сертификаты (BYOC) или сертификаты открытого ключа.
Confirmed: Если команда
az functionapp flex-migration listили оценка Copilot включает ваше приложение в списокeligible_apps, приложение на платформах Linux Consumption не использует сертификаты, и вы можете продолжить Проверить триггеры хранилища BLOB-объектов.
Требуется участие: Если выходные данные включают ваше приложение в
ineligible_appsсписок с сообщением об ошибкеThe site '<name>' is using TSL/SSL certificates. TSL/SSL certificates are not supported in Flex Consumption.илиThe site '<name>' has the WEBSITE_LOAD_CERTIFICATES app setting configured. Certificate loading is not supported in Flex Consumption., ваше приложение на Linux платформе несовместимо с Flex Consumption.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Если приложение в настоящее время использует TLS/SSL-сертификаты, не продолжайте миграцию, пока поддержка сертификатов не будет добавлена в план потребления Flex.
Убедитесь в правильности триггеров хранилища BLOB-объектов
В настоящее время план Flex Consumption поддерживает только триггеры на основе событий для хранилища Blob Azure, которые определяются с настройкой Source на EventGrid. План не поддерживает триггеры хранилища BLOB-объектов, использующие опрос контейнеров и настройку Source параметра LogsAndContainerScan. Поскольку опрос контейнеров является вариантом по умолчанию, вы должны определить, использует ли какой-либо из триггеров вашего хранилища BLOB-объектов стандартную настройку источника LogsAndContainerScan. Дополнительные сведения см. в разделе Триггеры для контейнера BLOB-объектов.
Подтверждено: Если команда
az functionapp flex-migration listили оценка Copilot включает ваше приложение в списокeligible_apps, ваше приложение для Linux Consumption не использует триггеры объектного хранилища Blob сEventGridв качестве источника. Вы можете продолжать учитывать зависимые сервисы.
Требуется действие: Если выходные данные включают приложение в
ineligible_appsсписок с сообщениемThe site '<name>' has blob storage triggers that don't use Event Grid as the source: <list> Flex Consumption only supports Event Grid-based blob triggers. Please convert these triggers to use Event Grid or replace them with Event Grid triggers before migration.об ошибке, приложение потребления Linux несовместимо с Flex Consumption.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Если у вашего приложения есть триггеры хранилища BLOB-объектов, которые не имеют источника Event Grid, необходимо изменить на источник Event Grid перед переходом на план Flex Consumption.
Основные шаги по изменению существующего триггера хранилища Blob на источник Event Grid следующие:
Добавьте или обновите свойство
sourceв определении триггера хранилища BLOBEventGridи повторно разверните приложение.Создайте URL-адрес конечной точки в приложении-функции, используемом подпиской на события.
Создайте подписку на события в контейнере хранилища BLOB-объектов.
Дополнительные сведения см. в руководстве: триггер Функции Azure на контейнерах BLOB-объектов с помощью подписки на события.
Рассмотрим зависимые службы
Подсказка
Простое приложение только для HTTP? Если функции используют только триггеры HTTP и не подключаются к другим службам Azure, скорее всего, можно пропустить большую часть этого раздела. Просто не забудьте обновить все клиенты, чтобы указать URL-адрес нового приложения после миграции.
Так как Функции Azure является вычислительной службой, рассмотрите влияние миграции на данные и службы как выше, так и внизу приложения.
Стратегии защиты данных
Чтобы защитить данные вышестоящего и нижнего потока во время миграции, используйте следующие стратегии:
- Идемпотентность. Убедитесь, что функции могут безопасно обрабатывать одно и то же сообщение несколько раз без негативных побочных эффектов. Дополнительные сведения см. в Проектирование Функции Azure для однотипных входных данных.
- Ведение журнала и мониторинг. Чтобы отслеживать обработку сообщений, включите подробное ведение журнала в обоих приложениях во время миграции. Дополнительные сведения см. статью Мониторинг выполнения в Функции Azure.
- Контрольная точка: для триггеров потоковой передачи, таких как триггер Центров событий, реализуйте правильное поведение контрольных точек для отслеживания положения обработки. Дополнительные сведения см. в разделе Функции Azure надежная обработка событий.
- Параллельная обработка: рекомендуется временно запускать оба приложения параллельно во время переключение. Тщательно отслеживайте и проверяйте способ обработки данных из вышестоящей службы. Для получения дополнительной информации см. Индивидуальные решения для нескольких регионов для обеспечения устойчивости.
- Постепенный переход: для систем с большим объемом рекомендуется реализовать постепенный переход, перенаправляя части трафика на новое приложение. Маршрутизацию запросов из приложений можно управлять с помощью таких служб, как Azure API Management или Шлюз приложений Azure.
Устранение рисков по типу триггера
Планирование стратегий устранения рисков для защиты данных для конкретных триггеров функций в приложении:
| Триггер | Риск для данных | Стратегия |
|---|---|---|
| Azure хранилище BLOB-объектов | Высоко | Создайте отдельный контейнер для триггера на основе событий в новом приложении. При запуске нового приложения переключите клиенты на использование нового контейнера. Предоставьте исходному контейнеру полностью обрабатываться перед остановкой старого приложения. |
| Azure Cosmos DB | Высоко | Создайте выделенный контейнер аренды специально для нового приложения. Задайте этот новый контейнер аренды leaseCollectionName в качестве конфигурации в новом приложении.Требует, чтобы функции были идемпотентными или чтобы была возможность обрабатывать результаты обработки дубликатов канала изменений. Задайте конфигурацию StartFromBeginning на false в новом приложении, чтобы избежать повторной обработки всего потока данных. |
| Сетка событий Azure | Средний | Создайте ту же подписку на события в новом приложении. Требуется, чтобы функции были идемпотентными, или необходимо иметь возможность обрабатывать результаты дублирующейся обработки событий. |
| Центры событий Azure | Средний | Создайте новую группу потребителей для использования новым приложением. Дополнительные сведения см. в разделе "Стратегии миграции" для триггеров сетки событий. |
| Служебная шина Azure | Высоко | Создайте раздел или очередь для использования новым приложением. Обновите отправителей и клиентов, чтобы использовать новый раздел или очередь. После того как исходный раздел пуст, закройте старое приложение. |
| очередь служба хранилища Azure | Высоко | Создайте новую очередь для использования новым приложением. Обновите отправителей и клиентов, чтобы использовать новую очередь. После того как исходная очередь пуста, закройте старое приложение. |
| HTTP | Низкий уровень | Не забудьте переключить клиенты и другие приложения или службы для назначения новых конечных точек HTTP после миграции. |
| Таймер | Низкий уровень | Во время перехода обязательно смещайте расписание таймера между двумя приложениями, чтобы избежать одновременного выполнения обоих приложений. Отключите триггер таймера в старом приложении после успешного запуска нового приложения. |
Задачи предварительной подготовки
Перед созданием нового приложения Flex Consumption соберите некоторые сведения о текущем приложении. Этот шаг гарантирует, что вы не потеряете параметры во время перехода.
Подсказка
Этот шаг в основном заключается в копировании и вставке. Соберите параметры из существующего приложения, чтобы применить их к новому приложению.
Выполните следующие задачи перед миграцией:
Сбор параметров приложения
Если вы планируете использовать те же источники триггеров и привязок и другие параметры из параметров приложения, сначала обратите внимание на текущие параметры приложения в существующем приложении плана потребления.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Осторожность
Параметры приложения часто содержат ключи и другие общие секреты. Всегда храните параметры приложения безопасно, в идеале зашифрованные. Для повышения безопасности используйте проверку подлинности Microsoft Entra ID с управляемыми удостоверениями в новом приложении плана потребления Flex вместо общих секретов.
Сбор конфигураций приложений
Другие конфигурации приложений существуют за пределами параметров приложения. Зафиксируйте эти конфигурации из существующего приложения, чтобы можно было правильно создать их в новом приложении.
Просмотрите эти параметры. Если любой из них существует в текущем приложении, решите, следует ли повторно создать их в новом приложении плана потребления Flex:
| Конфигурация | Настройки | Комментарий |
|---|---|---|
| Параметры CORS | cors |
Определяет наличие текущих настроек общего доступа к ресурсам (CORS), которые могут потребоваться вашим клиентам. |
| Личные домены | Если в настоящее время ваше приложение использует домен, отличный от *.azurewebsites.net, вы должны заменить это сопоставление пользовательского домена на новое сопоставление с вашим приложением. |
|
| Версия HTTP | http20Enabled |
Определяет, требуется ли вашему приложению HTTP 2.0. |
| Только HTTPS | httpsOnly |
Определяет, требуется ли TSL/SSL для доступа к приложению. |
| Входящие сертификаты клиента | clientCertEnabledclientCertModeclientCertExclusionPaths |
Задает требования для клиентских запросов, использующих сертификаты для проверки подлинности. |
| Максимальное ограничение масштабирования | WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT |
Устанавливает предел для инстанций горизонтального масштабирования. Максимальное значение по умолчанию — 200. Это значение находится в параметрах вашего приложения, но в приложении с планом потребления Flex оно вместо этого добавляется в качестве параметра сайта (maximumInstanceCount). |
| Минимальная версия tls для входящего трафика | minTlsVersion |
Задает минимальную версию TLS, необходимую для приложения. |
| Минимальный входящий шифр TLS | minTlsCipherSuite |
Задает минимальное требование шифра TLS для приложения. |
| Подключенные общие папки Файлы Azure | azureStorageAccounts |
Определяет, существуют ли в приложении явным образом подключенные файловые ресурсы (только для Linux). |
| Базовые учетные данные для аутентификации публикации в SCM | scm.allow |
Определяет, включен ли scm сайт публикации. Хотя и не рекомендуется для обеспечения безопасности, некоторые методы публикации требуют его. |
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Определение управляемых удостоверений и ролевого доступа
Перед миграцией задокументируйте, зависит ли ваше приложение от системой назначенного управляемого удостоверения или от пользователем назначаемых управляемых удостоверений. Определите разрешения управления доступом на основе ролей (RBAC), предоставленные этим удостоверениям. Необходимо восстановить системно управляемое удостоверение и все назначения ролей в новом приложении. Вы можете повторно использовать управляемые удостоверения, присвоенные пользователю, в вашем новом приложении.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Определение встроенных параметров проверки подлинности
Перед миграцией в Flex Consumption соберите сведения о всех встроенных конфигурациях проверки подлинности. Если вы хотите, чтобы приложение использовало одно и то же поведение проверки подлинности клиента, необходимо повторно создать их в новом приложении. Для получения дополнительной информации см. раздел Аутентификация и авторизация в Функции Azure.
Обратите особое внимание на перенаправление URI, разрешенные внешние перенаправления и параметры маркера, чтобы обеспечить плавный переход для прошедших проверку подлинности пользователей.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Проверка ограничений для входящего доступа
Вы можете задать ограничения для входящего доступа к приложениям в плане потребления. Вы можете сохранить эти ограничения в новом приложении. Для каждого определяемого ограничения обязательно зафиксировать следующие свойства:
- IP-адреса или диапазоны CIDR
- Значения приоритета
- Тип действия (разрешить или запретить)
- Имена правил
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
При работе в плане Flex Consumption можно заново установить входящие ограничения на основе IP-адреса. Вы можете дополнительно защитить приложение, реализуя другие сетевые ограничения, такие как интеграция виртуальной сети и входящие частные конечные точки. Дополнительные сведения см. в разделе Интеграция виртуальной сети.
Начало миграции
- GitHub Copilot
- Azure CLI
- портал Azure
Если вы использовали подсказку обнаружения в разделе Идентификация, навык уже оценил, создал и настроил ваше новое приложение Flex Consumption. Вы можете пропустить этот раздел и продолжить к этапам миграции.
Если вы уже знаете, какое приложение нужно перенести, используйте следующий запрос:
migrate my app <APP_NAME> to flex consumption
Навык автоматически обрабатывает оценку, создание приложения и миграцию конфигурации — эквивалентен команде az functionapp flex-migration start и ее шагам проверки.
После успешного запуска миграции продолжите к получению пакета для развертывания кода.
Получите пакет развертывания кода
Чтобы повторно развернуть приложение, вам потребуется исходные файлы проекта или пакет развертывания. В идеале вы храните файлы проекта в системе управления версиями, это позволяет легко повторно развернуть функциональный код в новом приложении. Если у вас есть файлы исходного кода, можно пропустить этот раздел и продолжить запись тестов производительности (необязательно).
Если у вас больше нет доступа к исходным файлам проекта, можно скачать текущий пакет развертывания из существующего приложения плана потребления в Azure. Расположение пакета развертывания зависит от того, работаете ли вы в Linux или Windows.
Приложения плана потребления в Linux поддерживают ZIP-файл развертывания в одном из следующих расположений:
Контейнер хранилища BLOB-объектов Azure с именем
scm-releasesв учетной записи хранения узла по умолчанию (AzureWebJobsStorage). Этот контейнер является источником развертывания по умолчанию для приложения плана потребления в Linux.Если у вашего приложения есть
WEBSITE_RUN_FROM_PACKAGEпараметр, который является URL-адресом, пакет находится во внешнем доступном расположении, которое вы поддерживаете. Внешний пакет должен храниться в контейнере хранилища объектов Blob с ограниченным доступом. Дополнительные сведения см. в разделе URL-адрес внешнего пакета.
Подсказка
Если вы ограничиваете доступ к управляемому удостоверению только для учетной записи хранения, возможно, потребуется предоставить доступ на чтение учетной записи Azure к контейнеру хранилища, добавив его в роль Storage Blob Data Reader.
Пакет развертывания сжимается в формате squashfs. Чтобы узнать, что находится внутри пакета, необходимо использовать средства, которые могут распаковывать этот формат.
Чтобы скачать пакет развертывания из текущего приложения, выполните следующие действия.
- GitHub Copilot
- Azure CLI
- портал Azure
Навык миграции Copilot пытается скачать ваш существующий проект кода и повторно развернуть его в новом приложении. В случае неудачи он предоставит инструкции по получению и развертыванию пакета кода в рамках рабочего процесса миграции. Этот раздел можно пропустить и продолжить к шагам миграции.
Расположение исходных файлов проекта зависит от WEBSITE_RUN_FROM_PACKAGE параметра приложения следующим образом:
Значение WEBSITE_RUN_FROM_PACKAGE |
Расположение исходного файла |
|---|---|
1 |
Файлы находятся в ZIP-пакете, который хранится в области Файлы Azure учетной записи хранилища, определенной параметром WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. Параметр WEBSITE_CONTENTSHARE определяет имя общей папки. |
| URL-адрес конечной точки | Файлы находятся в zip-пакете в доступном снаружи месте, которое вы поддерживаете. Внешний пакет должен храниться в контейнере хранилища объектов Blob с ограниченным доступом. Дополнительные сведения см. в разделе URL-адрес внешнего пакета. |
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Захват показателей производительности (необязательно)
Если вы планируете подтвердить повышение производительности вашего приложения после перехода на план Flex Consumption, рекомендуется установить показатели производительности вашего текущего плана. Затем их можно сравнить с теми же тестами для приложения, работающего в плане потребления Flex.
Подсказка
Всегда сравнивайте производительность в аналогичных условиях, например время дня, день недели и нагрузку клиента. Попробуйте провести оба бенчмарка как можно ближе друг к другу.
Ниже приведены некоторые тесты для структурированного тестирования производительности.
| Предложенный эталон | Комментарий |
|---|---|
| Холодный запуск | Измеряйте время от первого запроса к первому ответу после периода простоя. |
| Пропускная способность | Измеряйте максимальные запросы в секунду с помощью средств нагрузочного тестирования , чтобы определить, как приложение обрабатывает одновременные запросы. |
| Задержка | Отслеживайте время отклика P50, P95 и P99 в различных условиях нагрузки. Эти метрики можно отслеживать в Application Insights. |
Используйте этот запрос Kusto для просмотра предлагаемого времени отклика задержки в Application Insights:
requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart
Шаги миграции
Чтобы перенести функции из приложения плана потребления в приложение плана потребления Flex, выполните следующие основные действия.
Проверка создания и настройки приложения Flex Consumption
После выполнения команды az functionapp flex-migration start убедитесь, что новое приложение Flex Consumption создано успешно и правильно настроено. Ниже приведены некоторые шаги для проверки результатов миграции:
- GitHub Copilot
- Azure CLI
- портал Azure
Навык миграции Copilot автоматически проверяет новое приложение как часть процесса миграции. Если вы начали миграцию с помощью запроса Copilot в Start the migration for Linux, навык уже проверил, что приложение было создано и настроено правильно. Этот раздел можно пропустить и продолжить настройку встроенной проверки подлинности.
Обзор сводки по миграции
Команда автоматической миграции передает большинство конфигураций. Однако вручную убедитесь, что эти элементы перенесены. Их может потребоваться настроить вручную:
- Сертификаты: TLS/SSL-сертификаты пока не поддерживаются в Flex Consumption.
- Слоты развертывания: не поддерживаются в Flex Consumption.
- Встроенные параметры проверки подлинности: необходимо вручную настроить эти параметры.
- Параметры CORS: может потребоваться проверить эти параметры вручную в зависимости от конфигурации.
Если критически важные параметры отсутствуют или неверны, настройте их вручную, выполнив действия, описанные в процессе миграции Windows разделах этой статьи.
- Окончательный обзор плана
- Создание приложения в тарифном плане Flex Consumption
- Применение перенесенных параметров приложения в новом приложении
- Применение других конфигураций приложений
- Настройка параметров масштабирования и параллелизма
- Настройка любых пользовательских доменов и доступа CORS
- Настройка управляемых удостоверений и назначение ролей
- Настройка ограничений доступа к сети
- Включение мониторинга
- Настройка встроенной проверки подлинности
- Развертывание кода приложения в новом ресурсе Flex Consumption
Окончательный обзор плана
Прежде чем продолжить процесс миграции, выполните следующие последние подготовительные действия:
Просмотрите все собранные сведения: просмотрите все заметки, сведения о конфигурации и параметры приложения, которые вы задокументировали в предыдущих разделах оценки и предварительной подготовки. Если что-либо неясно, повторно выполните команды Azure CLI или получите информацию с портала.
Определите план миграции: на основе результатов создайте контрольный список для миграции, который выделяет:
- Все параметры, требующие особого внимания
- Триггеры и привязки или другие зависимости, которые могут быть затронуты во время миграции
- Стратегия тестирования для проверки после миграции
- План отката в случае непредвиденных проблем
Планирование простоя. Рассмотрите возможность остановки исходного приложения-функции, чтобы избежать потери данных и дублирования обработки событий, а также о том, как эта миграция может повлиять на пользователей или подчиненные системы. В некоторых случаях перед остановкой всего приложения может потребоваться отключить определенные функции .
Тщательный окончательный обзор помогает обеспечить более гладкий процесс миграции и свести к минимуму риск пропуска важных конфигураций.
Создайте приложение в тарифном плане потребления Flex
Вы можете создать приложение-функцию в плане потребления Flex вместе с другими необходимыми ресурсами Azure различными способами:
| Создать опцию | Справочные статьи |
|---|---|
| Azure CLI | Создание приложения Flex Consumption |
| портал Azure | Создать функциональное приложение в портале Azure |
| Инфраструктура как код |
Шаблон ARM azd Bicep Terraform |
| Visual Studio Code | развертывание Visual Studio Code |
| Visual Studio | развертывание Visual Studio |
Подсказка
По возможности используйте Microsoft Entra ID для проверки подлинности вместо строк подключения, содержащих общие ключи. Использование управляемых удостоверений — это рекомендация, которая повышает безопасность, устраняя необходимость хранения общих секретов непосредственно в параметрах приложения. Если исходное приложение использовало строки подключения, план Flex Consumption поддерживает управляемые удостоверения. Большинство этих ссылок показывают, как включить управляемые удостоверения в вашем функциональном приложении.
Применение перенесенных параметров приложения в новом приложении
Перед развертыванием кода настройте новое приложение, используя соответствующие настройки приложения плана использования Flex из вашего оригинального функционального приложения.
Это важно
Не все параметры приложения плана потребления поддерживаются при выполнении в плане потребления Flex. Дополнительные сведения см. в разделе о прекращении использования плана потребления Flex.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Применение других конфигураций приложений
Найдите список других конфигураций приложений из старого приложения, собранного во время предварительной подготовки , и задайте их в новом приложении.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Настройка параметров масштабирования и параллелизма
План потребления Flex использует масштабирование для каждой функции. Каждая функция в приложении масштабируется независимо на основе рабочей нагрузки. Масштабирование более строго связано с параметрами параллелизма. Эти параметры помогают принимать решения о масштабировании на основе текущих параллельных выполнений. Дополнительные сведения см. в разделах Масштабирование функций и Параллелизм статьи о плане потребления Flex.
Если вы хотите, чтобы новое приложение масштабируется как исходное приложение, рассмотрите параметры параллелизма. Установка более высоких значений параллелизма может привести к тому, что для обработки той же нагрузки создается меньше экземпляров.
Если в исходном приложении задано настраиваемое ограничение горизонтального масштабирования, его можно применить к новому приложению. В противном случае перейдите к следующему разделу.
Максимальное число экземпляров по умолчанию — 100. Задайте для него значение от 1 до 1000.
Замечание
Уменьшение максимального количества экземпляров ниже 40 для приложений-функций HTTP может привести к частым сбоям запросов и продолжительным периодам ограничения, когда трафик превышает пропускную способность. Этот параметр предназначен только для расширенных сценариев, в которых допустимо ограниченное масштабирование и полностью протестировано.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Настройка любых пользовательских доменов и доступа CORS
Если у исходного приложения есть какие-либо связанные пользовательские домены или параметры CORS, создайте их в новом приложении. Дополнительные сведения о пользовательских доменах см. в разделе Настроить существующий личный домен в Служба приложений Azure.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Настройка управляемых удостоверений и назначение ролей
Настройка управляемых удостоверений в новом приложении зависит от типа управляемого удостоверения:
| Тип управляемого удостоверения | Создать идентичность | Назначения ролей |
|---|---|---|
| Назначено пользователем | Необязательно | Вы можете продолжать использовать те же управляемые удостоверения, назначаемые пользователем, с новым приложением. Эти идентификаторы необходимо переназначить в приложении Flex Consumption и проверить, что они по-прежнему имеют правильные назначения ролей в удаленных службах. Если вы решили создать новые аккаунты для нового приложения, необходимо присвоить им те же роли, что и существующим аккаунтам. |
| Назначаемое системой | Да | Так как каждое приложение-функция имеет собственное управляемое удостоверение, назначаемое системой, необходимо включить управляемое удостоверение, назначаемое системой, в новом приложении и переназначить те же роли, что и в исходном приложении. |
Правильное создание назначений ролей является ключом для обеспечения того, чтобы приложение-функция получила тот же доступ к Azure ресурсам после миграции.
Подсказка
Если исходное приложение использовало строки подключения или другие общие секреты для проверки подлинности, это отличная возможность улучшить безопасность вашего приложения, переключившись на использование Microsoft Entra ID проверки подлинности с управляемыми удостоверениями. Дополнительные сведения см. в статье Tutorial: создание приложения-функции, которое подключается к службам Azure с использованием удостоверений, а не секретов.
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Настройка ограничений доступа к сети
Если у исходного приложения есть какие-либо ограничения доступа на основе IP-адресов, создайте все те же правила входящего доступа, которые вы хотите сохранить в новом приложении.
Подсказка
План потребления Flex полностью поддерживает интеграцию виртуальной сети. Из-за этой поддержки можно также использовать входящие частные конечные точки после миграции. Дополнительные сведения см. в разделе Частные конечные точки.
- GitHub Copilot
- Azure CLI
- портал Azure
В настоящее время навык миграции GitHub Copilot поддерживается только при переносе приложений Linux. Чтобы перенести приложение Windows Consumption, используйте вкладки Azure CLI или портала Azure.
Включение мониторинга
Прежде чем приступить к новому приложению в плане потребления Flex, убедитесь, что Application Insights включена. При настройке Application Insights можно устранить любые проблемы, возникающие во время развертывания кода и запуска.
Реализуйте комплексную стратегию мониторинга, которая охватывает метрики, журналы и затраты приложений. Используя эту стратегию, вы можете проверить успешность миграции, быстро определить все проблемы и оптимизировать производительность и стоимость нового приложения.
Если вы планируете сравнить это новое приложение с текущим приложением, убедитесь, что схема также собирает необходимые тесты для сравнения. Дополнительные сведения см. в разделе "Настройка мониторинга".
Настройка встроенной проверки подлинности
Если исходное приложение использовало встроенную проверку подлинности клиента (иногда называется Easy Auth), повторно создайте его в новом приложении. Если вы планируете повторно использовать ту же регистрацию клиента, обязательно задайте в поставщике проверки подлинности проверяемые конечные точки нового приложения.
- GitHub Copilot
- Azure CLI
- портал Azure
Навык миграции Copilot для Linux не автоматизирует встроенную конфигурацию проверки подлинности. Используйте портал Azure CLI или Azure для повторного создания параметров проверки подлинности вручную.
Развертывание кода вашего приложения в новом ресурсе Flex Consumption
После настройки нового приложения плана потребления Flex на основе параметров исходного приложения разверните код в новых ресурсах приложения в Azure.
Осторожность
После успешного развертывания триггеры в новом приложении немедленно начинают обработку данных из подключенных служб. Чтобы свести к минимуму повторяющиеся данные и предотвратить потерю данных при запуске нового приложения и завершении работы исходного приложения, просмотрите стратегии, определенные в устранении рисков по типу триггера.
Функции предоставляют несколько способов развертывания вашего кода: либо напрямую из проекта кода, либо в виде готового пакета для развертывания.
Подсказка
Если вы храните код проекта в репозитории исходного кода, теперь идеальное время для настройки конвейера непрерывного развертывания. Непрерывное развертывание позволяет автоматически развертывать обновления приложений на основе изменений в подключенном репозитории.
Обновите существующие рабочие процессы развертывания, чтобы развернуть исходный код в новом приложении:
Вы также можете создать новый рабочий процесс непрерывного развертывания для нового приложения. Дополнительные сведения см. в разделе Континуальное развертывание Функции Azure.
Задачи после миграции
🎉 Поздравляю! Теперь приложение работает в Flex Consumption. Чтобы извлечь максимум из вашего нового плана, рассмотрите следующие необязательные последующие задачи:
Проверка основных функциональных возможностей
Убедитесь, что новое приложение запущено в плане потребления Flex:
- GitHub Copilot
- Azure CLI
- портал Azure
Навык миграции Copilot для Linux автоматически проверяет новое приложение после развертывания, включая проверку доступности приложения и запуск в плане потребления Flex. Если необходимо повторно выполнить повторную проверку, используйте следующий запрос:
verify my flex consumption app <APP_NAME> is running correctlyИспользуйте HTTP-клиент, чтобы вызвать по крайней мере одну конечную точку триггера HTTP в новом приложении, чтобы убедиться, что он отвечает должным образом.
Снятие эталонов производительности
При запуске нового приложения выполните те же тесты производительности, которые вы собрали из исходного приложения, например:
| Предложенный эталон | Комментарий |
|---|---|
| Холодный запуск | Измеряйте время от первого запроса к первому ответу после периода простоя. |
| Пропускная способность | Измеряйте максимальные запросы в секунду с помощью средств нагрузочного тестирования , чтобы определить, как приложение обрабатывает одновременные запросы. |
| Задержка | Отслеживайте время отклика P50, P95 и P99 в различных условиях нагрузки. Эти метрики можно отслеживать в Application Insights. |
Используйте этот запрос Kusto для просмотра предлагаемого времени отклика задержки в Application Insights:
requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart
Замечание
Метрики плана потребления Flex отличаются от метрик плана потребления. При сравнении производительности до и после миграции следует учитывать, что для отслеживания аналогичных характеристик производительности необходимо использовать различные метрики. Дополнительные сведения см. в разделе "Настройка мониторинга".
Создание пользовательских панелей мониторинга
Используя метрики Azure Monitor и Application Insights, вы можете создать панели мониторинга на портале Azure, которые отображают диаграммы как из метрик платформы, так и из журналов среды выполнения и аналитики.
Рассмотрите возможность настройки панелей мониторинга и оповещений на ключевых метриках на портале Azure. Для получения дополнительной информации см. раздел Мониторинг вашего приложения в Azure.
Уточнение параметров плана
Фактические улучшения производительности и последствия миграции могут отличаться в зависимости от рабочих нагрузок, относящихся к приложению, и конфигурации. План потребления Flex предоставляет несколько параметров, которые можно настроить для уточнения производительности приложения. Может потребоваться внести корректировки, чтобы более точно соответствовать поведению исходного приложения или сбалансировать затраты и производительность. Дополнительные сведения см. в разделе Тонкая настройка приложения в статье "Использование Flex".
Обновление файлов развертывания ресурсов
Если вы управляете инфраструктурой приложений-функций с помощью Bicep или Terraform, обновите файлы развертывания, чтобы теперь использовать план потребления Flex. В этом разделе показаны ключевые различия между определениями ресурсов плана потребления и плана гибкого потребления.
Это важно
Вы не можете преобразовать существующее приложение плана потребления в Flex Consumption на месте. Перед развертыванием эквивалентов потребления Flex необходимо создать новые ресурсы с новым именем или удалить существующие ресурсы.
Основные отличия
При переносе развертываний ресурсов из потребления в Flex Consumption следует учитывать следующие важные изменения:
| Аспект | План потребления | План потребления Flex |
|---|---|---|
| Номер SKU плана хостинга |
Y1 (Динамический) |
FC1 (FlexConsumption) |
| План требуется | Необязательно (автоматическое создание) | Обязательный (должен быть явным) |
| Операционная система | Windows или Linux | только Linux. |
| Конфигурация | Параметры приложения | Раздел functionAppConfig |
| Общий доступ к содержимому хранилища | Настройка WEBSITE_CONTENTSHARE |
deployment.storage в functionAppConfig. |
В следующих примерах демонстрируются основные различия между определениями ресурсов плана Потребления и Гибкого потребления. Они используют управляемую идентификацию, назначаемую системой, но они не завершены. Они не включают все необходимые ресурсы, такие как учетные записи для хранения, Application Insights, или все необходимые назначения ролей. Завершенные примеры, готовые к использованию в производственной среде, см. в коллекции образцов Flex Consumption IaC.
План потребления (до):
// Consumption plan (optional - auto-created if omitted)
resource hostingPlan 'Microsoft.Web/serverfarms@2022-03-01' = {
name: hostingPlanName
location: location
sku: {
name: 'Y1'
tier: 'Dynamic'
}
properties: {
reserved: true // Linux
}
}
resource functionApp 'Microsoft.Web/sites@2022-03-01' = {
name: functionAppName
location: location
kind: 'functionapp,linux'
properties: {
serverFarmId: hostingPlan.id
siteConfig: {
linuxFxVersion: 'DOTNET-ISOLATED|8.0'
appSettings: [
{ name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' }
{ name: 'FUNCTIONS_WORKER_RUNTIME', value: 'dotnet-isolated' }
{ name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
{ name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING__accountName', value: storageAccount.name }
{ name: 'WEBSITE_CONTENTSHARE', value: functionAppName }
{ name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
{ name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
]
}
}
identity: {
type: 'SystemAssigned'
}
}
План потребления Flex (после):
// Flex Consumption plan (required)
resource hostingPlan 'Microsoft.Web/serverfarms@2023-12-01' = {
name: hostingPlanName
location: location
sku: {
name: 'FC1'
tier: 'FlexConsumption'
}
kind: 'functionapp'
properties: {
reserved: true
}
}
// Deployment storage container (required)
resource deploymentContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01' = {
name: '${storageAccount.name}/default/deployments'
}
resource functionApp 'Microsoft.Web/sites@2023-12-01' = {
name: functionAppName
location: location
kind: 'functionapp,linux'
properties: {
serverFarmId: hostingPlan.id
functionAppConfig: {
deployment: {
storage: {
type: 'blobContainer'
value: '${storageAccount.properties.primaryEndpoints.blob}deployments'
authentication: {
type: 'SystemAssignedIdentity'
}
}
}
scaleAndConcurrency: {
maximumInstanceCount: 100
instanceMemoryMB: 2048
}
runtime: {
name: 'dotnet-isolated'
version: '8.0'
}
}
siteConfig: {
appSettings: [
{ name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
{ name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
{ name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
]
}
}
identity: {
type: 'SystemAssigned'
}
}
Замечание
При использовании APPLICATIONINSIGHTS_AUTHENTICATION_STRING совместно с Authorization=AAD необходимо также назначить управляемому удостоверению приложения-функции роль Monitoring Metrics Publisher на ресурсе Application Insights.
Полные примеры Bicep см. в примерах Flex Consumption Bicep.
Согласование развертываний ресурсов после миграции
Если вы используете инфраструктуру в качестве кода для управления развертываниями ресурсов Azure, обновите файлы развертывания после миграции на Flex Consumption, чтобы предотвратить смещение конфигурации. Ниже приведен рекомендуемый подход.
Не смешивайте ручные и ресурсные развертывания: если вы использовали Azure CLI или портал для создания приложения Flex Consumption в процессе миграции, обновите файлы ресурсов перед следующим развертыванием. В противном случае ваши развертывания могут попытаться воссоздать ресурсы старого плана Consumption.
Обновите имена ресурсов или используйте управление жизненным циклом. Так как приложение потребления не удается преобразовать в Flex Consumption на месте, у вас есть два варианта:
- Новые имена ресурсов: обновите код развертывания, чтобы использовать новые имена для плана размещения и приложения-функции. Этот подход сохраняет старые ресурсы без изменений до тех пор, пока вы не уверены в успешной миграции.
-
Импорт существующих ресурсов: если вы хотите сохранить те же имена, сначала удалите старые ресурсы, а затем разрешите развертыванию создать новые ресурсы Flex Consumption. Кроме того, импортируйте созданные вручную ресурсы в состояние Terraform с помощью
terraform importили ссылки на существующие ресурсы в Bicep.
Проверьте выравнивание состояния. После обновления файлов развертывания запустите план или операцию предварительного просмотра (
terraform planилиaz deployment group what-if), чтобы убедиться, что не произошло непредвиденных изменений.Обновите конвейеры CI/CD: если конвейеры внедрения ссылались на старую конфигурацию плана потребления, обновите их так, чтобы использовать новые описания ресурсов Flex Consumption и методы развертывания.
Подсказка
Чтобы свести к минимуму нарушения, рекомендуется запускать старое приложение потребления и новое приложение Flex Consumption параллельно в течение переходного периода. Обновите развертывание, чтобы управлять новым приложением Flex Consumption, убедитесь, что оно работает правильно, а затем удалите старые ресурсы приложения потребления из Azure и файлов развертывания.
Удаление исходного приложения (необязательно)
Подсказка
Нет спешки здесь. Сохраняйте исходное приложение в течение нескольких дней или недель, пока вы проверяете, что все работает. План потребления взимает плату только за фактическое использование, поэтому поддержка старого приложения (с отключенными триггерами) обходится недорого.
Когда вы уверены, что новое приложение работает правильно, вы можете очистить исходный код. Этот шаг является необязательным. Некоторые команды сохраняют старое приложение в качестве ссылки на предыдущую версию или возможности восстановления.
Это важно
Это действие удаляет ваше оригинальное функциональное приложение. План потребления остается неизменным, если другие приложения используют его. Прежде чем продолжить, убедитесь, что вы:
- Успешно переносите все функции в новое приложение Flex Consumption.
- Убедитесь, что трафик не направляется в исходное приложение.
- Резервное копирование всех соответствующих журналов, конфигурации или данных, которые могут потребоваться для справки.
- GitHub Copilot
- Azure CLI
- портал Azure
Навык миграции Copilot для Linux может удалить исходное приложение, когда вы будете готовы. Copilot всегда запрашивает ваше явное подтверждение перед удалением чего-либо. Используйте этот запрос:
delete my original consumption app <ORIGINAL_APP_NAME>
Стратегии устранения неполадок и восстановления
Большинство миграций завершается без проблем. Если что-то не работает должным образом, попробуйте использовать эти решения для распространенных проблем:
| Проблема | Решение |
|---|---|
| Проблемы с производительностью холодного запуска | • Просмотр параметров параллелизма • Проверка отсутствующих зависимостей |
| Отсутствующие привязки | • Проверка пакетов расширений • Обновление конфигураций привязки |
| Ошибки разрешений | • Проверка назначенных задач и идентификационных данных и разрешений ролей |
| Проблемы с сетью | • Проверка ограничений доступа и параметров сети |
| Отсутствует Application Insights | • Повторное создание подключения Application Insights |
| Не удается запустить приложение | См . общие инструкции по устранению неполадок |
| Триггеры не обрабатывают события | См . общие инструкции по устранению неполадок |
Если возникнут проблемы с переносом рабочего приложения, рассмотрите возможность отката миграции в исходное приложение при устранении неполадок.
Общие действия по устранению неполадок
Используйте следующие действия для случаев, когда не удается запустить новое приложение или триггеры функций не обрабатывают события:
На новой странице приложения в портале Azure выберите Диагностировать и решать проблемы в левой панели страницы приложения. Выберите «Доступность и производительность» и просмотрите детектор «сбоев в работе приложения-функции или ошибок отчетности». Дополнительные сведения см. в обзоре диагностики Функции Azure.
На странице приложения выберите "Мониторинг>Application Insights>" View Application Insights data, а затем выберите "Исследовать>сбои" и проверьте наличие событий сбоя.
Выберите Мониторинг>Журналы и выполните этот запрос Kusto, чтобы проверить эти таблицы на наличие ошибок.
traces | where severityLevel == 3 | where cloud_RoleName == "<APP_NAME>" | where timestamp > ago(1d) | project timestamp, message, operation_Name, customDimensions | order by timestamp descВ этих запросах замените
<APP_NAME>на имя нового приложения. Эти запросы проверяют наличие ошибок за прошлый день (where timestamp > ago(1d)).Вернувшись на страницу приложения, выберите Настройки>Переменные среды и убедитесь, что все критически важные параметры приложения переданы правильно. Найдите устаревшие параметры, которые могут быть неправильно перенесены или какие-либо опечатки или неправильные строки подключения. Проверьте подключение к хранилищу узла по умолчанию.
Выберите Параметры>Идентификация и тщательно проверьте наличие ожидаемых идентичностей и их назначение правильным ролям.
В коде убедитесь, что все конфигурации привязки верны, уделяя особое внимание именам строк подключения, очередям хранилища и именам контейнеров, а также параметрам потребительских групп в триггерах Event Hubs.
Шаги отката для критически важных рабочих приложений
Если вы не можете устранить проблему, попробуйте вернуться к исходному приложению, пока вы продолжаете устранять неполадки.
Если исходное приложение остановлено, перезапустите его:
- GitHub Copilot
- Azure CLI
- портал Azure
Попросите Copilot перезапустить исходное приложение и отменить миграцию.
restart my original consumption app <ORIGINAL_APP_NAME>Если вы создали новые очереди, разделы или контейнеры, убедитесь, что клиенты перенаправляются обратно в исходные ресурсы.
Если вы изменили DNS или личные домены, измените эти изменения, чтобы указать на исходное приложение.
Предоставление отзывов
Если вы столкнулись с проблемами при миграции с помощью этой статьи или хотите предоставить другие отзывы об этом руководстве, используйте один из этих методов, чтобы получить справку или предоставить отзыв:
- Получите помощь на Microsoft Q&A
- Создайте проблему в репозитории Функции Azure
- Предоставление отзывов о продукте
- Создание запроса в службу поддержки
Связанные статьи
- Общие сведения о плане потребления Flex
- Использование плана потребления Flex
- Команды Azure CLI flex-migration (только для Linux)
- Объявление о общедоступной доступности плана потребления Flex
- примеры плана использования Flex Consumption