我正在尝试使用连接到RDS数据库的Node.js编写Lambda函数。该数据库正在运行,并且可以从我的Elastic Beanstalk环境访问。当我运行该函数时,它将返回超时错误。
尝试将超时延长到5分钟,结果完全相同。
经过一些研究,我得出的结论是,这可能是一个安全问题,但无法在Amazon文档或此答案中找到解决方案(这是我只能在该主题上找到的解决方案)。
以下是安全性详细信息:
我的代码是:
'use strict'; console.log("Loading getContacts function"); var AWS = require('aws-sdk'); var mysql = require('mysql'); exports.handler = (event, context, callback) => { var connection = mysql.createConnection({ host : '...', user : '...', password : '...', port : 3306, database: 'ebdb', debug : false }); connection.connect(function(err) { if (err) callback(null, 'error ' +err); else callback(null, 'Success'); }); };
我得到的结果是:
"errorMessage": "2017-03-05T05:57:46.851Z 9ae64c49-0168-11e7-b49a-a1e77ae6f56c Task timed out after 10.00 seconds"
我要感谢所有提供帮助的人,这个问题原来与我想像的不同。该callback代码不会因为即使是在亚马逊自己的默认采样某些原因。
callback
工作代码如下所示:
'use strict'; console.log("Loading getContacts function"); var AWS = require('aws-sdk'); var mysql = require('mysql'); exports.handler = (event, context) => { var connection = mysql.createConnection({ host : '...', user : '...', password : '...', port : 3306, database: 'ebdb', debug : false }); connection.connect(function(err) { if (err) context.fail(); else context.succeed('Success'); }); };