我跟随了一个AWS tutorial,它解释了如何构建执行Ruby脚本的Lambda函数。我唯一的困惑是如何从Ruby脚本返回结果作为Lambda函数的结果。
const exec = require('child_process').exec;
exports.handler = function(event, context) {
const child = exec('./lambdaRuby.rb ' + ''' + JSON.stringify(event) + ''', (result) => {
// Resolve with result of process
context.done(result);
});
// Log process stdout and stderr
child.stdout.on('data', console.log);
child.stderr.on('data', console.error);
}
答案 0 :(得分:1)
您引用的教程基于Lambda中旧版本的Node。
如果使用节点6.10,则应将其写为......
const { exec } = require('child_process');
exports.handler = function(event, context, callback) {
const child = exec(`./lambdaRuby.rb '${JSON.stringify(event)}'`, (error, stdout) => {
if (error) return callback(error);
return callback(null, stdout)
});
// Log process stdout and stderr
child.stdout.on('data', console.log);
child.stderr.on('data', console.error);
}