gpt4 book ai didi

mysql - 与 mysql 的连接在本地工作正常,但不能作为 AWS lambda 函数

转载 作者:行者123 更新时间:2023-11-29 09:38:35 43 4
gpt4 key购买 nike

我创建了一个简单的 mySQL 数据库,并尝试通过 AWS Lambda 函数访问其中的数据。

这是在本地运行良好的代码版本:

var mysql = require('mysql');
var config = require('./config.json');
var pool = mysql.createPool({
host : config.dbhost,
user : config.dbuser,
password : config.dbpassword,
database : config.dbname
});


pool.getConnection(function(err, connection) {
// Use the connection
connection.query("SELECT username FROM ClimbingDB.users WHERE email = 'testemail1'", function (error, results, fields) {
// And done with the connection.
connection.release();
// Handle error after the release.
if (error) throw error;
console.log(results);

process.exit();
});
});

这是转换为与 AWS Lambda 一起使用的代码:

var mysql = require('mysql');
var config = require('./config.json');
var pool = mysql.createPool({
host : config.dbhost,
user : config.dbuser,
password : config.dbpassword,
database : config.dbname
});


exports.handler = (event, context, callback) => {
//prevent timeout from waiting event loop
context.callbackWaitsForEmptyEventLoop = false;
pool.getConnection(function(err, connection) {
if (err) return callback(err)
// Use the connection
connection.query("SELECT username FROM ClimbingDB.users WHERE email = 'testemail1'", function (error, results, fields) {
// And done with the connection.
connection.release();
// Handle error after the release.
if (error) return callback(error);
else return callback(null,results);
});
});
};

超时并显示以下错误消息:{ "errorMessage": "2019-07-19T17:49:04.110Z 2f3e208c-62a6-4e90-b8ec-29398780a2a6 任务在 3.00 秒后超时"}

我不知道为什么它似乎无法连接。我尝试将该函数添加到一个 vpc 和一个有权访问 RDB 的安全组,但两者都没有执行任何操作。我不确定我在这里做错了什么。

最佳答案

您将需要:

  • 与 AWS Lambda 函数位于同一 VPC 的 Amazon RDS 实例
  • Lambda 函数上的安全组 (Lambda-SG)
  • RDS 实例上的安全组 (DB-SG),允许端口 3306 上来自 Lambda-SG 的入站连接

也就是说,DB-SG 应专门引用 Lambda-SG(它将变成格式为 sg-1234 的安全组 ID >).

您可能还想增加 Lambda 函数的超时时间,以使其有更多的运行时间。

关于mysql - 与 mysql 的连接在本地工作正常,但不能作为 AWS lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117493/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com