我的客户想使用 CosmosDBTrigger 将文档传输到 Azure 服务总线。在这种情况下,在 Cosmos 项突变和服务总线消息之间建立 1:1 的关系很重要。因此,触发器接收的每个文档(通过批处理)必须只处理一次,这导致了一些我无法确认的基本问题:
- 如果代码在处理过程中抛出异常会发生什么?批次会被遗忘吗?
- 同样,如果函数服务或 CosmosDBTrigger 库在调用 Azure 函数之前存在运行时问题,是否可以在不跳过批处理或复制文档的情况下恢复?
- 函数有没有办法上报完成状态,比如“未处理”;导致触发器重试批处理?
- 是否存在相同或不同实例将多次处理同一文档的情况?(我读过几篇声称发生了这种情况的帖子。)
如果最终答案是这个触发器不可靠,只是好奇它的预期用例是什么?
谢谢
-约翰