Я пытаюсь прочитать записи из потока kinesis после определенной метки времени в лямбда-функции. Я получаю осколки, итераторы осколков, а затем данные.
Когда я получаю первый итератор, я получаю данные и продолжаю рекурсивно вызывать ту же функцию, используя NextShardIterator (присутствует в возвращаемых данных). Согласно документации, NextShardIterator вернет значение null, когда больше нет данных для чтения, и оно достигло $ last.
Но оно никогда не возвращает значение null, и функция продолжает вызываться, и в итоге я получаю исключение Provisioned Throughput Exceeded.
Я также пытался использовать MillisBehindLatest, чтобы остановить чтение, когда значение равно нулю, но в некоторых случаях также происходит сбой.
Существует ли правильный способ получения данных из кинезиса на основе метки времени?