使用 lambda 函数将数据库抓取为 JSON

Grabbing a database as JSON using a lambda function

我正在使用 dynamo-db 扫描来获取 table 格式的数据库 JSON,但它似乎无法正常工作

var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();

exports.handler = function(event, context) {

dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
    console.log('this doesnt print');
    if (err) console.log(err, err.stack)
    else console.log(data);
});
context.succeed('ding');

我根本不相信它正在进入回调函数,因为'this doesnt print'不打印。有任何想法吗?谢谢 :)

您在 DynamoDB 调用完成之前调用 context.succeed()。您需要了解异步调用在 NodeJS 中的工作方式。尝试这样的事情:

var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();

exports.handler = function(event, context) {

dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
    console.log('this doesnt print');
    if (err) {
      console.log(err, err.stack)
      context.fail(err);
    }
    else {
      console.log(data);
      context.succeed('ding');
    }
});