Как передать параметр в объект события aws лямбда-функции в nodejs 8.10v - PullRequest
0 голосов
/ 04 сентября 2018

Я работаю над проектом, в котором мы создаем безсерверную архитектуру для задачи обработки дескрипторов. Как передать параметры в объект события в лямбда-функции aws.

Есть ли ссылки, если есть, пожалуйста, предложите.

index.js - функция-обработчик лямбды

exports.handler = (event, context, callback) => {
  context.callbackWaitsForEmptyEventLoop = false;
  const mysql = require("mysql");
  const pool = mysql.createPool({
    host: "test_db.xxxxxxxxxxx.us-east-2.rds.amazonaws.com",
    user: "root",
    password: "xxxxxxxx",
    database: "test_db",
    port: 3306
  });

  pool.getConnection((err, connection) => {
    if (err) throw err;

    // const { fund_name, returns, aum, rating, expense_ratio } = event.body; // BODY PARAMETER REMAINING
    const randomNumber = () => Math.random()*10+1;
    const fund_name = 'example';
    const returns = randomNumber();
    const aum = randomNumber();
    const rating = randomNumber();
    const expense_ratio = randomNumber();

    if (fund_name && returns && aum && rating && expense_ratio) {
      pool.getConnection((err, connection) => {
        if (err) {
          throw err;
        }

        const query = `INSERT INTO mutual_fund_tb(fund_name, returns, aum, rating, expense_ratio) VALUES ('${fund_name}', '${returns}', '${aum}', '${rating}', '${expense_ratio}')`;
        connection.query(query, (err, results, fields) => {
          if (err) {
            throw err;
          }

          if (results.affectedRows === 1) {
            const response = {
              data: {...event.body},
              message: "Data successfully inserted",
              status: "ok"
            };
            callback(null, response);
          } else {
            const response = {
              data: {},
              message: "Data unable to insert into database.",
              status: "failed"
            };
            callback(null, response);
          }
        });
      });
    } else {
      const response = {
        data: {},
        message: "Invalid arguments passed. Please pass valid arguments",
        status: "failed"
      };
      callback(null, response);
    }
  });
};

1 Ответ

0 голосов
/ 04 сентября 2018

Если вы используете API-шлюз, то на диаграмме выполнения метода нажмите на ответ интеграции (лямбда-функция типа интеграции), и в этом поле Body mapping template можно добавить application/json или txt/xml, а затем введите отображение вручную, например, для в нашем случае мы используем application / json

{ "abc" : $input.params('$def') } Таким образом, abc может быть доступно в вашей лямбда-функции, а def может передаваться на url при вызове API Gateway

На данный момент вы можете использовать лямбда-прокси-интеграцию , и тогда вам не нужно предоставлять это сопоставление, и все же вы сможете получить доступ к параметрам Документы AWS

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