使用Azure函数中的CosmosDbTrigger检测Cosmos DB中的更新和删除

5

我正在尝试使用 CosmosDBTrigger 在 Azure Function 中处理文档事件的 DB 通知。

我能够收到插入和更新的通知,但是没有删除的通知。是否有触发它的方法,或者这种类型的事件不被期望?(例如,事件溯源)

在更新的情况下,是否有办法检查它是插入还是更新?也许可以查看 ETag

2个回答

11

在Cosmos DB的更改日志中没有删除操作,因此也不会触发函数:

更改日志包括对集合中文档进行的插入和更新操作。您可以通过在文档中设置“软删除”标志来捕获删除操作。

而且系统内置没有插入/更新属性,他们建议在应用程序层面上实现:

尚未有系统属性。但是,您可以向文档添加属性,通过更新文档属性来执行软更新。

以上引用均来自在Azure Cosmos DB中使用更改日志支持


@KevDing 不,我相信答案仍然适用。 - Mikhail Shilkov
2
他们目前正在努力将删除操作放入更改日志中,但目前还没有预计完成时间。如果您想跟踪更新,请访问以下链接:更改日志的删除通知 - Andy Davies
@AndyDavies,你知道这个功能请求是否有新的反馈页面吗?因为你提供的链接已经失效了。 - Stanislas
2
@Stanislas,嗯...看起来这就是我们能得到的最好的了,不是什么好消息... https://feedback.azure.com/d365community/idea/1a462846-0e25-ec11-b6e6-000d3a4f0858 - Andy Davies
作为一个想要对 TTL 功能引起的删除做出反应的人,这让我感到非常难过。我想现在我必须使用 Logic Apps 创建自己的 TTL 工作流并忽略原生机制 :( - julealgon

0
在2023年6月,Cosmos DB最近增加了对所有版本和删除更改Feed模式的支持。
与之前的模式(最新版本更改Feed模式)相比,现在我们可以收到有关文档的任何和所有更改的通知,包括删除(包括基于TTL的文档删除)。有一些注意事项,包括它只适用于您的备份周期,因此您不能再从容器的开始创建更改Feed处理器,但它确实为持续的反应性提供了更有价值的信息。
目前还不支持作为Azure Functions触发器,但我认为这个功能将来会推出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接