如何在Node.js 8.10v中将参数传递给事件对象AWS Lambda函数

Sag*_*ane 1 node.js aws-lambda

我在该项目上工作,我们正在创建一个无服务器架构来处理计算任务。如何在AWS Lambda函数中将参数传递给事件对象。

有任何参考链接,如有建议。

index.js-lambda的处理函数

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);
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

ami*_*ttn 6

如果您使用的是API Gateway,则在方法执行图上单击“集成响应”(集成类型Lambda函数),然后在该Body mapping template字段下有一个字段,您可以在其中添加application/jsontxt/xml输入,然后手动输入映射,例如,在本例中,我们使用应用程序/ json

{ "abc" : $input.params('$def') } 因此abc可以在您的lambda函数中进行访问,并且def可以url在调用API网关时传递给

截至目前,您可以使用lambda代理集成,然后无需提供此映射,但仍然可以访问参数 aws docs