2016-01-17 3 views
1

Я пытаюсь получить доступ к общественному MySQL AWS RDS, она общедоступна, я могу получить доступ к базе данных от JetBrains DataGrip IDE ниже CONFIG с консоли AWS RDS:AWS Lambda - публичный доступ AWS RDS MySQL

RDS Config

При использовании Лямбда-функции AWS ниже (также пробовали без пула и с созданием и окончанием соединений при каждом выполнении), выход не дает мне никаких ошибок. только выход является объектом пула ...

У кого-нибудь еще была аналогичная проблема? Есть ли способ получить дополнительную информацию об ошибках?

Я знаю, что AWS объявила, что они будут добавлять в Lambda RDS-интеграцию для VPS и т. Д., Но до сих пор нет возможности?

var mysql = require('mysql'); 
var pool = mysql.createPool({ 
connectionLimit: 10, 
host: 'test.XXXXXXX.us-east-1.rds.amazonaws.com', 
port: 3306, 
user: 'user', 
password: 'password', 
database: 'theDB' 
}); 

function execute(event, context) { 

console.log(pool); 
pool.getConnection(function (err, connection) { 
    if (err) { 
     console.error('error connecting: ' + err.stack); 
     context.fail(err); 
    } else { 
     console.log('connected as id ' + connection.threadId); 
     console.log("connect to db!!!!"); 

    } 
    console.log(connection); 
    connection.query('SELECT * FROM table', function (err, results, fields) { 
     if (err) { 
      context.fail(err); 
     } else { 
      console.log(results); 
      console.log(fields); 
      console.log("Select Done"); 
     } 
    }); 
    connection.release(); 
}); 

context.done(null, null); 

}; 

exports.handler = execute; 

ответ

1

context.done() должен быть в pool.getConnection(function (err, connection) {...}).

pool.getConnection() - асинхронный метод.

+0

Спасибо, что было. – Brian