Различия между изолированной рабочей моделью и внутрипроцессной моделью для .NET в Функции Azure
Существует две модели выполнения для функций .NET:
Модель выполнения | Description |
---|---|
Изолированная рабочая модель | Код функции выполняется в отдельном рабочем процессе .NET. Используйте поддерживаемые версии .NET и платформа .NET Framework. Дополнительные сведения см. в статье "Разработка изолированных рабочих процессов .NET". |
Модель внутрипроцессного процесса | Код функции выполняется в том же процессе, что и хост-процесс Функций. Поддерживает только долгосрочные версии .NET. Дополнительные сведения см. в статье "Разработка функций библиотеки классов .NET". |
Внимание
Поддержка будет завершена для модели в процессе 10 ноября 2026 г. Настоятельно рекомендуется перенести приложения в изолированную рабочую модель для полной поддержки.
В этой статье описывается текущее состояние функциональных и поведенческих различий между двумя моделями. Сведения о миграции из модели внутрипроцессной в изолированную рабочую модель см. в статье "Миграция приложений .NET из модели в процессе" в изолированную рабочую модель.
Таблица сравнения моделей выполнения
Используйте следующую таблицу для сравнения функций и функциональных различий между двумя моделями:
Функция/поведение | Изолированная рабочая модель | Модель в процессе3 |
---|---|---|
Поддерживаемые версии .NET | Версии долгосрочной поддержки (LTS), Версии стандартной поддержки терминов (STS), .NET Framework |
Долгосрочные версии поддержки (LTS), заканчивающиеся .NET 8 |
Основные пакеты | Microsoft.Azure.Functions.Worker Microsoft.Azure.Functions.Worker.Sdk |
Microsoft.NET.Sdk.Functions |
Привязка пакетов расширений | Microsoft.Azure.Functions.Worker.Extensions.* | Microsoft.Azure.WebJobs.Extensions.* |
Устойчивые функции | Поддерживается | Поддерживается |
Типы моделей, предоставляемые через привязки | Простые типы Сериализуемые в JSON типы Массивы и перечисления Типыпакета SDK службы 4 |
Простые типы Сериализуемые типы JSON Массивы и перечисления Типыпакета SDK службы 4 |
Типы моделей триггеров HTTP | HttpRequestData / HttpResponseData HttpRequest / IActionResult (использование интеграции ASP.NET Core)5 |
HttpRequest IActionResult5 / HttpRequestMessage HttpResponseMessage / |
Взаимодействие с выходной привязкой | Возвращайте значения в развернутой модели со следующими значениями: — один или несколько выходных данных — массивы выходных данных |
Возвращаемые значения (только для одного вывода),out ПараметрыIAsyncCollector |
Принудительные привязки1 | Не поддерживается. Вместо этого работа с типами SDK напрямую | Поддерживается |
Внедрение зависимостей | Поддерживается (улучшенная модель, согласованная с экосистемой .NET) | Поддерживается |
ПО промежуточного слоя | Поддерживается | Не поддерживается |
Ведение журнала | ILogger<T> /ILogger получен из FunctionContext или путем внедрения зависимостей |
ILogger передается в функциюILogger<T> путем внедрения зависимостей |
Зависимости Application Insights | Поддерживается | Поддерживается |
Токены отмены | Поддерживается | Поддерживается |
Время холодного запуска2 | Настраиваемые оптимизации | Оптимизированная |
ReadyToRun | Поддерживается | Поддерживается |
[Использование Flex] | Поддерживается | Не поддерживается |
1 Если вам нужно при взаимодействии со службой использовать параметры, определяемые во время выполнения, мы рекомендуем напрямую обращаться к соответствующим пакетам SDK службы, чтобы использовать императивные привязки. Пакеты SDK возвращают меньше подробностей, подходят для более широкого круга сценариев и предпочтительнее при обработке ошибок и отладке. Эта рекомендация применима к обеим моделям.
2 Время холодного запуска может быть дополнительно затронуто в Windows при использовании некоторых предварительных версий .NET из-за JIT-загрузки платформ предварительной версии. Это влияние применяется как к моделям внутри процесса, так и к внепроцессным моделям, но может быть заметно при сравнении между различными версиями. Эта задержка для предварительных версий отсутствует в планах Linux.
3 Функции скрипта C# также выполняются в процессе и используют те же библиотеки, что и функции библиотеки классов в процессе. Дополнительные сведения см. в справочнике разработчика по скрипту C# Функции Azure (CSX).
4 типа пакета SDK службы включают типы из пакета SDK Azure для .NET , например BLOBClient.
Для платформа .NET Framework не поддерживаются типы ASP.NET Core.
Поддерживаемые версии
Версии среды выполнения функций поддерживают определенные версии .NET. Дополнительные сведения о версиях службы "Функции Azure" см. в разделе Обзор версий среды выполнения службы "Функции Azure". Поддержка версий также зависит от того, выполняются ли функции в процессе или изолированном рабочем процессе.
Примечание.
Чтобы узнать, как изменить версию среды выполнения Функций, используемую приложением-функцией, обратитесь к разделу Просмотр и обновление текущей версии среды выполнения.
В следующей таблице показан самый высокий уровень .NET или платформа .NET Framework, который можно использовать с определенной версией Функций.
Версия среды выполнения службы "Функции Azure" | Изолированная рабочая модель | Модель в процессе5 |
---|---|---|
Функции версии 4.x1 | .NET 9.0 (предварительная версия) .NET 8.0 .NET 6.02 платформа .NET Framework 4.83 |
.NET 8.0 .NET 6.02 |
Функции 1.x4 | Н/Д | .NET Framework 4.8 |
1 .NET 7 ранее поддерживается в изолированной рабочей модели, но достигла конца официальной поддержки 14 мая 2024 года.
2 .NET 6 достигает окончания официальной поддержки 12 ноября 2024 года.
3 Процесс сборки также требует пакета SDK для .NET.
4 Поддержка заканчивается для версии 1.x среды выполнения Функции Azure 14 сентября 2026 года. Дополнительные сведения см . в этом объявлении о поддержке. Для дальнейшей полной поддержки следует перенести приложения в версию 4.x.
5 Поддержка заканчивается для модели в процессе 10 ноября 2026 года. Дополнительные сведения см . в этом объявлении о поддержке. Для непрерывной поддержки следует перенести приложения в изолированную рабочую модель.
Последние новости о выпусках службы "Функции Azure", включая удаление отдельных устаревших промежуточных версий, см. в статье Анонсы для службы приложений Azure.