0

用例

我想为特定流程构建一个工作流,并希望使用 Azure 函数来实现这一点。

所有这些功能都需要“链接”起来,如果一个功能失败,该过程将无法继续。我需要在此过程中获取更新的状态,以便我的应用程序的前端可以通知用户有关该过程的信息。我还想要一个允许我单独推送每个功能的 CI 流程。

最好的解决方案是拥有一个公共功能和多个不可公开访问的“私有”功能(仅由其他 Azure 功能触发)

问题

起初我考虑过使用 Durable Functions,但看起来它不适合我的用例,因为从 Orchestrator 调用 Azure Functions 并不容易。

我现在正在考虑事件网格。这对您来说是一个不错的选择吗?如何处理可以从应用程序前端检索的全局状态?

提前致谢 !

J。

4

1 回答 1

0

对我来说,您的情况听起来非常适合Durable Functions,因为您可以在 Orchestrator 功能中对工作流程进行编程,并根据需要处理重试和异常。请注意,该orchestrator函数调用activity驻留在同一函数应用程序中的函数。Durable Functions 中的 Function Apps 之间没有通信(除非您进行一些“创造性”编码以从活动中调用新的编排)。

您还可以利用自定义编排状态向客户提供有关工作流状态的反馈。

我肯定会建议保持编排小(不要太多活动功能),以保持编排易于理解和单元测试。此博文中有关在函数应用程序中对函数进行分组的更多提示。

最后,如果您的工作流程中有不同的流程,需要单独扩展或部署,您还可以考虑将 EventGrid 和 Durable Functions 结合起来。例如,第一个 Function App 执行流程的初始部分,其中一个活动触发 EventGrid 事件。第二个 Function App 可以由该事件触发并执行工作流的其余部分。

于 2019-04-23T12:01:09.687 回答