デフォルトでは、JavaScript は非同期です。
したがって、あなたがしなければならないことはすべて、それらのライブラリを使用することではなく、使用できますが、これを解決する簡単な方法があります。このコードでは、イベントからのデータを含むメールを送信しましたが、必要に応じて、関数内にさらに関数を追加する必要があります。
重要なのは、 context.done(); の場所です。彼はあなたの Lambda 関数を終了させようとしています。彼を最後の関数の最後に配置する必要があります。
var AWS = require('aws-sdk');
AWS.config.credentials = { "accessKeyId": "AAAA","secretAccessKey": "BBBB"};
AWS.config.region = 'us-east-1';
var ses = new AWS.SES({apiVersion: '2010-12-01'});
exports.handler = function(event, context) {
console.log(event.nome);
console.log(event.email);
console.log(event.mensagem);
nome = event.nome;
email = event.email;
mensagem = event.mensagem;
var to = ['email@company.com.br'];
var from = 'site@company.com.br';
// Send email
mensagem = ""+nome+"||"+email+"||"+mensagem+"";
console.log(mensagem);
ses.sendEmail( {
Source: from,
Destination: { ToAddresses: to },
Message: {
Subject: {
Data: 'Form contact our Site'
},
Body: {
Text: {
Data: mensagem,
}
}
}
},
function(err, data) {
if (err) {
console.log("ERROR="+err, err.stack);
context.done();
} else {
console.log("EMAIL SENT="+data);
context.done();
}
});
}