Durable Functions 在所有第一方 Azure Functions 运行时环境中都可用,例如 .NET、Node.js和 Python。 因此,支持的每个语言运行时都有多个 Durable Functions SDK 和包。 本指南从每个受支持的运行时的角度介绍了每个 Durable Functions 包。
.NET 进程内
.NET 进程内用户需要在其 文件中引用 .csproj
包才能使用 Durable Functions。 此包称为 Durable Functions 的“WebJobs 扩展”。
存储提供程序包:
默认情况下,Durable Functions 使用 Azure 存储作为其后盾存储。 但是,其他存储提供程序也可用。 若要使用它们,除了引用 .csproj
中的 WebJobs 扩展之外,还需要引用这些提供程序的包。 这些包是:
- Netherite 存储提供程序:Microsoft.Azure.DurableTask.Netherite.AzureFunctions。
- MSSQL 存储提供程序:Microsoft.DurableTask.SqlServer.AzureFunctions
提示
有关如何配置每个后端的完整说明,请参阅存储提供程序指南。
注意
这些包与非 .NET 客户手动升级其扩展时需要在 .csproj
中管理的包相同。
独立 .NET
独立 .NET 用户需要在其 文件中引用 .csproj
包才能使用 Durable Functions。 这取代了 .NET 进程内使用的“WebJobs”扩展,因为独立 .NET 项目无法直接引用 WebJobs 包。 此包称为 Durable Functions 的“辅助角色扩展”。
存储提供程序包:
在独立 .NET 中,其他存储提供程序也在其自己的“辅助角色扩展”包中提供。
除了引用 .csproj
中的辅助角色扩展之外,还需要引用这些提供程序的包。 这些包是:
- Netherite 存储提供程序:Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Netherite。
- MSSQL 存储提供程序:Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer
提示
有关如何配置每个后端的完整说明,请参阅存储提供程序指南。
扩展捆绑包用户
扩展捆绑包(建议用于非 .NET 用户的 Azure Functions 扩展管理机制)的用户只需安装其语言运行时的 Durable Functions SDK。 下表中列出了每个第一方语言的 SDK:
- Node (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。 今后,旧版 SDK 可能不会收到新功能或 bug 修复,最终可能会从工作线程中删除。 有关迁移到独立 SDK 的详细信息,请参阅 迁移指南 。
GitHub 存储库
Durable Functions 以 OSS 的形式在开放环境中开发。 欢迎用户参与其开发、请求功能和报告相应存储库中的问题:
GitHub 存储库 | DESCRIPTION |
---|---|
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 存储提供程序 |