【发布时间】:2019-12-04 02:05:55
【问题描述】:
我正在尝试从我拥有的另一个函数中调用一个 Lambda 函数。我设置了我的权限,所以这不是问题。
我的问题是该函数不会一直等待 Invoke 函数完成并返回 NULL。
这是我正在使用的代码:
const AWS = require('aws-sdk');
exports.handler = async (event, context, callback) => {
var lambda = new AWS.Lambda({region: 'us-east-1', apiVersion: '2015-03-31'});
var params = {
FunctionName: 'testFunction',
InvocationType: 'RequestResponse'
}
lambda.invoke(params, function(err, data){
console.log(err);
console.log('here');
}).promise().then(data=> { callback(null, {message:'done'}); });
};
{message:'done'} 从未显示。我被推荐使用 invokeAsync 但该功能已被 AWS 弃用。
我知道问题在于该函数正在同步运行 lambda.invoke,因为如果我在 lambda.invoke 函数之外添加callback(null, {message:'done'});,那么我可以看到 console.logs 正在工作。
有什么帮助吗?
【问题讨论】:
标签: aws-lambda