gpt4 book ai didi

node.js - KeyConditionExpression 错误和空错误响应

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:01 24 4
gpt4 key购买 nike

我使用 Lambda 作为后端,并通过它执行所有 DynamoDB 操作。

我有一个用户表Users,我想通过其哈希键用户名来查询它

在我的 params 变量上使用 KeyConditionExpression 语句,但出现以下错误:

There were 2 validation errors:\n* MissingRequiredParameter: Missing >required key 'KeyConditions' in params\n* UnexpectedParameter: Unexpected >key 'KeyConditionExpression' found in params

所以,是的,我尝试了以下遗留声明:

var userQuery = {
TableName:"Users",
KeyConditions:{
Username:{
ComparisonOperator:'EQ',
AttributeValueList:[{S:"some_username"}]
}
}
};

由于某种原因,我在查询回调中收到空错误,如下所示:

dynamo.query(userQuery,function(err,data){
if(err) console.log("error "+JSON.stringify(err,null,2));
else console.log("pass "+JSON.stringify(data,null,2));
});

我已经尝试了几乎所有的方法,已经到了绝望的地步......

我似乎无法查询任何表,但我可以毫无问题地扫描和使用 putItem。我的策略也有查询参数。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "my_Stmt_num",
"Action": [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:UpdateItem"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "",
"Resource": "*",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow"
}
]
}

如果它相关,在我的处理程序 js 文件的顶部,我会像这样获得对 dynamo 的引用:

var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();

我的整个应用程序是“新的”,这意味着 2015 年 2 月之前不存在任何内容,因此我认为使用旧版 api 没有任何意义,正如文档所说。

最佳答案

听起来您与文档客户端关联的 AWS SDK 可能已过时,并且不支持新的 KeyConditionExpression 功能。您可以尝试重新安装您的AWS SDK和文档SDK吗?如果重新安装后仍然存在问题,请附上您正在安装的版本。

关于node.js - KeyConditionExpression 错误和空错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31709257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com