【发布时间】:2018-10-04 10:50:35
【问题描述】:
我有一个可公开访问的 AWS RDS,我想使用 AWS Lambda 连接到该 RDS。我正在使用 API Gateway 创建一个名为“/hello”的 Rest API,它需要返回 RDS 连接状态。
Lambda 代码如下。
var mysql = require('mysql');
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
var con = mysql.createConnection({
host: "host",
user: "user",
password: "password"
});
module.exports = api;
api.get('/hello', function () {
//any code written here, works perfectly, when this is called
con.connect(function(err) { //this part doesn't work
if (err) return err;
return "connected";
});
});
该数据库可公开访问,甚至可以从我的本地计算机访问。 Lambda 函数还具有 AWS RDS 所需的权限。
我在浏览器上得到的响应如下
{}
我查看了云观察日志,如下所示。
08:16:11
START RequestId: bf804be1-4797-11e8-8b3f-5b09118631a6 Version: $LATEST
08:16:11
END RequestId: bf804be1-4797-11e8-8b3f-5b09118631a6
08:16:11
REPORT RequestId: bf804be1-4797-11e8-8b3f-5b09118631a6 Duration: 34.28 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 26 MB
Lambda 函数不会超过con.connect(...),在任何地方都没有显示错误(甚至在 RDS 日志上也没有)。 API 网关可以正常工作,因为con.connect(...) 之前的任何代码都可以正常工作。这可能是什么问题?
【问题讨论】:
标签: node.js amazon-web-services aws-lambda rds