从另一个lambdaasynchronous调用aws lambda

我需要从另一个lambdaasynchronous调用aws lambda。 我有一个同步调用的工作代码。

exports.handler = (event, context, callback) => { var aws = require('aws-sdk'); var lambda = new aws.Lambda({ region: 'myregion' //change to your region }); console.log("lambda invoke started"); lambda.invoke({ FunctionName: 'testLambda', Payload: JSON.stringify(event, null, 2) // pass params }, function (error, data) { if (error) { console.log("error"); callback(null, 'hello world'); } else { console.log("lambda invoke end"); callback(null, 'hello world'); } }); } 

但就我而言,'testLambda'是一个耗时的函数。 因为我需要在调用'testLambda'函数之后退出。 然后代码就像这样更新

 exports.handler = (event, context, callback) => { var aws = require('aws-sdk'); var lambda = new aws.Lambda({ region: 'myregion' //change to your region }); console.log("lambda invoke started"); lambda.invoke({ FunctionName: 'testLambda', Payload: JSON.stringify(event, null, 2) // pass params }); console.log("lambda invoke end"); callback(null, 'hello world'); } 

它会正确返回消息。 但是我的'testLambda'函数没有被调用(没有为testinglambda生成云监视日志)。 这个代码有什么问题。

如果您花时间阅读文档 ,则会看到默认情况下使用RequestResponse调用types调用Lambda函数。 要asynchronous调用函数,您需要指定Event调用types,如下所示:

 lambda.invoke({ FunctionName: 'testLambda', InvocationType: 'Event', Payload: JSON.stringify(event, null, 2) },function(err,data){});