我有一个功能应用程序,可以连接到cosmosDB变更供稿,并且运行良好,但是我有一个问题,当我发布该应用程序时,它会处理当前受监视的集合中所有文档的变更,这似乎是错误的
该功能初始化如下
[FunctionName("Function1")]
public static async Task RunAsync([CosmosDBTrigger(
databaseName: "XXX",
collectionName: "YYY",
ConnectionStringSetting = "CosmosDb",
LeaseCollectionName = "leases", LeaseCollectionPrefix = "cloud")]IReadOnlyList<Document> documents, TraceWriter log)
{
}
我所做的唯一更改是更改了LeaseCollectionPrefix,这会导致触发器接收集合中所有文档的更改,因为它被视为新的租约吗?
答案 0 :(得分:4)
CosmosDB触发器检测到文档更改
运行时发生更改
在方案1中首次触发后(租约中的ContinuationToken从null更新为有效值),它可以接收以后发生的所有更改,甚至包括未运行时发生的更改。
在您的情况下,我假设您之前可能使用过cloud
租约,并且在没有运行带有cloud
租约的触发器时,已经对CosmosDB进行了一些更改。这次您发布代码,所有更改将一起显示。
显然,解决方案是删除cloud
集合中的旧leases
租约。