耐用功能(Durable Functions)包、扩展和 SDK 概述

Durable Functions适用于所有第一方Azure Functions语言,包括.NET、Node.js、Python、Java和 PowerShell。 本文可帮助你找到适合语言和托管模型的安装包。

在本文中,extension是指在Azure Functions主机中运行并实现 Durable Task 协议的二进制文件。 SDK 是指在应用程序代码中调用的语言特定的库。 对于.NET,扩展和 SDK 合并在单个 NuGet 包中。

快速参考

下表列出了每个受支持的语言和托管模型的主要Durable Functions包:

语言 托管模型 Package Registry
.NET 进行中 Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet
.NET 独立工人 Microsoft.Azure.Functions.Worker.Extensions.DurableTask NuGet
Node.js(JavaScript/TypeScript) 扩展捆绑包 durable-functions npm
Python 扩展捆绑包 azure-functions-durable PyPI
Java 扩展捆绑包 durabletask-azure-functions Maven
PowerShell 扩展捆绑包 AzureFunctions.PowerShell.Durable.SDK PowerShell 库

以下部分提供有关每种语言(包括备用存储提供程序包)的更多详细信息。

.NET 进程内

添加 Microsoft.Azure。WebJobs.Extensions.DurableTask NuGet 包到 .csproj 文件。 此包(有时称为“WebJobs 扩展”)包含Durable Functions扩展和.NET进程内 SDK。

注意

这些包与非 .NET 客户手动升级其扩展时需要在 .csproj 中管理的包相同。

.NET 独立

添加 Microsoft.Azure.Functions.Worker.Extensions.DurableTask NuGet 包到 .csproj 文件。 此包(有时称为“工作器扩展”)将替换进程内模型中使用的 WebJobs 扩展。

Node.js、Python、Java 和 PowerShell

非 .NET 语言使用扩展捆绑包自动管理 Durable Functions 扩展。 只需为您的语言安装 Durable Functions SDK:

注意

PowerShell 用户: 使用独立的 AzureFunctions.PowerShell.Durable.SDK 模块,该模块现已正式发布(正式版)。 Azure Functions PowerShell 语言辅助角色中内置的旧版 SDK 可能不会收到新功能或 bug 修复,最终可能会被删除。 有关详细信息,请参阅迁移指南

存储提供程序

Durable Functions 使用 存储提供程序 来持久保存业务流程状态、实体状态和内部消息。 建议的提供程序是可优化任务计划程序,这是一个Azure托管的后端,它不需要其他包(仅配置)。 若要开始,请参阅使用 Durable Task Scheduler 配置 Durable Functions

替代存储提供商

如果需要其他后端,还可以使用以下“自带”(BYO)存储提供程序。 对于 .NET 应用,除了主要的 Durable Functions 包之外,还请添加相应的包。

下表列出了每个.NET托管模型的 BYO 存储提供程序包:

存储提供商 .NET内进程包 .NET独立包
Azure 存储 不需要额外的包(内置) 不需要额外的包(内置)
MSSQL Microsoft.DurableTask.SqlServer.AzureFunctions Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer
内瑟利特 (退休) Microsoft.Azure.DurableTask.Netherite.AzureFunctions Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Netherite

Warning

Netherite 存储提供程序即将停用。 当前使用 Netherite 的用户应迁移到 Durable Task Scheduler 或其他受支持的提供程序。

非.NET语言通过extension bundles管理扩展,因此在应用程序项目中不需要其他存储提供程序包。

Tip

有关比较和配置每个后端的完整说明,请参阅 存储提供程序指南

GitHub 存储库

Durable Functions开发为开源软件。 若要请求新功能或报告错误,或参与项目,请使用相关语言或组件的存储库。

GitHub存储库 说明
azure-functions-durable-extension .NET进程内库和Azure 存储存储提供者
durabletask-dotnet .NET 独立工作进程库
azure-functions-durable-js Node.js SDK
azure-functions-durable-python Python SDK
durabletask-java Java SDK
azure-functions-durable-powershell PowerShell SDK
durabletask-netherite Netherite 存储提供程序
durabletask-mssql MSSQL 存储提供程序