亚马逊网络服务-AWS Lambda w/Node.js依赖项



我在让Node.js Lambda脚本工作时遇到了不少麻烦。我已经将其缩小到脚本需要两个Nodes.js模块(request和mongojs)这一事实。

var request = require('request'),
mongojs = require('mongojs'),
db = mongojs('CONNECTION_STRING_HERE', ['events']);
exports.handler = function(event, context) {
    var data = event.Records[0].kinesis.data,
        body = new Buffer(data, 'base64').toString('utf-8');
    db.events.insert({
        event_id: '00030050-0000-1000-8000-30f9ed09e058',
        type: {
        primary: 'CameraDiscovery',
        secondary: 'Probe'
    },
    source: {
        source_id: '40:16:7e:68:8b:5c',
        type: 'ENVR'
    },
    payload: body,
       created_at: new Date(),
       last_modified: new Date()
    }, function(err, doc) {
    if (err) return context.fail(err);
    context.succeed('Processed Event');
});
};

如何确保编译依赖项以便代码能够执行?

您必须创建一个部署包,其中包括:

  • 您的脚本
  • node_modules模块包含所需的依赖项

把它们压缩在一起,它应该会起作用!

来源

最新更新