#amazon-web-services #aws-lambda #amazon-dynamodb-streams
#amazon-веб-сервисы #aws-lambda #amazon-dynamodb-streams
Вопрос:
Я пытаюсь объединить новые записи из Dynamo, моя лямбда работала слишком быстро и слишком быстро загружала записи обратно в Dynamo, мое приложение получает только 5 записей в секунду.
Я пытаюсь создать средство чтения для потока, которое будет вызываться каждую минуту для сбора статистики.
Я прошел через процесс ListStreams для имени таблицы DescribeStream GetShardIterator для каждого сегмента, используя TRIM_HORIZON GetRecords, затем рекурсивно обрабатываю NextShardIterator, пока он не вернет nil, я ограничился 5 рекурсиями, поскольку, похоже, это не заканчивается
Каждый раз, когда я запускаю это, я теперь получаю 16 записей, что на самом деле не то, что я хочу, мне нужны только записи, которые я не обрабатывал.
Нужно ли мне использовать какую-либо форму сохранения для сохранения максимального числа обработанных последовательностей?
Комментарии:
1. что для вас означает «новая, необработанная запись»?
2. Я хочу создавать статистику для своего api, поэтому каждый раз, когда я принимаю или отклоняю клиента, я также записываю запись статистики, которая будет, например, { принимает: 1, отклоняет: 0 }, затем я хочу захватить эти записи и свернуть их в агрегированное представление. Таким образом, новая запись будет чем-то, что я еще не обработал. Кажется простым сделать это в качестве динамического триггера
3. Проблема с триггером заключается в том, о чем вы уже упоминали: функции Lambda перегружают вашу базу данных. В вопросе вы что-то говорите о получении записей каждую минуту. Поможет ли запуск функции, которая запрашивает необработанные элементы каждую минуту?