首页 > 解决方案 > 没有从 lambda 函数调用 aws ses.sendEmail

问题描述

我用 node.js 编写的 lambda 函数非常简单。当 dynamo db 中出现新条目时调用 Lambda,然后我想遍历每个条目并发送电子邮件。出于某种原因,我不明白为什么 ses.SendEmail 函数从未被调用。我在其中放置了日志,但日志中没有出现任何内容。我只是为了这个问题而混淆了电子邮件(我在aws上使用了实际正确的电子邮件)。

console.log('Loading function');
var aws = require('aws-sdk');
var ses = new aws.SES({region: 'eu-west-2'});
//var nodemailer = require('nodemailer');

exports.handler = async (event, context, callback) => {
    //console.log('Received event:', JSON.stringify(event, null, 2));
    event.Records.forEach((record) => {
        if(record.eventName == 'INSERT')
        {
            console.log(record.eventID);
            console.log(record.eventName);
            console.log('DynamoDB Record: %j', record.dynamodb);
            
            var params = {
            Destination: {
                ToAddresses: ["test@***.com"]
            },
            Message: {
                Body: {
                    Text: { Data: "Test"
                        
                    }
                    
                },
                
                Subject: { Data: "Test Email"
                    
                }
            },
            Source: "info@***.com"
        };
        
        console.log("About to send email");
            ses.sendEmail(params, function (err, data) {
            
            console.log("inside email"); // not logging
            if (err) {
                console.log(err);
                context.fail(err);
            } else {
                
                console.log(data);
                context.succeed(event);
            }
        });
        }
    });
    
    //return `Successfully processed ${event.Records.length} records.`;
    
};

标签: node.jsamazon-web-servicesaws-lambda

解决方案


推荐阅读