Найти, было ли значение обновлено или вставлено в Dynamodb? - PullRequest
0 голосов
/ 25 октября 2018

Я использую функцию updatedItem (), которая вставляет или обновляет значения в Dynamodb.Если значения обновляются, я хочу получить эти элементы и вызвать новую лямбда-функцию.Как мне этого добиться?

1 Ответ

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

Наиболее прямым подходом было бы добавить ReturnValues: 'UPDATED_NEW' к параметрам, которые вы используете для вас updateItem() вызов.

Затем вы можете сказать, вставлен ли новый элемент, потому что возвращенный Attributesбудет включать ваш раздел (и сортировать, если вы использовали составной) ключ.

Это потому, что вы не можете изменить ключ элемента, так что если все, что вы сделали, это обновить элемент, то выне обновил бы свой ключ.Но если у вас создан новый элемент, вы бы «обновили» его ключ.

Однако, если вы хотите реагировать на элементы, обновляемые в динамической таблице, вы могли бы альтернативноиспользовать потоки DynamoDB (документы) .

Эти потоки позволяют запускать лямбда-выражения для транзакций в таблице динамо.Эта лямбда может затем фильтровать события для обновлений и реагировать соответственно.Преимущество этого архитектурного подхода заключается в том, что ваша функциональность onUpdate сработает, если что-нибудь обновит таблицу, а не только конкретную лямбду.

...