0
調用aws lamda函數我試圖根據電子郵件觸發器調用aws lamda函數。我收到了電子郵件觸發器,它觸發了我期望的if語句,但是它不能執行lambda.invoke。如何從另一個
我失蹤了什麼?我得到大部分的日誌報表,但似乎並沒有
exports.handler = function(event, context) {
var aws = require('aws-sdk');
var lambda = new aws.Lambda({
region: 'us-east-1'
});
var sesNotification = event.Records[0].ses;
//console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
var sub=sesNotification.mail.commonHeaders.subject;
if(sub){
if(sub.toLowerCase()=="startpipeline"){
console.log("Starting Pipeline");
lambda.invoke({
FunctionName: 'StartDevOpsServers',
Payload: JSON.stringify(event, null, 2), // pass params
InvocationType: 'Event'
}, function(error, data) {
if (error) {
console.log("error",error,data);
context.done('error', error);
}
if(data.Payload){
console.log("succeed",data.Payload);
context.succeed(data.Payload)
}
});
}else if(sub.toLowerCase()=="stoppipeline"){
console.log("Stopping Pipeline");
lambda.invoke({
FunctionName: 'StopDevOpsServers',
Payload: JSON.stringify(event, null, 2) // pass params
}, function(error, data) {
if (error) {
context.done('error', error);
}
if(data.Payload){
context.succeed(data.Payload)
}
});
context.succeed();
}else{
console.log('subjectnotRecognized')
}
}else{
console.log("noSubJect")
}
};
這篇文章可能會有所幫助[https://stackoverflow.com/questions/31714788/can-an-aws-lambda-function-call-another](https://stackoverflow。 com/questions/31714788/can-an-aws-lambda-function-call-another) – KKK
您是否碰巧將您的Lambda函數放入您的VPC中?如果是這樣,您需要一個NAT網關才能讓Lambda函數訪問AWS API(以便調用其他函數)。或者只是從VPC中刪除它。如果那不是,那就試着發佈完整的日誌。 –