Вызовите массив данных из одной лямбда-функции в другую лямбда-функцию - Node.js - PullRequest
0 голосов
/ 04 ноября 2019

Мне нужны лямбда-функции

  1. fruitsData : Здесь я создал массив fruits и вызвал sendMail function.

  2. sendMail : эта функция вызывается из функции fruitsData , принимает массив фруктов, отправляет почту и должна выдатьсообщение об успешном статусе fruitsData

fruitsData

exports.handler = (event, context, callback) => {
    const fruits = ["Banana", "Orange", "Apple", "Mango"];

    var params = {
        FunctionName: 'sendMail',
        InvocationType: 'RequestResponse',
        LogType: 'Tail',
        Payload: fruits
    };

    lambda.invoke(params, function(err, data) {
        if (err) {
            context.fail(err);
        } else {
            context.succeed(data.Payload);
        }
    })
}

sendMail

exports.handler = (event, context, callback) => {
    var sendPromise = ses.sendEmail(params).promise();

    await sendPromise.then(function(data) {
        console.log("Email sent successfully");
        callback(null, "Email sent successfully");
    }).catch(
        function(err) {
            console.error(err, err.stack);
        });
}

Как я могу отправить fruits по электронной почте и сообщение об успехе в fruitsData .

1 Ответ

1 голос
/ 04 ноября 2019

Убедитесь, что ваши лямбды имеют политики AWSLambdaExecute и AWSLambdaBasicExecutionRole.

Лямбда fruitsData :

Измените Payload: fruits на Payload: JSON.stringify({ "fruits" : fruits }).

Лямбда sendMail :

 const charset = 'UTF-8';
 exports.handler = async (event, context, callback) => {
    const message = JSON.stringify(event, null, 2);
    const params = {
       Source: source,
       Destination: {
           ToAddresses: [recipient.email]
       },
       Message: {
           Subject: {
               Data: "Example",
               Charset: charset
           },
           Body: {
               Text: {
                   Data: message,
                   Charset: charset
               },
               Html: {
                   Data: message,
                   Charset: charset
               }
           }
       }
   };
   try {
       await ses.sendEmail(params).promise();
       callback(null, "Email sent successfully");
   }
   catch (ex) {
       console.log('Unhandled Exception', ex);
   }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...