Azure 逻辑应用程序使用 hours/days 到 运行 Azure Functions

Azure Logic apps take hours/days to run Azure Functions

背景

我有一组逻辑应用程序,每个逻辑应用程序调用一组并行 运行 的功能应用程序。

每个逻辑应用程序都被触发在夜间的特定时间启动,所有逻辑应用程序相隔一个小时。

Azure 函数使用 async pattern 编写并调用外部 API。

问题

有时逻辑应用程序会运行正常并在正常时间段内完成执行,并且可以连续执行两三天。

但是有时他们会花费数小时或数天时间迫使我取消他们的 运行。

任何机构都可以阐明这可能正在发生吗?

备注

  1. 我正在使用持久函数扩展的最新 nuget 包
  2. 调试功能时总是及时完成
  3. 我注意到函数有时会卡在挂起状态。

您似乎至少有两个函数应用配置了相同的存储帐户和任务中心名称:

  • AzureConsumptionXXX
  • AzureComputeXXX

这会导致两个功能应用程序互相窃取消息。如果一个应用程序中的功能在另一个应用程序中不存在,那么编排很可能会像这样卡在 Pending 状态。

缓解此问题的最简单方法是为每个函数应用程序指定一个唯一的任务中心名称。请参阅任务中心文档以获取更多信息:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-task-hubs.