node.js – 从Lambda函数(Node)连接到MySQL数据库

前端之家收集整理的这篇文章主要介绍了node.js – 从Lambda函数(Node)连接到MySQL数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法使用Lambda函数中的Node连接到 MySQL数据库.我收到的错误是任务在4.00秒后超时.

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

以下是我的州概况:

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

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);
    });

};

解决方法

将超时时间增加到一分钟.这可能是由于lambda函数冷启动.

只有您的第一个呼叫需要花费时间,连续呼叫应该非常快,因为您正在重复使用相同的连接.

此外,通过更高的超时,并不意味着您将被收取超时费用,您将只收取Lambda运行时的费用.

另外,为了加快冷启动时间,您可以将脚本包装好,

http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/webpack.html

还有一个问题被注意到,

var MysqL = require('MysqL');

var connection = MysqL.createConnection({
    host     : 'amazon-string.rds.amazonaws.com',context) => {

    connection.query("SELECT * FROM table",fields) {
        console.log("rows: " + rows);
        context.succeed('Success');
    });

};

希望能帮助到你.

猜你在找的Node.js相关文章