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:
- Node.js(JavaScript/TypeScript):durable-functions npm 包。
- Python:azure-functions-durable PyPI 包。
- Java:durabletask-azure-functions Maven 包。
- PowerShell:AzureFunctions.PowerShell.Durable.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 存储提供程序 |