我目前的架构遇到了一些问题,我不明白为什么......
我有 2 个 Azure Functions 应用程序 (V1) 共享同一个存储帐户。其中一个是消费计划,另一个是应用服务计划。
对于消费计划中的一项功能,我遇到了以下情况:
- 从队列中读取消息
- 取决于阅读,有两种选择:
- 使用 StartNewAsync() 方法直接调用 Orchestrator
- 在另一个队列中添加消息以在应用服务计划上启动 Orchestrator
我的问题在于第 2 点。
应用服务计划上的 DurableOrchestrationClient 已启动,但似乎 2 个功能应用之间存在问题,因为在 Live Metrics Streams 中我收到很多消息说:
函数“ MyOrchestratorInAppServicePlan ”不存在、被禁用或不是编排器函数。附加信息:以下是活动的协调器函数:' AllTheOrchestratorsIHaveInConsumptionPlan '..InstanceId:601afed81ad64a0aad87bb7984de4a94。功能:MyOrchestratorInAppServicePlan。集线器名称:DurableFunctionsHub。应用名称:MyFunctionAppInConsumptionPlan。插槽名称:生产。扩展版本:1.6.0。序号:47。
而且它们不会定期启动,真正启动所需功能可能需要 30 多分钟,例如消费计划上的功能应用程序正在读取不打算发送给它的消息,而我的应用服务计划功能应用程序什么也不做,因为它已经被另一个“对待”了(我想?)。
任何帮助或建议将不胜感激:D
编辑:我可以通过重新启动两个 Azure Functions 应用程序来启动 Orchestrator,但它并不总是处理所有挂起的持久操作
编辑 2:我刚刚看到它做了同样的事情,但在第 1 点的情况下恢复了。应用服务计划搜索其他持久性而不是消费计划。