我有一个HTTP GET事件lambda函数(LA),该函数在内部调用另一个lambda(LB)。
LA lambda的代码
const AWS = require("aws-sdk");
let lambda = new AWS.Lambda();
export function main(event, context, callback) {
var params = {
FunctionName: "app-dev-lb",
InvocationType: "RequestResponse",
LogType: "Tail",
Payload: JSON.stringify("abc")
};
lambda.invoke(params, function(err, data) {
if (err) {
callback(null, failure(err));
} else {
callback(null, success(data.Payload));
}
});
}
LB lambda的代码
export async function main(event, context, callback) {
callback(null, success({ name: "Abhi" }));
}
上面用于LA和LB lambda的代码可以正常工作,并在响应正文中使用{ name: "Abhi" }
给出响应200。
但是,只要我在LA lambda函数中添加async
,它就会为响应502提供响应主体{message: 'Internal Server Error'}
。
LA函数更新为
export async function main(event, context, callback) {
答案 0 :(得分:0)
尝试不使用回调并直接返回。
exports.handler = async(event, context) => {
lambda.invoke = util.promisify(lambda.invoke);
return await lambda.invoke({
FunctionName: 'yourLambda',
Payload: yourPayload
});
};