如何将参数传递给事件对象 nodejs 8.10v 中的 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);
}
});
};

如果您使用的是 API 网关,那么在方法执行图上单击集成响应(集成类型 Lambda 函数(,在该字段下我们Body mapping template字段,您可以在其中添加application/jsontxt/xml,然后手动输入映射,例如在我们的例子中我们使用应用程序/JSON

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

到目前为止,您可以使用lambda代理集成,然后您不需要提供此映射,并且仍然可以访问参数 AWS 文档

最新更新