Функция Azure V1 в фиде изменений CosmosDB запускает все изменения при публикации - PullRequest
0 голосов
/ 05 октября 2018

У меня есть приложение-функция, которое подключается к каналу изменений 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. Может ли это привести к тому, что триггер получит изменения для всех документов в коллекции, потому что он рассматривается как новая аренда?

1 Ответ

0 голосов
/ 08 октября 2018

Триггер CosmosDB обнаруживает изменения документа

  1. Когда он выполняется и изменения происходят

  2. После того, как он был запущен в первый раз в сценарии 1 (ContinuationToken варенды обновляется с нуля до допустимого значения), он может получать все изменения, которые произошли позже, даже те, которые произошли, когда он не работал.

В вашей ситуации, я полагаю, вы могли использовать аренду cloud ранее и вносить некоторые изменения в CosmosDB, когда триггер с арендой cloud не работает.На этот раз, когда вы публикуете код, все изменения отображаются вместе.

Очевидно, решение состоит в том, чтобы удалить старую аренду cloud из вашей коллекции leases.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...