mysql - AWS Lambda + Nodejs + MySQL

标签 mysql node.js amazon-web-services aws-lambda

我正在编写一个简单的 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.');
  })
};

我仔细检查了安全组设置,它似乎是正确的

我一直在提到

`` https://medium.com/@hk_it_er/create-lambda-and-api-gateway-nodejs-aws-serverless-to-rds-mysql-6a75243e61cc

``

有什么问题或我应该检查什么的指示吗?

P.S:在 100 次尝试后的一天内,我成功插入了具有相同代码和设置的 3 行。

最佳答案

问题出在 Node v 10 上。我切换到 Node 8,它似乎可以轻松工作。猜测 Node 10 进行了一些异步调用。

关于mysql - AWS Lambda + Nodejs + MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330022/

相关文章:

mysql - SQL 选择上个月的数据

javascript - 有没有办法在 android webview 应用程序中使用表情符号?

amazon-web-services - 我能否判断 Amazon SQS 消息是否仍在传输中?

javascript - 尝试通过 Node.js 使用 Firebase 发送通知时出现 ReferenceError

amazon-web-services - 在 Elasticache (Redis) 中分区数据的正确方法

python - AWS SAM 中的 event.json 是什么?

mysql - 为什么这个 CASE 运算符不工作?

mysql - LIMIT 显示不同的表字段

node.js - Docker - 构建失败,操作系统不受支持,命令 '/bin/sh -c npm install' 返回非零代码

javascript - 如何从具有多个源文件的 gulp 任务一次返回所有流?