Amazon web services 查询全局二级索引:';MissingRequiredParameter:缺少必需的密钥
我有一个DynamoDB表定义,如下所示: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
{
"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显然是错误的。在这种情况下必须使用查询。谢谢