Fra*_*usy 6 javascript lambda amazon-web-services node.js
我正在尝试从外部 node.js 应用程序(即不在 AWS 上)调用 lambda 函数。我使用了 AWS 文档中的代码示例,它适用于名义案例。但是,在出现错误的情况下,我的调用函数永远不会正确处理它。
我的调用代码如下:
// AWS.config before
var pullParams = {
FunctionName : 'myFunctionName',
InvocationType : 'RequestResponse',
LogType : 'None',
Payload : JSON.stringify({
"myParam" : params
})
};
var lambda = new AWS.Lambda();
lambda.invoke(pullParams, function(error, data) {
console.log("error value: " + error);
if (error) {
console.log("Error invoking AWS " + error);
// process error
} else {
// process payload
}
});
Run Code Online (Sandbox Code Playgroud)
在我的 lambda 函数中,如果没有提供参数,我会引发错误并提供错误消息
exports.handler = (event, context, callback) => {
var params = event.myParam;
if (!params) {
var error = new Error("Appropriate error message");
callback(error);
// In Node ?8, could also be expressed making handler `async` and `throw`ing here
}
else {
// do normal processing and create payload
callback(null, "Payload");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在invoke
回调中,error
始终为 null(即使 lambda 通过错误代码路径),并且在通过错误代码路径时,则data
包含errorMessage, errorType, stackTrace
键。
我在这里缺少什么?不应该invoke
绑定aws-sdk
populateerror
而不是让我检查data.errorMessage
?!