Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Устойчивые функции — это расширение Функции Azure и Azure WebJobs, позволяющее писать функциями с сохранением состояния в бессерверной среде. Расширение управляет состоянием, контрольными точками и перезагрузками для вас. Если вы еще не знакомы с Устойчивые функции, см. обзорную документацию .
Сводка по версиям
| Версия | Статус | Ключевые изменения |
|---|---|---|
| v3.x | Текущий (рекомендуется) | Обновленный пакет SDK служба хранилища Azure, улучшенная экономичность, без изменений кода для обновления с версии 2.x |
| v2.x | Поддерживается (только исправления безопасности и ошибок) | Устойчивые сущности, устойчивый HTTP |
| v1.x | Окончание поддержки в сентябре 2026 г. | Наследство |
Новые возможности версии 3.x
Пакет Microsoft.Azure.WebJobs.Extensions.DurableTask версии 3 (называемый WebJobs.Extensions.DurableTask в последующих разделах) является текущей рекомендуемой версией. Для обновления с версии 2.x не требуется никаких изменений в коде — необходимо обновить зависимости пакета. Это обновление считается критическим изменением только для клиентов, использующих приложения Durable C# с встроенной моделью.
Note
Пакет Устойчивые функции .NET для работы вне процесса Microsoft.Azure.Functions.Worker.Extensions.DurableTask ссылается на Microsoft.Azure.WebJobs.Extensions.DurableTask в качестве основной сборки. Таким образом, это обновление также относится к Microsoft.Azure.Functions.Worker.Extensions.DurableTask, начиная с версии 1.2.x.
Обновленный пакет SDK для служба хранилища Azure
По умолчанию Устойчивые функции используют служба хранилища Azure вместо серверного компонента для хранения для надежного сохранения состояния приложения. В WebJobs.Extensions.DurableTask версии 3 серверная часть служба хранилища Azure была обновлена, чтобы использовать последние версии пакетов SDK служба хранилища Azure: Azure. Data.Tables, Azure. Storage.Blobs и Azure. Storage.Queues. Эти пакеты SDK обеспечивают расширенную поддержку управляемого удостоверения, более высокую производительность, более эффективную обработку данных и улучшенную безопасность по сравнению с устаревшими пакетами Microsoft.Azure.Storage.*, используемыми в версии 2.x.
Улучшенная эффективность затрат (для поставщика служба хранилища Azure)
В серверной части хранилища Azure диспетчер секций отвечает за распределение секций/управляющих очередей среди рабочих узлов. Пакет WebJobs.Extensions.DurableTask версии 3 по умолчанию использует диспетчер разделов версии 3, который представляет собой новый дизайн, использующий таблицы Azure для управления назначением разделов вместо аренды больших двоичных объектов Azure. Эта конструкция может значительно сократить затраты на хранение, упрощая отладку. При использовании диспетчера секций версии 3 новая таблица с именем Partitionsсоздается в учетной записи хранения, что позволяет легко проверить сведения о секции.
Удалена поддержка среды выполнения Функции Azure версии 1
WebJobs.Extensions.DurableTask версии 3 больше не поддерживает версию 1.x среды выполнения Функции Azure, поддержку которой планируется завершить в September 2026. Если необходимо использовать среду выполнения функций версии 1, используйте версию расширения Устойчивые функции ниже v2.11.0. Помните, что когда наступит запланированное окончание поддержки, Устойчивые функции также прекратит поддержку среды выполнения v1.
обновление целевого объекта среды выполнения .NET
WebJobs.Extensions.DurableTask версии 3 обновляет целевую среду выполнения с .NET Core 3.1 до .NET 6, обеспечивая улучшенную производительность и улучшенную совместимость с современными функциями и библиотеками .NET. Это обновление соответствует будущим выпускам пакетов расширений Функции Azure.
Миграция с версии 2.x на v3.x
Миграция с версии 2.x на v3.x не требует изменений кода— просто обновите зависимости, чтобы начать использовать новые функции.
- Процессная модель: обновление до Microsoft.Azure. WebJobs.Extensions.DurableTask версии 3.0.0 или более поздней версии.
- изолированная рабочая модель: Обновление до Microsoft.Azure. Functions.Worker.Extensions.DurableTask версии 1.2.0 или более поздней версии.
Обновите пакет расширений Функции Azure версии 4.22.0 или более поздней версии.
Понижение уровня совместимости (версия 3.x до версии 2.x)
WebJobs.Extensions.DurableTask версии 3 использует другую кодировку текста для пакета SDK для служба хранилища Azure (Base64) по сравнению с версией 2 (UTF-8). Если необходимо вернуться с версии 3.x на v2.x, используйте следующие минимальные версии, чтобы обеспечить обратную совместимость:
Вернитесь к версии пакета расширений до версии 4.22.0.
Поддержка и обслуживание версии 2.x
WebJobs.Extensions.DurableTask версии 2.x продолжает получать обновления системы безопасности и исправления ошибок, гарантируя, что существующие приложения остаются безопасными и стабильными. Однако все новые функции и улучшения добавляются исключительно в версию 3.x. Из-за этого необходимо обновить до webJobs.Extensions.DurableTask версии 3, как только вы сможете воспользоваться новейшими возможностями и текущими улучшениями.
Функции, представленные в версии 2.x
Следующие функции доступны в Устойчивые функции 2.x и более поздних версий на всех поддерживаемых языках.
Note
Сведения об API процесса .NET в этом разделе не применяются к изолированной модели работника. Сведения об изолированном рабочем руководстве см. в обзоре изолированного процесса Устойчивые функции.
Устойчивые сущности
Устойчивые функции поддерживает функции сущностей для чтения и обновления небольших частей состояния, известных как устойчивые сущности. Как и функции оркестратора, функции сущности — это функции с особым типом триггера, триггером сущности. В отличие от функций оркестратора, функции сущностей не имеют определенных ограничений кода. Функции сущностей также управляют состоянием явным образом, а не неявно представляют состояние с помощью потока управления.
Дополнительные сведения см. в статье о устойчивых сущностях .
Устойчивый HTTP
Устойчивые функции включает функцию Durable HTTP, которая позволяет:
- Вызов HTTP API напрямую из функций оркестрации (с некоторыми задокументированными ограничениями).
- Реализуйте автоматический опрос состояния HTTP 202 на стороне клиента.
- Используйте встроенную поддержку удостоверений, управляемых Azure.
Дополнительные сведения см. в статье о функциях HTTP .
Миграция с версии 1.x на 2.x
Important
Версия 1.x среды выполнения Функции Azure достигает конца поддержки в September 2026. Если вы все еще находитесь в версии 1.x, запланируйте миграцию в ближайшее время.
В этом разделе описывается перенос существующей версии 1.x Устойчивые функции на версию 2.x, чтобы воспользоваться преимуществами новых функций.
Обновление расширения Устойчивые функции
Установите последнюю версию 2.x расширения привязок Устойчивые функции в вашем проекте.
Устойчивые функции 2.x доступна начиная с версии 2.x пакета расширений Функции Azure.
для поддержки Python в Устойчивые функции требуется Устойчивые функции 2.x или более поздней версии.
Чтобы обновить версию пакета расширений в проекте, откройте host.json и обновите extensionBundle раздел, чтобы использовать версию 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Устойчивые функции 2.x доступна начиная с версии 2.x пакета расширений Функции Azure.
Чтобы обновить версию пакета расширений в проекте, откройте host.json и обновите extensionBundle раздел, чтобы использовать версию 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Note
Если Visual Studio Code не отображает правильные шаблоны после изменения версии пакета расширений, перезагрузите окно, выполнив команду Developer: Reload Window (Ctrl+R в Windows и Linux, Command+R в macOS).
Устойчивые функции 2.x доступна начиная с версии 2.x пакета расширений Функции Azure.
Чтобы обновить версию пакета расширений в проекте, откройте host.json и обновите extensionBundle раздел, чтобы использовать версию 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Обновите проект .NET, чтобы использовать последнюю версию расширения привязки Устойчивые функции.
Дополнительные сведения см. в разделе Регистрация расширений привязки Функции Azure.
Обновите код Устойчивые функции
Устойчивые функции 2.x включает несколько серьёзных изменений. Приложения Устойчивые функции 1.x несовместимы с Устойчивые функции 2.x без изменений в коде. В этом разделе перечислены некоторые изменения, которые необходимо внести при обновлении функций версии 1.x до версии 2.x.
Схема Host.json
Устойчивые функции 2.x использует новую схему host.json. Основные изменения, внесенные в версии 1.x, включают:
-
"storageProvider"(и подраздел"azureStorage") для конфигурации, специфичной для хранения. -
"tracing"для конфигурации трассировки и ведения журнала. -
"notifications"(и подраздел"eventGrid") для конфигурации уведомлений сетевого грида событий.
Дополнительные сведения см. в справочной документации Устойчивые функции host.json.
Изменения имени концентратора задач по умолчанию
В версии 1.x, если имя концентратора задач не указано в host.json, по умолчанию оно было задано как "DurableFunctionsHub". В версии 2.x имя концентратора задач по умолчанию теперь является производным от имени приложения-функции. Из-за этого, если вы не указали имя концентратора задач при обновлении до версии 2.x, ваш код будет работать с новым концентратором задач, и все текущие оркестрации больше не будут обрабатываться приложениями. Чтобы обойти эту проблему, вы можете явно задать имя концентратора задач значением по умолчанию "DurableFunctionsHub" версии 1.x или следовать нашим рекомендациям по развертыванию без простоев , чтобы получить подробные сведения о том, как обрабатывать критические изменения для оркестрации во время полета.
Изменения общедоступного интерфейса в Устойчивые функции
В версии 1.x различные объекты context, поддерживаемые Устойчивые функции имеют абстрактные базовые классы, предназначенные для использования в модульном тестировании. В рамках Устойчивые функции 2.x эти абстрактные базовые классы заменяются интерфейсами.
В следующей таблице представлены основные изменения:
| 1.x | 2.x |
|---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient или IDurableClient |
DurableOrchestrationContext или DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext или DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
В случае, если абстрактный базовый класс содержал виртуальные методы, эти виртуальные методы были заменены методами расширения, определенными в DurableContextExtensions.
function.json изменения
В Устойчивые функции 1.x привязка клиента оркестрации использует typeorchestrationClient. Версия 2.x вместо этого использует durableClient.
Инициировать изменения событий
В Устойчивые функции 1.x вызов функции API raise event и указание экземпляра, который не существовал, привел к бесшумному сбою. Начиная с версии 2.x, инициация события для не существующей оркестрации приводит к исключению.
Связанный контент
- Переход из процесса в изолированную рабочую модель
- Общие сведения о устойчивых функциях
- обзор изолированного процесса Устойчивые функции