首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Node.js Lambda函数与RDS MySQL实例进行交互?

如何使用Node.js Lambda函数与RDS MySQL实例进行交互?
EN

Stack Overflow用户
提问于 2018-06-12 05:31:12
回答 2查看 1.8K关注 0票数 1

我正在尝试通过amazon Lambda访问amazon RDS上托管的MySQL数据库。我有.js文件,我可以通过cmd线在windows上运行,但当我传输到Lambda时,我无法连接到数据库。我对这个问题进行了彻底的研究,甚至在遵循这个指南之后:Redstapler AWS,我收到了一条“进程在完成请求前退出”的错误消息。

我的代码,从上面的教程复制

代码语言:javascript
复制
var mysql = require('mysql');

var pool = mysql.createPool({
host: "",
user: "",
password: "",
database: ""
});
exports.handler = (event,context,callback) => {
context.callbackWaitFOrEmptyEventLoop = false;
    pool.getConnection(function(err,connection){
    if (err) throw err;
    connection.query("SELECT * FROM testdata limit 10", 
        function(error,result,fields){
        connection.release();
        if (error) callback(error)
        else callback(null,result)   
        });
    });
};

从Amazon Lambda收到的错误消息

响应:{ "errorMessage":"RequestId: b5151db1-6db8-11e8-8004-1b9e8072561c进程未完成请求退出“}请求ID:" b5151db1-6db8-11e8-8004-1b9e8072561c”函数日志:启动RequestId: b5151db1-6db8-11e8-8004-1b9e8072561c版本:$LATEST 2018-06-11T20:48:01.478Z b5151db1-6db8-11e8-8004-1b9e8072561c错误:握手时握手不活动超时。(/var/task/node_modules/mysql/lib/protocol/Protocol.js:164:17) at emitNone (events.js:86:13) at Handshake.emit (events.js:185:7) at Handshake._onTimeout (/var/task/node_modules/mysql/lib/protocol/sequences/Sequence.js:129:8) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) atTimer.listOnTimeout (timers.js:214:5) - at Protocol._enqueue Timer.listOnTimeout at Protocol.handshake (/var/task/node_modules/mysql/lib/protocol/Protocol.js:145:48) at PoolConnection.connect (/var/Protocol._enqueue/Protocol.handshake_(/var/task/node_modules/mysql/lib/protocol/Protocol.js:145:48)/mysql/lib/Connection.js:130:18) at Pool.getConnection (/var/task/node_modules/mysql/lib/Pool.js:48:16) at exports.handler (/var/RequestId/main.js:11:6)结束任务: b5151db1-6db8-11e8-8004-1b9e8072561c报告RequestId: b5151db1-6db8-11e8-11e8-8004-1b9e8072561c持续时间: 10074.63毫秒计费持续时间: 10100毫秒内存大小: 1280 MB最大内存使用量: 27 MB

RequestId: b5151db1-6db8-11e8-8004-1b9e8072561c进程在完成请求前退出

这篇教程评价很高,看起来很有声望,但我无法复制它的成功。这个错误似乎意味着connection.release位于错误的位置,或者我需要另一种方法来结束连接并将其返回到池中。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50806322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档