让我说我有这个lambda函数:
exports.handler = (event, context, callback) => {
lambda.invoke({
FunctionName: 'longCheckout',
InvocationType: 'Event',
Payload: JSON.stringify(event, null, 2) // pass params
}, function(error, data) {
console.log(error, data)
callback(null, data);
});
};
,我想调用longCheckout lambda来完成一些工作,然后将响应发送回给正在调用的lambda,然后继续执行更长的请求。因此,我正在调用的lambda函数具有一个回调参数,但是当我调用传入的函数时,调用lambda不会发生任何事情。这就是我要调用的lambda的样子
exports.handler = (event, test, callback) => {
docClient.update(params, function(err, data) {
callback(....)
// continue to execute
})
}
答案 0 :(得分:1)
Lambda可以同步(您使用的默认行为)或异步调用。 如果您选择异步调用,则两个lambda将同时运行,但是您将无法获得任何返回值。
一种可以满足您要求的解决方案是:
docClient.update
并异步调用Lambda 3(然后返回)。阅读this有关异步调用的信息。