[英]dynamodb scan method returning null
下面是我试图通过将“type”属性传递为“all”来测试的代码。 但是,返回的数据为空。 设置为此 lambda 的角色也被授予对 DB 的适当访问权限。 表中也有数据。
const AWS = require('aws-sdk'); const dynamodb = new AWS.DynamoDB({ region: 'us-east-2', apiVersion: '2012-08-10' }); exports.handler = async (event, context, callback) => { // TODO implement const type = event.type; if(type === "all"){ const params = { TableName: 'compare-yourself' }; dynamodb.scan(params, function(err, data){ if(err){ console.log(err); callback(err); } else { console.log(data); console.log(type); callback(null, data); } }); } else if(type === "single") { console.log(type); callback(null, "Just my Data"); } else { callback(null, "Hello from Lambda;"); } };
我添加了一个针对扫描功能的 promise resolve rejection,它总是以null
解决。 当我删除它时,它工作正常。
这个问题很老,但我认得代码。 它来自 Maximilian Schwarzmüller 在 AWS 上的 Udemy 课程。
如果你带着同样的问题来到这里,要在今天的课程中实现 DynamoDB 扫描功能,使用较新版本的 nodejs,使用 promise 并将 dynamodb.scan 放在 try catch 中。 此代码位于该课程的问答部分,标题为“我无法获取数据”。
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({ region: 'us-east-2', apiVersion: '2012-08-10' });
exports.handler = async (event, context, callback) => {
const type = event.type;
if (type === 'all') {
const params = {
TableName: 'compare-yourself'
}
try {
const data = await dynamodb.scan(params).promise()
callback(null, data)
} catch(err) {
callback(err);
}
} else if (type === 'single') {
callback(null, 'Just my data');
} else {
callback(null, 'Hello from Lambda');
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.