AWS Lambda函数中的数据库连接管理

时间:2018-11-17 10:25:51

标签: amazon-web-services aws-lambda serverless-framework

我正在使用AWS Lambda构建我的API。我决定采用整体式架构,以最大程度地减少冷启动。我正在使用express.js进行路由,并使用mysqljs库连接到我的数据库。该API位于不同的文件夹中:路径,控制器和模型:

my-app
├── index.js
├── controllers
├── models
└── routes

我正在使用无服务器框架和无服务器离线进行本地开发。

我遇到的一个问题是数据库连接池。而且我认为问题是因为无服务器脱机和lambda函数的行为方式不同,而且我无法完全理解。我经历了几种不同的方法。

当前是我在index.js内的exports.handler中创建池,然后将其传递到路由,然后将其传递到路由,再将其传递到控制器,该控制器将其传递到模型。当模型将返回给控制器时,我调用res.json()pool.end()

这在无服务器脱机状态下效果很好,但是当我从Lambda函数内部调用API时,第一次效果很好,但是第二次我得到Cannot enqueue Query after invoking quit。我以为每个API调用都会是一个新的“调用”。

0 个答案:

没有答案