DynamoDB ExclusiveStartKey 错误提供的起始键无效

DynamoDB ExclusiveStartKey error The provided starting key is invalid

大家好,我从 dynamodb 开始,当我想使用 ExclusiveStartKey.currently 我与 GSI 一起工作时我有一些误解,这就是我如何获得查询的参数

{
   TableName: 'Search',
   IndexName: 'GSI1',
   ExclusiveStartKey: {
     GSI1PK: { S: '8a2bb021182ffff' },
     GSI1SK: { S: '5#182854f0-c4ea-39c7-a3f5-4b0b0d947cea' }
   },
   KeyConditionExpression: 'GSI1PK = :gsiHk AND begins_with(GSI1SK, :entityType)',
   ExpressionAttributeValues: { ':gsiHk': { S: '8a2bb021182ffff' }, ':entityType': {S:'5'}},
  Limit: 500
 }

这个returns我错了

ValidationException: The provided starting key is invalid

这是正确的使用方法吗?我该如何解决??

显式设置 ExclusiveStartKey

并不常见

来自docs

ExclusiveStartKey The primary key of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedKey in the previous operation.

所以 Query 的正常使用,给定它的 1MB 读取限制是在一个循环中,如以下伪代码所示

do 
  result=Query(parms);
  //process results
  parms.ExclusiveStartKey = results.LastEvaluatedKey;
until results.LastEvaluatedKey is null; 

我认为您没有理由不明确设置它,但我没有看到任何地方记录了该格式。您必须检查 LastEvaluatedKey

中返回的内容