如何在lambda.invoke中触发错误对象

时间:2018-08-20 23:38:16

标签: javascript node.js amazon-web-services aws-lambda

我如何在lambda.invoke中触发错误对象

lambda.invoke(params, (err, data) => {
  if (err) {
    reject(.... // I would have expected below error to show up here
  else
    // error shows up inside the data.Payload
    const result = data.Payload
    // I have to create a condition to check for the error
    resolve(result);

在称为lambda中,我尝试了以下操作:

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

  if (payload === '')
    context.done(new Error('my error message');

}

但是,错误对象最终出现在有效负载中,在这里我必须检查它而不是进入catch或其他错误路径。

1 个答案:

答案 0 :(得分:1)

应该使用callback(error, [success])方法,而不是使用“较旧的方法”来停止执行。因此,在调用您的lambda时,请尝试callback('my error message'),它应该放入if块中。您可以阅读文档here了解更多信息。我认为,以“较旧的方式”处理context.done()被认为是成功的,并且context.fail()被用来表示错误。