Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Устойчивые функции — это расширение функций Azure и веб-заданий Azure , которое позволяет создавать функции с отслеживанием состояния в бессерверной среде. Расширение управляет состоянием, контрольными точками и перезагрузками для вас. Если вы еще не знакомы с устойчивыми функциями, ознакомьтесь с обзорной документацией.
Microsoft.Azure.WebJobs.Extensions.DurableTask v3.x
В этом разделе представлен новый пакет Microsoft.Azure.WebJobs.Extensions.DurableTask версии 3 (называемый webJobs.Extensions.DurableTask в последующих разделах) и подробные сведения об обновлениях и изменениях. Это обновление считается критическим изменением только для клиентов, работающих с приложениями Durable C#, которые используют внутрипроцессную модель.
Примечание.
Пакет внепроцессных устойчивых функций .NET Microsoft.Azure.Functions.Worker.Extensions.DurableTask ссылается на Microsoft.Azure.WebJobs.Extensions.DurableTask в качестве базовой сборки. Таким образом, это обновление также относится к Microsoft.Azure.Functions.Worker.Extensions.DurableTask, начиная с версии 1.2.x.
Новый пакет SDK службы хранилища Azure
Изначально Durable Functions используют Azure Storage в качестве серверной части для надежного сохранения состояния приложения. В WebJobs.Extensions.DurableTask версии 3 серверная часть службы хранилища Azure была обновлена, чтобы использовать последние версии пакетов SDK службы хранилища Azure: Azure.Data.Tables, Azure.Storage.Blobs и Azure.Storage.Queues. Новые пакеты SDK службы хранилища Azure более защищены и предлагают расширенную поддержку Управляемого Удостоверения. Они также обеспечивают более высокую производительность, более эффективную обработку данных и другие новейшие функции хранения.
Улучшена экономичность серверной части службы хранилища Azure
В серверной части службы хранилища Azure менеджер разделов отвечает за распределение разделов и управляющих очередей среди рабочих ролей. Пакет WebJobs.Extensions.DurableTask версии 3 использует по умолчанию менеджер разделов версии 3 — это новая конструкция, которая использует таблицы Azure для управления назначениями разделов вместо аренды объектов BLOB в Azure. Эта конструкция может значительно сократить затраты на хранение, упрощая отладку. При использовании диспетчера секций версии 3 новая таблица с именем Partitions
создается в учетной записи хранения, что позволяет легко проверить сведения о секции.
Удалена поддержка среды выполнения Функций версии 1
WebJobs.Extensions.DurableTask версии 3 больше не поддерживает версию 1.x среды выполнения Функций Azure, поддержку которой планируется завершить в сентябре 2026 года. Если необходимо использовать среду выполнения функций версии 1, используйте версию расширения устойчивых функций ниже версии 2.11.0. Помните, что при запланированном окончании поддержки Durable Functions также прекратят свою поддержку среды выполнения версии 1.
Обновление .NET Framework
WebJobs.Extensions.DurableTask версии 3 обновляет платформу .NET с .NET Core 3.1 до .NET 6, обеспечивая улучшенную производительность и улучшенную совместимость с современными функциями и библиотеками .NET. Это обновление соответствует будущим выпускам пакетов расширений Функций Azure.
Миграция с WebJobs.Extensions.DurableTask версии 2.x на v3.x
Миграция с WebJobs.Extensions.DurableTask версии 2.x на v3.x предназначена для простого использования без изменений кода, так как изменения находятся в фоновом режиме. Просто обновите зависимости, чтобы начать использовать новые функции и улучшения в версии 3.x.
- Для пользователей .NET, использующих встроенные процессы: обновитесь до Microsoft.Azure.WebJobs.Extensions.DurableTask версии 3.0.0 или более поздней.
- Для изолированных пользователей .NET: обновление до Microsoft.Azure.Functions.Worker.Extensions.DurableTask версии 1.2.0 или более поздней.
- Для пользователей других языков с пакетами расширений: поддержка устойчивых функций версии 3 в пакетах расширений будет доступна начиная с версии 4.22.0.
Примечание.
WebJobs.Extensions.DurableTask версии 3 использует последнюю версию пакета SDK службы хранилища Azure, которая имеет другую кодировку текста (Base64) по сравнению с той, которая используется в версии 2 (UTF-8). Если необходимо перейти с версии 3.x на версию 2.x, чтобы обеспечить обратную совместимость, используйте по крайней мере версию 2.13.5. Для внепроцессных пользователей .NET с Microsoft.Azure.Functions.Worker.Extensions.DurableTask, сделайте понижение до версии 1.1.5, если это возврат с версии 1.2.x или выше.
Поддержка и обслуживание версии 2.x
WebJobs.Extensions.DurableTask версии 2.x продолжает получать обновления системы безопасности и исправления ошибок, гарантируя, что существующие приложения остаются безопасными и стабильными. Однако все новые функции и улучшения добавляются исключительно в версию 3.x. Из-за этого необходимо обновить до webJobs.Extensions.DurableTask версии 3, как только вы сможете воспользоваться новейшими возможностями и текущими улучшениями.
Новые возможности в Microsoft.Azure.WebJobs.Extensions.DurableTask версии 2.x
В этом разделе описываются функции устойчивых функций, добавленных в версию 2.x.
Примечание.
Этот раздел не применяется к Durable Functions в изолированной среде выполнения .NET. Для этого ознакомьтесь с общими сведениями о длительных функциях изолированного процесса.
Устойчивые сущности
В Устойчивых функциях 2.x мы представили новую концепцию функций сущностей .
Функции сущностей определяют операции чтения и обновления небольших частей состояния, известных как устойчивые сущности. Как и функции оркестратора, функции сущности — это функции с особым типом триггера, триггером сущности. В отличие от функций оркестратора, функции сущностей не имеют определенных ограничений кода. Функции сущностей также явно управляют состоянием, а не неявно представляет состояние с помощью потока управления.
Дополнительные сведения см. в статье о устойчивых сущностях .
Устойчивый HTTP
В Durable Functions 2.x мы представили новую функцию Durable HTTP, которая позволяет:
- Вызов HTTP API напрямую из функций оркестрации (с некоторыми задокументированными ограничениями).
- Реализуйте автоматический опрос состояния HTTP 202 на стороне клиента.
- Встроенная поддержка управляемых удостоверений Azure.
Дополнительные сведения см. в статье о функциях HTTP .
Миграция с версии 1.x на 2.x
В этом разделе описывается перенос существующих устойчивых функций версии 1.x на версию 2.x, чтобы воспользоваться преимуществами новых функций.
Обновление расширения
Установите последнюю версию 2.x расширения привязок устойчивых функций в проекте.
JavaScript, Python и PowerShell
Устойчивые функции 2.x доступны начиная с версии 2.x пакета расширений Функций Azure.
Для поддержки Python в Durable Functions требуется версия 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)"
}
}
Примечание.
Если Visual Studio Code не отображает правильные шаблоны после изменения версии пакета расширений, перезагрузите окно, выполнив команду "Разработчик: перезагрузить окно" (CTRL+R в Windows и Linux, command+R в macOS).
Ява
Устойчивые функции 2.x доступны начиная с версии 4.x пакета расширений Функций Azure. Для выполнения функций Java необходимо использовать среду выполнения Функций Azure 4.0.
Чтобы обновить версию пакета расширений в проекте, откройте host.json и обновите extensionBundle
раздел, чтобы использовать версию 4.x ([4.*, 5.0.0)
).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
.NET
Обновите проект .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"
) для конфигурации уведомлений Event Grid.
Дополнительные сведения см. в справочной документации по устойчивым функциям host.json .
Изменения имени концентратора задач по умолчанию
В версии 1.x, если имя концентратора задач не указано в host.json, по умолчанию оно было задано как "DurableFunctionsHub". В версии 2.x имя концентратора задач по умолчанию теперь является производным от имени приложения-функции. Из-за этого, если вы не указали имя концентратора задач при обновлении до версии 2.x, ваш код будет работать с новым концентратором задач, и все текущие оркестрации больше не будут обрабатываться приложениями. Чтобы обойти эту проблему, вы можете явно задать имя концентратора задач значением по умолчанию "DurableFunctionsHub" версии 1.x или следовать нашим рекомендациям по развертыванию без простоев , чтобы получить подробные сведения о том, как обрабатывать критические изменения для оркестрации во время полета.
Изменения общедоступного интерфейса (только для .NET)
В версии 1.x различные объекты контекста , поддерживаемые устойчивыми функциями, имеют абстрактные базовые классы, предназначенные для использования в модульном тестировании. В рамках устойчивых функций 2.x эти абстрактные базовые классы заменяются интерфейсами.
В следующей таблице представлены основные изменения:
1.x | 2.x |
---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient или IDurableClient |
DurableOrchestrationContext или DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext или DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
В случае, если абстрактный базовый класс содержал виртуальные методы, эти виртуальные методы были заменены методами расширения, определенными в DurableContextExtensions
.
function.json изменения
В устойчивых функциях 1.x привязка клиента оркестрации использует значение type
orchestrationClient
. Версия 2.x используется вместо этого durableClient
.
Инициировать изменения событий
В Durable Functions 1.x вызов API инициации события и указание экземпляра, который не существовал, приводил к тихой ошибке. Начиная с версии 2.x, инициация события для не существующей оркестрации приводит к исключению.