我如何在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或其他错误路径。
答案 0 :(得分:1)
应该使用callback(error, [success])
方法,而不是使用“较旧的方法”来停止执行。因此,在调用您的lambda时,请尝试callback('my error message')
,它应该放入if块中。您可以阅读文档here了解更多信息。我认为,以“较旧的方式”处理context.done()
被认为是成功的,并且context.fail()
被用来表示错误。