我正在尝试从我的 DynamoDB 数据库中获取一个项目。我的代码目前编写的方式,我无法从 DynamoDB 检索任何数据。我一定是做错了什么,因为据我的测试可以看出,我的回调没有被调用。
我昨天花了一整天的时间,自从我今天早上醒来以来一直在修补它,但没有成功。
如果有人可以深入了解我在这里做错了什么,我将不胜感激。提前感谢大家!
最后说明:Lambda 函数本身的超时设置为 5 分钟。所以我认为 Lambda 函数不会在数据库查询返回之前超时。当我运行该功能时,它会在片刻后退出。
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();
var response = null;
var test = false;
function getFromDB(callback) {
const params = {
TableName: process.env['DB_TABLE_NAME'] // evaluates to 'test-table',
Key: {
"id": {
S: postId // evaluates to a big string, pulling it in from an SNS message. Verified it with console.log(). It stores the expected value.
}
}
};
dynamodb.getItem(params, function(err, data) {
if (err) callback(data, true); // an error occurred
else callback(data, true); // successful response
});
}
getFromDB((data, isCalled) => {
response = data;
test = isCalled;
});
console.log(data); // evaluates to null
console.log(test); // evaluates to false