aws-lambda-nodejs:如何使用回调函数返回我在aws-console中打印的值?

时间:2016-12-30 09:30:59

标签: node.js callback return-value aws-lambda

这是在aws lambda函数中运行的代码。

C:\Users\MUB\AppData\Roaming\npm

现在我确实收到了要在控制台中打印的消息。但我想使用exports.handler中的回调函数显示在控制台中打印的相同消息。

我尝试在exports.handler中使用各种方法使用回调函数,但我总是得到null。我知道在节点js脚本中所有的函数调用都是异步的,所以如何从任何函数返回一个值并在exports.handler中回调相同的函数,即在执行结果中显示相同的值。

2 个答案:

答案 0 :(得分:9)

这是lambda的旧版本,即Node.js运行时v0.10.42。新的AWS版本回调有两个参数,即Node.js runtime v4.3或v6.10

  

回调(response_error,response_success)

module.exports.publisher = (event, context, callback) => 
{
   callback(response_error, response_success)
}

我倾向于传递状态代码,以防我想在工作完成后使用结果:

const response_success = {
      statusCode: 200,
      body: JSON.stringify({
        message: 'ok'
      }),
};

const response_error = {
    statusCode: 400,
    body: JSON.stringify({
        message: 'error'
    }),
};

if (error) {
   callback(response_error)
} else {
   callback(undefined, response_success)
}

参考:http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html

答案 1 :(得分:5)

你应该调用callback函数本身 - 作为参数传递给exports.handler

E.g:

exports.handler = (event, context, callback) => {
      mqfunc1(callback);
};

var mqfunc1 = function(callback) {
    callback({'result': 'success'});
};