Con*_*ald 5 amazon-web-services amazon-dynamodb dynamodb-queries
我很困惑为什么我会收到错误。似乎它只是忽略了我传入的项目。我已经尝试了下面的各种组合以及许多其他组合。尝试了 get、delete、put 方法等,但没有成功。
当然,尝试根据方法更改“项目”和“密钥”。不知道出了什么问题。主分区键是“uid”
'table' 是一个带有表名的变量
let params = {
TableName:{"S":table},
Item:{
uid: "2"
}
};
Run Code Online (Sandbox Code Playgroud)
let params = {
TableName: table,
Item:{
uid: "2"
}
};
Run Code Online (Sandbox Code Playgroud)
docClient.query(params, function(err, data) {
这是完整的错误。我认为“M”指的是一个对象,所以不确定为什么它也会出现。
“有 2 个验证错误:* MissingRequiredParameter:>params 中缺少必需的键“TableName”* UnexpectedParameter:在 params 中找到意外的键“M””,“code”:“MultipleValidationErrors”,>“errors”:{“message”: "参数中缺少必需的键 'TableName'","code":"MissingRequiredParameter",time": "2020-05-09T21:51:14.530Z"}, {message": "在参数中发现意外的键 'M'" , "code": "UnexpectedParameter", "time": "2020-05-09T21:51:14.530Z"} ],"time": "2020-05-09T21:51:14.530Z"\"}"
这是 lambda 函数
var AWS = require("aws-sdk");
const docClient = new AWS.DynamoDB.DocumentClient('us-east-1');
exports.handler = async event => {
var tables = ['holdings','trades','userDetails'];
var table = 'userDetails'//tables[2]
var out = ''
var params = {
TableName: table,
Item: {
"uid": 2
}
};
docClient.put(params, function(err, data) {
if (err) {
console.log("Error", err)
} else {
console.log("PutItem succeeded")
}
});
let responseBody = {
message: 'Test',
par: params,
input: out
};
let response = {
statusCode: 200,
headers: {
"x-custom-header" : "Testing delete function"
},
body: JSON.stringify(responseBody)
};
return response
};
Run Code Online (Sandbox Code Playgroud)
小智 0
可能有一些不同的原因导致此问题,这将有助于查看更多代码(例如,当您使用 let 进行参数分配时,可能会出现范围问题)。
但是,有一个示例根据AWS 文档中的代码使用 dynamodb 查询。在您的代码片段中,您似乎还混合了不同的 API 类型,这些类型有不同的要求。
不过,如果您想做一个简单的put 操作(这可能是一个很好的起点);使用您的代码片段您应该能够执行以下操作:
var params = {
TableName: table,
Item: {
"uid": 2
}
};
docClient.put(params, function(err, data) {
if (err) {
console.log("Error", err)
} else {
console.log("PutItem succeeded")
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8236 次 |
| 最近记录: |