Триггер данных Azure CosmosDB не принимает актуальные обновления - PullRequest
0 голосов
/ 25 июня 2019

Я создал функцию Azure с использованием шаблона запуска CosmosDB в соответствии с: эта ссылка

Работает нормально, я вижу обновления, поступающие из моей Коллекции, созданной в Cosmos DB.

enter image description here

Теперь проблема в том, что мне нужны только те документы, которые имеют актуальные обновления. В настоящее время, если я обновляю документ, используя код, он обновляет свою метку времени, и документ обновляется. Хотя нет актуального обновления данных.

Мои вопросы:

  1. Как я могу получить только актуально обновленные документы (только те документы, чьи поля json изменены)?
  2. Как я также могу отслеживать удаленные документы? они здесь тоже не текут ??

1 Ответ

1 голос
/ 25 июня 2019

1) Поскольку любое нажатие на документ обновляет атрибут - внутренне управляемый - _ts, это все равно является изменением всего документа.Если вы изменили пользовательские данные документа здесь не имеет значения.Канал изменений не знает об этом различии.Таким образом, вы всегда будете видеть эти обновления и в канале изменений.

2) Удаления не добавляются в ленту изменений, но возможен обходной путь:

В настоящее время канал изменения нелог удаляет.[...] вы можете добавить мягкий маркер на элементы, которые удаляются, например, вы можете добавить атрибут в элемент, называемый «удаленный», установить его в «true» и установить TTL для элемента, такчто он может быть автоматически удален.

https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed#change-feed-and-different-operations

...