在 AWS DynamoDB 中使用二级索引时 LastEvaluatedKey 包含什么?

What does LastEvaluatedKey contain when using Secondary Indexes in AWS DynamoDB?

假设我有一个 DynamoDB table T,其属性为 H、R、G 和 S; H 是 partition/hash 键,R 是 range/sort 键。假设我还有一个全局二级索引 (GSI),它定义为分区键为 G,排序键为 S。

当使用 GSI 执行查询并给出分页结果时,LastEvaluatedKey 中应该包含哪些属性?我已经阅读了文档,但没有提供此详细信息。

会return

{
  "G": "foo",
  "S": "bar"
}

在 GSI 中,不能保证该密钥是唯一的,因此请记住这一点。

当在 GSI 上进行查询时,看起来 LastEvaluatedKey 将包括所有四个(H、R、G 和 S)。以下似乎是规则:

如果我们在 GSI 上查询,那么 LastEvaluatedKey 将由 GSI 分区键、GSI 排序键、主分区键和主排序键组成。

如果我们在 LSI 上查询,那么 LastEvaluatedKey 将是 LSI 排序键、主分区键和主排序键的组合。