Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeEmailr sendingRate在本地工作,但仅在Lambda上发送指定数量的电子邮件_Node.js_Amazon Web Services_Async Await_Aws Lambda_Nodemailer - Fatal编程技术网

Node.js NodeEmailr sendingRate在本地工作,但仅在Lambda上发送指定数量的电子邮件

Node.js NodeEmailr sendingRate在本地工作,但仅在Lambda上发送指定数量的电子邮件,node.js,amazon-web-services,async-await,aws-lambda,nodemailer,Node.js,Amazon Web Services,Async Await,Aws Lambda,Nodemailer,我的运输机设置如下: const ses = new aws.SES(); var transporter = mailer.createTransport({ SES: ses, sendingRate: 25 }); 我有一个sendEmail功能,可设置电子邮件以发送附件: function sendEmail(body, filename, customer_name) { var mailOptions = { from: "test@test.

我的运输机设置如下:

 const ses = new aws.SES();
 var transporter = mailer.createTransport({ 
    SES: ses,
    sendingRate: 25
  });
我有一个sendEmail功能,可设置电子邮件以发送附件:

function sendEmail(body, filename, customer_name) {
  var mailOptions = {
    from: "test@test.com",
    subject: "A test subject - " + customer_name,
    html: '<p>' + customer_name + '</p><br />Please see attached file.',
    to: "testing@testing.com",
    attachments: [
      {
          filename: filename + ".txt",
          content: body.toString()
      }
    ]
  };
  return transporter.sendMail(mailOptions);
};
我的问题是,当我在VS代码中使用无服务器框架在本地调用它时,我的所有电子邮件都会以指定的25/秒的速率运行。当我部署到AWS Lambda时,它只发送25封电子邮件,然后请求结束。在本地,它会将我的SNS主题发送到我的日志消息,但不会发送到Lambda上。每次都会在25点突然结束


在这种情况下,我是否正确使用sendingRate?为什么AWS Lambda会终止请求,而不是本地测试?

我将把它放在这里,以备后人使用,以防其他人遇到这种情况

我将maxConnections设置为1,这解决了我在AWS上的问题

module.exports.publish = async (event, context, callback) => {
...
var promises = data.map(async (i) => {
  ...
  await sendEmail(data, file_prefix, customer_name);
};
await Promise.all(promises).then(() => {
   addMessageToLog('Emails sent successfully');
});
await sendSNS(logger).then(() => {
   if (isError) { callback(errorObj); }
   callback(null, 'Emails successfully sent.');
});