CosmosDB change feed上的Azure V1函数在发布时触发所有更改

CosmosDB change feed上的Azure V1函数在发布时触发所有更改,azure,azure-functions,azure-cosmosdb,Azure,Azure Functions,Azure Cosmosdb,我有一个连接到cosmosDB change feed的功能应用程序,它工作得很好,但我有一个问题,当我发布该应用程序时,它会处理当前监控集合中所有文档的更改,这似乎是错误的 该函数的初始化如下所示 [FunctionName("Function1")] public static async Task RunAsync([CosmosDBTrigger( databaseName: "XXX", collectionName:

我有一个连接到cosmosDB change feed的功能应用程序,它工作得很好,但我有一个问题,当我发布该应用程序时,它会处理当前监控集合中所有文档的更改,这似乎是错误的

该函数的初始化如下所示

 [FunctionName("Function1")]
        public static async Task RunAsync([CosmosDBTrigger(
            databaseName: "XXX",
            collectionName: "YYY",
            ConnectionStringSetting = "CosmosDb",
            LeaseCollectionName = "leases", LeaseCollectionPrefix = "cloud")]IReadOnlyList<Document> documents, TraceWriter log)
        {
}
[FunctionName(“Function1”)]
公共静态异步任务RunAsync([CosmosDBTrigger(
数据库名称:“XXX”,
集合名称:“YYY”,
ConnectionStringSetting=“CosmosDb”,
LeaseCollectionName=“租赁”,LeaseCollectionPrefix=“云”)]IReadOnlyList文档,TraceWriter日志)
{
}

我所做的唯一更改是更改了LeaseCollectionPrefix,这是否会导致触发器接收集合中所有文档的更改,因为它被视为新租约

CosmosDB触发器检测文档更改

  • 当它运行并发生更改时

  • 在场景1中第一次触发后(租约中的ContinuationToken从null更新为有效值),它可以接收以后发生的所有更改,甚至包括它未运行时发生的更改

  • 在您的情况下,我假设您以前可能使用过
    cloud
    lease,并且在
    cloud
    lease的触发器未运行时对CosmosDB进行了一些更改。这次发布代码时,所有更改都显示在一起


    显然,解决方案是删除
    租约
    集合中的旧
    租约。

    CosmosDB触发器检测文档更改

  • 当它运行并发生更改时

  • 在场景1中第一次触发后(租约中的ContinuationToken从null更新为有效值),它可以接收以后发生的所有更改,甚至包括它未运行时发生的更改

  • 在您的情况下,我假设您以前可能使用过
    cloud
    lease,并且在
    cloud
    lease的触发器未运行时对CosmosDB进行了一些更改。这次发布代码时,所有更改都显示在一起

    显然,解决方案是删除
    租约
    集合中的旧
    租约