借助我的Lambda函数和AWS上的API网关,我无法在我的DynamoDB表中存储JSON文件。我按下HTML网站上的按钮后会执行以下代码:
$('#submit').on('click', function(){
var example = {"number":"121212"};
$.ajax({
type: 'POST',
url: API_URL,
data: JSON.stringify(example),
contentType: "application/json",
success: function(data){
location.reload();
}
});
return false;
});
当按下网站重新加载时,我假设功能已成功执行。但是我的问题是数据在lambda函数中没有以正确的格式到达,因此没有正确执行。在检查CloudWatch时,它显示为{number:' 121212'而不是{"数字":" 121212"}。知道我怎么能确保价值到达'我的Lambda函数中有一个有效的JSON格式吗?
这是我的Lambda函数:
exports.handler = function index(e, ctx, callback) {
var params = {
Item: { number: e.number },
TableName: 'collectionOfNumbers'
};
docCLient.put(params, function(err, data) {
if (err) {
callback(err, null);
} else {
callback(null, data);
}
});
}
答案 0 :(得分:0)
如果我正确读取此权利,则e.number是JSON参数'数字'的值。你传入的,例如' 121212&#39 ;.我使用了docClient的putItem作为假设。
我认为您的Item参数应如下所示:
Item: {"number": {N: e.number}}
有关PutItem https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
的信息,请参阅AWS文档