我想通过调用API网关(它调用Lambda函数)从数据库(DynamoDB)中获取项目。
如果我在AWS中测试我的lambda函数,则一切正常。在AWS中测试API网关时,我也可以获得数据。
但是,如果我尝试从前端(javascript)调用API,则会收到错误502。
{
"message": "Internal server error"
}
我做了一些研究,认为可能必须是另一个dataType。但是我也尝试只发送一个字符串作为响应,但它不起作用。
这是我的前端代码:
$.ajax({
method: 'GET',
url: API_url,
dataType: "jsonp",
"Content-Type":"application/json",
success: function(data) {
console.log("responseAPI: ", data);
},
error: alert("fail")
});
AWS中的Lambda函数:
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
var params={
TableName: "testTable",
Key: {
"Username": "testUser@test.de"
}
} ;
ddb.get(params, function(err, data) {
if (err) {
callback(err, null)
}
else {
callback(null, "Hello")
}; // successful response
})
};
错误502
{
"message": "Internal server error"
}