返回执行Ruby脚本的Lambda函数的结果

时间:2017-09-29 15:10:07

标签: node.js ruby lambda

我跟随了一个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);
}

1 个答案:

答案 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);
}