DynamoDBStreams GetRecords с --limit возвращает пустые записи - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь запустить команду GetRecords DynamoDBStreams с параметром --limit, но ничего не возвращается ...

$ aws --version
aws-cli/1.16.266 Python/3.5.2 Linux/5.3.0-28-generic botocore/1.13.2


$ aws dynamodbstreams --profile my-profile --region my-region get-records --shard-iterator my-shard-iterator --limit 2
# Output
{
    "NextShardIterator": "my-next-shard-iterator",
    "Records": []
}

Когда я удаляю параметр --limit, возвращаются некоторые записи:

$ aws dynamodbstreams --profile my-profile --region my-region get-records --shard-iterator my-shard-iterator
# Output
{
    "Records": [
          {
             # record 1
          },
          {
             # record 2
          }
     ],
    "NextShardIterator": "my-next-shard-iterator"
}

Согласно документации

- предел (целое число) Максимальное количество записей, возвращаемых из сегмента. Верхний предел составляет 1000.

Я делаю что-то не так или эта опция не работает глобально?

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

То же самое происходит со мной.

Я получаю 0 записей в ответе API со следующим итератором сегмента. Я снова пробую этот итератор и спрашиваю записи. Он может или не может ответить с записями. Иногда мне приходится делать это 500 раз, чтобы получить одну запись. Я хочу понять, сколько раз нам нужно сделать это, чтобы полностью прочитать данные из шарда.

From AWS do c:

Укажите итератор сегмента с помощью параметра ShardIterator. Итератор сегмента определяет позицию в сегменте, с которой вы хотите начать последовательное чтение потоковых записей. Если в той части сегмента, на которую указывает итератор, нет доступных потоковых записей, GetRecords возвращает пустой список. Обратите внимание, что для получения доступа к части сегмента, содержащей записи потока, может потребоваться несколько вызовов.

Проверьте примечание, выделенное жирным шрифтом из приведенных выше операторов. Что это значит?

0 голосов
/ 04 февраля 2020

Кажется, что --limit работает. Но это немного долго, чтобы извлечь записи из правильного итератора шарда.

...