DynamoDBStreams GetRecords with --limit 返回空记录



我正在尝试使用--limit选项运行 DynamoDBStreams GetRecords 命令,但没有任何返回...

$ 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。

我做错了什么还是此选项在全球范围内不起作用?

谢谢

同样的事情也发生在我身上。

我在下一个分片迭代器的 API 响应中获得了 0 条记录。我再次尝试这个分片迭代器并要求提供记录。它可能会也可能不会响应记录。有时我必须这样做 500 次才能获得一条记录。我想了解的是我们需要这样做多少次才能完全读取分片中的数据。

从 AWS 文档:

使用分片

迭代器参数指定分片迭代器。分片迭代器指定分片中要按顺序开始读取流记录的位置。如果迭代器指向的分片部分中没有可用的流记录,则 GetRecords 将返回一个空列表。请注意,可能需要多次调用才能到达包含流记录的分片部分。

检查上述语句中的粗体注释。什么意思?

--limit似乎有效。但是从正确的分片迭代器中检索记录有点长。

最新更新