我正试图通过Amazon Lambda访问托管在Amazon RDS上的MySQL数据库。我有. js文件,我可以通过windows上的cmd行运行,但是当我传输到Lambda时,我无法连接到数据库。我彻底研究了这个问题,甚至在遵循本指南之后:红钉AWS,我收到了“完成请求前退出进程”错误消息。
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-b9e80 72561C”功能日志:START RequestId:b5151db2-6db8-11e8-8004-1b 9e80 72 561c版本:$LATEST 2018-06-11T20:48:01.478Z b51db1-6 db8-11e 8-8004-1e9 e80 72 56 1c错误:握手时握手不活动超时例如。(/var/task/node_modules/mysql/lib/protocol/protocol.js:164:17)在握手时emitNone(events.js:86:13)。握手时发出(events.js:185:7)_onTimeout(timers.js:386:14),tryOnTimeout(timers.js:250:5)。listOnTimeout(timers.js:214:5)---------------------在协议中_在协议处排队(/var/task/node_modules/mysql/lib/protocol/protocol.js:145:48)。PoolConnection的握手(/var/task/node_modules/mysql/lib/protocol/protocol.js:52:23)。连接(/var/task/node_modules/mysql/lib/Connection.js:130:18)。导出时的getConnection(/var/task/node_modules/mysql/lib/Pool.js:48:16)。handler(/var/task/main.js:11:6)END RequestId:b5151db1-6db8-11e8-8004-1b9e8072561c REPORT RequestId:b5151db2-6db8-11e 8-8004-1b 9e8072 561c持续时间:10074.63 ms计费持续时间:10100 ms内存大小:1280 MB最大使用内存:27 MB
RequestId:b5151db1-6db8-11e8-8004-b9e80 72561C进程在完成请求之前退出
本教程评分很高,看起来很有名气,但我无法复制它的成功。这个错误似乎暗示了连接。release位于错误的位置,或者我需要有另一种方法终止连接并将其返回池。
类似问题:更新:AWS Lambda无法连接到MySQL
通过控制台日志语句了解您是否能够连接到RDS。
...
connection.release();
console.log(result);
if (error) callback(error)
...
一定要打电话给游泳池。end(),然后调用回调函数,否则lambda函数的执行将无法正常退出,因此将出现超时错误。
检查 RDS 实例安全组是否允许从 lambda IP 地址范围 (https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html) 进行访问,或者将 lambda 放置在可从中访问 RDS 实例的 VPC 中。默认情况下,lambda 不在 VPC 中...
我正在尝试使用用户池注册一个用户,并且已经使用并修改了lambda中示例中的代码。 我以正常方式引用AWS: 并尝试引用现有用户池: 但我得到了以下错误: TypeError: AWS. Cognito标识服务提供商。CognitoUserpool不是一个函数 我是否使用了错误的SDK?设置页面解释了aws cognito sdk是如何运行的。js是完整SDK的变体,但只引用Cognito标识服务
问题内容: 嗨,我正在使用elasticsearchSpring数据。我项目的领域结构不断变化,因此我必须删除索引才能每次更改映射。为了克服这个问题,我使用了别名。我使用以下方法创建了别名: 我有一个测试课: TestRepository类: 我的问题是如何从别名而不是索引本身读取?是否对别名也进行写操作。我看过以下链接:https : //www.elastic.co/guide/en/elas
本文向大家介绍python使用flask与js进行前后台交互的例子,包括了python使用flask与js进行前后台交互的例子的使用技巧和注意事项,需要的朋友参考一下 flask与js进行前后台交互代码如下,后台给前端发数据: python部分: js部分: 以上这篇python使用flask与js进行前后台交互的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程
问题内容: 我对swig中的typemap和如何使用数组感到迷茫。我准备了一个使用swig在java和c之间使用数组的工作示例,但是我不知道这是否是正确的方法。 基本上,我想将字节数组从Java 传递给c作为“ signed char *” +它的大小,在c中对其进行修改并查看java中的更改,并在c中创建一个数组并在Java中使用它。 *在C中被修改为Java或其他的缓冲区?](http://c
通过一个实例来说明如何在OpenQuant中进行实盘交易。 在OpenQuant 中打开SMACrossover策略项目,把Realtime工程设置成启动项。 打开场景文件(Scenario.cs),把使用的合约修改成国内上市交易的合约。 public override void Run() { Instrument instrument1=InstrumentManager.Instru
本文向大家介绍MySQL使用集合函数进行查询操作实例详解,包括了MySQL使用集合函数进行查询操作实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了MySQL使用集合函数进行查询操作。分享给大家供大家参考,具体如下: COUNT函数 SUM函数 AVG函数 MAX函数 MIN函数 【例.34】查询customers表中总的行数 【例.35】查询customers表中有电子邮箱的顾客的