我在让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模块包含所需的依赖项
把它们压缩在一起,它应该会起作用!
来源