Amazon web services 查询全局二级索引:';MissingRequiredParameter:缺少必需的密钥

Amazon web services 查询全局二级索引:';MissingRequiredParameter:缺少必需的密钥,amazon-web-services,aws-lambda,amazon-dynamodb,aws-sdk,dynamodb-queries,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Aws Sdk,Dynamodb Queries,我有一个DynamoDB表定义,如下所示: { "pk": { "S": "00000000-0000-0000-0000-000000000001" }, "sk": { "S": "00000000-0000-0000-0000-000000000001" }, "year": { "N": "2019" } "index": { "N": "987654321" } } 其中“pk”是分区键。“sk”是排序键。如果您想知道为什么pk和sk都有相同的值: 我已经在属性“In

我有一个DynamoDB表定义,如下所示:

{
"pk": {
  "S": "00000000-0000-0000-0000-000000000001"
},
"sk": {
  "S": "00000000-0000-0000-0000-000000000001"
},
"year": {
  "N": "2019"
}
"index": {
  "N": "987654321"
}
}
其中“pk”是分区键。“sk”是排序键。如果您想知道为什么pk和sk都有相同的值:

我已经在属性“Index”上创建了一个全局二级索引。它的投影都是键,pk和sk

现在,我像这样询问我的GSI:

        const params = {
                TableName: 'my_table_name',
                IndexName: 'my_index_name',
                KeyConditionExpression: "index = :v_index",
                ExpressionAttributeValues: {
                    ":v_index": {"N": 987654321}
                },
                ProjectionExpression: "pk",
                ScanIndexForward: false
            };
我收到以下错误消息:“MissingRequiredParameter:params中缺少所需的密钥”“key\”\n


以防万一,我在Lambda中使用Node.js 8.10。一般来说,GSI可以为同一GSI主键+副键组合使用多个条目。因此,您不能使用
getItem()
调用来检索对象。针对GSI的查询需要是
scan
query


亚马逊文档的前几行提到了这一点,关于

,请显示更多代码,比如实际抛出错误的行号。你是在使用
getItem
还是
query
?@MarkB你给了我关于我做错了什么的线索。我使用的getItem显然是错误的。在这种情况下必须使用查询。谢谢