无服务器计算:Durable Functions与Azure Logic Apps深度解析
1. Durable Functions高级特性
1.1 实例管理
终止编排时,需要提供编排的ID和原因,该原因会保存到编排历史记录中。原因可以是任意字符串,建议提供具有自解释性的值,方便后续追溯。若想了解更多实例管理功能,可查阅相关资料,其中提到了向编排实例发送事件、清除历史记录、删除任务中心等场景。
1.2 版本控制
版本控制在许多计算机系统中都很重要,在Durable Functions中也不例外。开发编排时,可能需要在保留向后兼容性的同时进行更改。例如,原本调用返回整数的活动,若将其改为返回布尔值,正在运行的编排可能会因期望整数而失败。同样,更改编排内的逻辑或活动顺序,可能导致编排不一致,触发 NonDeterministicOrchestrationException 错误,使整个工作流停止。
为避免此类错误,可采用以下两种版本控制策略:
- 等待所有编排停止 :通过适当的实例管理,暂停新编排的创建,等待现有实例完成后再重启流程。
- 将新代码作为单独的编排/活动部署 :复制部分代码作为新编排并进行更改。此方法能快速运行编排,但使用不当会增加技术债务。
1.3 高可用性
Durable Functions默认使用存储账户作为存储机制,在考虑复制时依赖该服务。使用Durable Functions时,有三种主要的高可用性场景:
| 场景 | 描述 | 优点
超级会员免费看
订阅专栏 解锁全文
1357

被折叠的 条评论
为什么被折叠?



