我试图使用Lambda函数连接到RDS,但我收到一个错误:
var mysql = require('mysql');
exports.handler = function(event, context) {
//Connect to RDS
var connection = mysql.createConnection({
host : 'hostname',
user : 'username',
password : 'password',
database : 'database'
});
connection.connect( function(err)
{
if (err)
{
throw err;
}
else
{
console.log('DB connection establish');
}
});
};
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
START RequestId: 9711e650-e582-11e5-af5f-97ba391a42ae Version: $LATEST
2016-03-08T23:08:06.737Z 9711e650-e582-11e5-af5f-97ba391a42ae
Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (/var/task/node_modules/mysql/lib/Connection.js:412:13)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:92:17)
at Socket._onTimeout (net.js:327:8)
at _makeTimerTimeout (timers.js:429:11)
at Timer.unrefTimeout [as ontimeout] (timers.js:493:5)
--------------------
at …Run Code Online (Sandbox Code Playgroud) 由于连接超时,我的node.js应用程序给出了5xx.这是我连接和查询的方式:
var mysql = require('mysql');
var config = {
host: '172.10.1.1',
port: 3306,
user: 'user',
password: 'pwd',
database: 'mydb',
connectionLimit: 15,
queueLimit: 30
}
var poolCluster = mysql.createPool(config);
var queryDB = function(query, cb) {
poolCluster.getConnection(function(err, connection) {
if(err) {
cb(err, null);
}
else {
connection.query(query, function (err, rows) {
connection.release();
cb(err, rows);
});
}
});
};
Run Code Online (Sandbox Code Playgroud)
此外,在另一个备用版本中,禁用连接池,代码如下所示:
queryDB = function(query, cb) {
var connection = mysql.createConnection(config);
connection.query(query, function(err, rows) {
connection.end();
cb(err, rows);
});
};
Run Code Online (Sandbox Code Playgroud)
但这两个设置都给出了错误:在Connection._handleConnectTimeout连接ETIMEDOUT
可以在此处看到与我当前设置类似的项目:https://github.com/hay-wire/NodeBootstrap/blob/master/models/UsersUtils.js …
我无法使用Lambda函数中的Node连接到MySQL数据库.我收到的错误是Task timed out after 4.00 seconds.
有没有人有任何解决方案?
以下是我的州概况:
我的代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'amazon-string.rds.amazonaws.com',
user : 'myusername',
password : 'mypassword'
});
connection.connect();
exports.handler = (event, context, callback) => {
connection.query("SELECT * FROM table", function(err, rows, fields) {
console.log("rows: " + rows);
callback(null);
});
};
Run Code Online (Sandbox Code Playgroud)