Функция Lambda NodeJS не запускается при запуске с веб-сайта, но отлично работает в консоли - PullRequest
0 голосов
/ 12 февраля 2019

Это моя первая попытка создания лямбда-функции с использованием NodeJS.Правильное поведение - сначала отправить электронную почту, а затем открыть страницу Contact_Success.html.

Функция не отправляет электронную почту, когда она вызывается через API-шлюз с моего веб-сайта, но она открывает страницу Contact_Success.html.

При тестировании внутри консоли AWS с помощью теста API Gateway или консоли Lambda Dev отправляются электронные письма do .

Вот код:

const AWS = require('aws-sdk');
const querystring = require('querystring');
AWS.config.region = 'us-east-1';

exports.handler = function(evt, context, callback) {
    // Our raw request body will be in evt.body.
    const params = querystring.parse(evt.body);

    // Our field from the request.
    const first_name = params['first_name'];
    const last_name = params['last_name'];
    const emailaddr = params['email'];
    const telephone = params['telephone'];
    const comments = params['comments'];

    var eParams = {
        Destination: {
            ToAddresses: ["blahblah@blahblah.com"]
        },
        Message: {
            Body: {
                Text: {
                  //  Data: first_name 
                  Data: first_name + " " + last_name + " at " + emailaddr + " phone:" + telephone + " post:" + comments
                }
            },
            Subject: {
                Data: "BlaBlah Inquirty"
            }
        },
        Source: ‘blahblah@blahblah.com'
    };


      // Create the promise and SES service object
  const sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
    .sendEmail(eParams)
    .promise();

  // Handle promise's fulfilled/rejected states
  sendPromise
    .then(data => {
      console.log(data.MessageId);
    // Generate HTML.
      const html = `<script type="text/javascript">window.location = "http://blahblah.com/Contact_Success.html"</script>`;
    // Return HTML as the result.
     callback(null, html);
     context.done(null, "Success");
    })
    .catch(err => {
      console.error(err, err.stack);
    // Generate HTML.
      const html = `<script type="text/javascript">window.location = "http://blahblah.com/Contact_Error.html"</script>`;
    // Return HTML as the result.
      callback(null, html);
      context.done(null, "Failed");
    });
};

1 Ответ

0 голосов
/ 12 февраля 2019

Я бы начал отлаживать это, посмотрев логи в cloudWatch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...