我正在尝试连接到 AWS RDS 数据库,但我似乎无法让我的函数尝试连接。
这是我的功能:
export const connectTest = async (event, context) => {
let mysql = require('mysql');
let connection = mysql.createConnection({
host : process.env.RDS_HOSTNAME,
user : process.env.RDS_USERNAME,
password : process.env.RDS_PASSWORD,
port : process.env.RDS_PORT
});
let result = await connect(connection);
connection.end();
return {
statusCode: 200,
body: JSON.stringify({
message: result
})
};
};
const connect = () => new Promise((resolve, reject) => connection => {
connection.connect(function(err) {
if (err) {
reject(`Error ${err.message}`);
}
resolve('Connected');
});
});
这是我运行以下命令后得到的响应:
Command: serverless invoke local --function connectTest
λ serverless invoke local --function connectTest
Serverless: DOTENV: Loading environment variables from .env:
Serverless: - RDS_HOSTNAME
Serverless: - RDS_USERNAME
Serverless: - RDS_PASSWORD
Serverless: - RDS_PORT
Serverless: Bundling with Webpack...
正如你所看到的脚本刚刚结束,我没有收到任何一条消息。
答案 0 :(得分:0)
如果您想从 Lambda 函数连接到 RDS 实例(我假设这就是无服务器的意思),请在此处查看详细信息:https://docs.aws.amazon.com/lambda/latest/dg/services-rds-tutorial.html
要从代码或在您的开发机器上运行的工具(代码是 Java、JavaScript、Python 等)连接到 RDS,您需要执行以下任务:
有关设置安全组入站规则的信息,请参阅 Controlling Access with Security Groups。