升级Durable Functions扩展版本

如果遇到编排失败、重播速度缓慢或意外行为,首先建议升级Durable Functions扩展程序。 新版本通常包含关键的 bug 修复和性能改进。 若要收到有关新版本的通知,请在 GitHub 上关注发行版本

选择与应用类型匹配的升级方法:

应用类型 升级方法
.NET(进程内或隔离) 引用最新的 NuGet 包
非.NET(JavaScript、Python、Java、PowerShell) 升级扩展捆绑包
需要高级/紧急修补程序 手动升级扩展

请引用 .NET 应用程序的最新 NuGet 包。

更新项目中的 Durable Functions NuGet 包引用。 正确的包取决于托管模型和 存储提供程序

存储提供商 进程内工人 独立工人
Azure 存储 (默认值) Microsoft.Azure.WebJobs.Extensions.DurableTask Microsoft.Azure.Functions.Worker.Extensions.DurableTask
Netherite Microsoft.Azure.DurableTask.Netherite.AzureFunctions Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Netherite
MSSQL Microsoft.DurableTask.SqlServer.AzureFunctions Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer

例如,若要升级隔离工作器应用中的默认 Azure 存储扩展:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask

升级扩展捆绑包

非.NET应用(JavaScript、Python、Java、PowerShell)使用 extension 捆绑包来访问触发器和绑定,包括Durable Functions扩展。 验证 extensionBundle 中的 host.json 版本范围是否包括 最新捆绑包版本

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.*, 5.0.0)"
  }
}

根据需要更新版本范围,然后重新部署应用。

手动升级Durable Functions扩展版本

如果升级扩展捆绑包无法解决问题,并且较新的Durable Functions扩展版本包含所需的修补程序,则可以手动安装特定的扩展版本。

Caution

手动管理扩展意味着失去扩展捆绑包的自动更新,并且可能会遇到扩展之间的兼容性问题。 仅在修复时间敏感问题时使用此方法。

  1. 请从extensionBundle文件中删除host.json部分。

  2. 安装 .NET CLI(如果还没有)。

  3. 安装扩展。 若要安装扩展捆绑包支持的所有扩展,请运行:

    func extensions install
    

    若要在特定版本中仅安装 Durable Functions 扩展,请运行:

    func extensions install -p Microsoft.Azure.WebJobs.Extensions.DurableTask -v <version>
    

    <version> 替换为 版本页面上的目标版本。

后续步骤