Правильная идемпотентная установка для увеличения атрибута таблицы DynamoDB с помощью лямбды? - PullRequest
0 голосов
/ 27 октября 2018

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

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

Есть ли правильный способ настроить функцию aws-лямбда, чтобы она либо а) выполнялась только один раз, либо б) увеличивалась идемпотентно, чтобы функция могла увеличивать значение только один раз, даже если она работает одновременно?

Спасибо.

1 Ответ

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

Из вашего вопроса не ясно, что вызывает вашу лямбда-функцию. Если вы используете правило CloudWatch для запуска функции по расписанию, для каждого «тика» будет выполняться только один вызов, который определяется как настроенная вами скорость.

Относительно вашего вопроса о идемпотентности:

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

Кажется, что ваша лямбда срабатывает больше, чем ожидалось, и это может быть проблемой, а не идемпотентностью. В любом случае вы можете использовать лямбда-ввод и идентификатор запроса контекста, чтобы сделать код идемпотентным.

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