我正在尝试使用--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
似乎有效。但是从正确的分片迭代器中检索记录有点长。