【发布时间】:2019-10-13 06:18:40
【问题描述】:
我正在编写一个简单的 lambda 代码来向 mysql 表 (rds) 插入一些值,但我不知道它为什么不起作用。在重复尝试后有时它会起作用,随后的尝试再次停止工作
每次失败(不插入表格)我都会得到以下响应
Response:
null
Request ID:
"6814c4b8-65c5-4401-b7c1-ae06426f186c"
Function Logs:
START RequestId: 6814c4b8-65c5-4401-b7c1-ae06426f186c Version: $LATEST
END RequestId: 6814c4b8-65c5-4401-b7c1-ae06426f186c
REPORT RequestId: 6814c4b8-65c5-4401-b7c1-ae06426f186c Duration: 317.80 ms Billed Duration: 400 ms Memory Size: 128 MB Max Memory Used: 75 MB
我插入数据或查询数据的代码很简单
const mysql = require('mysql');
const con = mysql.createConnection({
host : process.env.RDS_HOSTNAME,
user : process.env.RDS_USERNAME,
password : process.env.RDS_PASSWORD,
port : process.env.RDS_PORT,
database : process.env.RDS_DATABASE
});
exports.handler = (event, context, callback) => {
// allows for using callbacks as finish/error-handlers
context.callbackWaitsForEmptyEventLoop = false;
const sql = "INSERT INTO MESSAGE (message) VALUES ('I am MySQL')";
con.query(sql, (err, res) => {
if (err) {
throw err
}
callback(null, '1 records inserted.');
})
};
我已经仔细检查了安全组设置,它似乎是正确的
我一直在说
``
关于什么是错的或我应该检查什么的任何指针?
P.S:在 100 次尝试后的一天内,我成功地插入了 3 行具有相同代码和设置的行。
【问题讨论】:
-
您在日志中发现了什么?
-
您的 lambda 处理程序在查询可以运行之前退出,因为查询是异步的...看看上面链接的其他 Q...我认为使用
util.promisify和async/@ 987654327@ 关键字应该可以帮助您假设您使用的是最新版本的节点
标签: mysql node.js amazon-web-services aws-lambda