我正在尝试使用Node.js编写Lambda函数,连接到我的RDS数据库。数据库可以在我的Elastic Beanstalk环境中工作和访问。当我运行该函数时,它返回超时错误。
我试图将超时时间增加到5分钟,但结果完全相同。
我经过一些研究得出的结论是,这可能是一个安全性问题,但在Amazon的文档或此答案(这是我在该主题上唯一找到的答案)中找不到解决方案。
以下是安全详细信息:
- RDS和Lambda都在同一安全组中。
- RDS具有所有流入和流出规则。
- Lambda在其角色中具有AmazonVPCFullAccess策略。
我的代码如下:
'use strict';
console.log("Loading getContacts function");
var AWS = require('aws-sdk');
var mysql = require('mysql');
exports.handler = (event, context, callback) => {
var connection = mysql.createConnection({
host : '...',
user : '...',
password : '...',
port : 3306,
database: 'ebdb',
debug : false
});
connection.connect(function(err) {
if (err) callback(null, 'error ' +err);
else callback(null, 'Success');
});
};
我得到的结果是:
"errorMessage": "2017-03-05T05:57:46.851Z 9ae64c49-0168-11e7-b49a-a1e77ae6f56c Task timed out after 10.00 seconds"