【问题标题】:AWS Lambda - Access Public AWS RDS MySQLAWS Lambda - 访问公共 AWS RDS MySQL
【发布时间】:2016-04-22 12:17:17
【问题描述】:

我正在尝试访问公共 AWS RDS mysql,它是公开可用的,我可以从 JetBrains DataGrip IDE 访问数据库,下面是 AWS RDS 控制台的配置:

当使用下面的 AWS lambda 函数时(也尝试不使用池并在每次执行时创建和结束连接),输出不会给我任何错误。唯一的输出是池对象...

有没有其他人遇到过类似的问题? 有没有办法获取更多的错误信息?

我知道 AWS 已经宣布他们将为 VPS 等添加 Lambda RDS 集成,但在那之前没有选择吗?

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;

【问题讨论】:

    标签: mysql amazon-web-services aws-lambda


    【解决方案1】:

    context.done() 应该在pool.getConnection(function (err, connection) {...}) 中。

    pool.getConnection() 是一个异步方法。

    【讨论】:

    • 谢谢,就是这样。
    猜你喜欢
    • 2019-07-28
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2015-04-09
    • 1970-01-01
    • 2017-09-20
    • 2015-04-17
    相关资源
    最近更新 更多