相关疑难解决方法(0)

错误:连接ETIMEDOUT rds lambda

我试图使用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)

amazon-rds node.js aws-lambda

12
推荐指数
2
解决办法
9460
查看次数

Node-Mysql抛出连接超时

由于连接超时,我的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 …

javascript mysql amazon-rds node.js node-mysql

7
推荐指数
2
解决办法
2万
查看次数

从Lambda函数(节点)连接到MySQL数据库

我无法使用Lambda函数中的Node连接到MySQL数据库.我收到的错误是Task timed out after 4.00 seconds.

有没有人有任何解决方案?

以下是我的州概况:

  1. AWS RDS数据库是MySQL数据库.它不仅限于VPC(我可以使用MySQLWorkbench的主机/用户/密码进行连接).
  2. 我的Lambda函数的执行角色设置为将Lambda作为可信实体并给予AdministratorAccess.
  3. 在我的本地机器上,我安装了mysql模块,压缩了我的index.js和node_modules文件夹,并上传到我的Lambda函数.
  4. 我已经尝试将createConnection和connect函数放在处理程序中.我已经尝试将我的查询放在连接函数的回调函数中.我已经尝试将超时时间增加到10秒.
  5. 我的代码:

    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)

lambda amazon-web-services node.js aws-lambda

7
推荐指数
2
解决办法
1万
查看次数