我得到的官方建议是结合使用 Azure Logic Apps 和 Azure Function Apps,让 Logic App 进行编排,Function Apps 提供您的工作流功能。
channel9上的这个视频详细讨论了它......
https://channel9.msdn.com/Events/Ignite/Microsoft-Ignite-Orlando-2017/BRK3179
...我发现的问题是逻辑应用程序引擎是一个编排引擎并且不可扩展,因此为了完成解决方案,我认为最终的解决方案将类似于业务流程的 Azure 逻辑应用程序,它为每个工作流调用一个函数需要运行。
我已经构建了自己的工作流引擎,我在 Azure 函数中托管,没有 MS 对此事的指导……他们最好的建议是“与 Premier Field Engineers 计划签订 50,000 英镑/年的合同,让他们进来并和你一起建造”。
在我们的例子中,我们的流程/业务流程是由我们的客户定义的,所以我们不能硬编码任何关于业务逻辑如何运行的东西(例如,通过在函数中编写固定的代码块)并将函数视为工作流活动(在此处考虑 WF)您将遵循 MS 最佳实践,但我们发现我们的流程非常复杂,以这种方式执行流程的成本将花费我们每次执行的真金白银。
这就是我最终得出关于在函数内运行整个流程的结论的方式。在您的情况下,您可以从函数执行 WF 流以实现与我们相同的解决方案。
这一切都失败了,MS 对函数的指导说它们应该是一个快速的、短暂的 REST 调用来做一小部分工作(非常适合一个活动),所以当我们嵌入一个完整的流程时,不知道会发生什么在这一点上,你在他们的支持之外执行,据我所知,基本上是“你自己”,除非你接受每年 50,000 英镑的合同。
我的想法是......尝试一下,测试限制,将它们放入您的代码中以防止功能框架破坏。
鉴于此,我通过反馈社区建议 MS 将函数嵌入到逻辑应用程序中,直接消除开销和实现单独流引擎的需要。
https://feedback.azure.com/forums/34192--general-feedback/suggestions/36979045-workflow-solution
...如果获得批准,我们可以将业务流程设计为调用流程的逻辑应用程序,这些流程将作为其他逻辑应用程序构建,以将完整的解决方案完全堆叠在“开箱即用”的 MS 基础架构上,而无需我们跳过幕后当逻辑应用程序不能做某事时,循环使所有这些东西都适合。