【发布时间】:2021-03-10 16:48:30
【问题描述】:
我创建了一个 lambda 函数来从 sql 表中读取数据、操作数据并调用另一个 lambda 函数将结果通过电子邮件发送给多方。
var aws = require("aws-sdk");
var sql = require("mssql");
var lambda = new aws.Lambda({ region: "eu-central-1" });
exports.handler = async (event, context, callback) => {
let dataQuery = sqlQuery(); /*prepare the query*/
let result = {};
try{
result = await getData(dataQuery); /*fetch data*/
}catch (err){
console.log(err);
throw new Error(err);
}
const data = prepareRes(result.recordsets[0][0])
const emails = processData(JSON.parse(data));
const params ={
FunctionName: "testSesSendEmail",
InvocationType: "Event",
Payload: '<h2>Some Sample</h2>',
LogType : 'None',
};
return emails.map(async email => {
console.log(email.emailAddr) /* everything works fine */
lambda.invoke(params, function(err,data){
console.log('callback entered')
if (err) {console.log(err, err.stack)}
else {
console.log('Lambda function 1 invoked!');
console.log(data);
}
})
})
};
出于测试目的,我已经用虚拟数据填充了有效负载。 子 lambda 似乎没有被调用。我已经设置了必要的 Iam 策略和角色,并将它们附加到父函数。 想不通怎么回事。 感谢您的帮助。
【问题讨论】:
-
您的 lambda 是否在 VPC 内运行?
-
@jellycsc 是的。我已将这两个功能放在同一个 VPC 中,但无济于事
-
好的,当它尝试调用第二个 lambda 时,您的 lambda 超时了吗?
-
不,它没有。但它根本不会在 lambda 回调中记录控制台消息。
-
在你的问题中包含日志输出怎么样?
标签: amazon-web-services aws-lambda