【发布时间】:2020-11-28 02:13:03
【问题描述】:
我有一些 Typescript 代码使用 sequelize@5.22.3 和 sequelize-typescript@1.1.0 库来管理 AWS Aurora MySQL RDS 数据库( 5.7.mysql_aurora.2.07.2)。
此代码作为 Lambda 函数运行,可通过 AWS API 网关访问。所有这些(包括 RDS 数据库)都部署在私有 VPC 中(所有这些都部署在同一个 VPC 中)。
这是我为创建 Sequelize 实例而调用的函数(这是在 Lambda 函数的加载时间完成的):
import { Sequelize } from 'sequelize-typescript';
function createSequelize(): Sequelize {
const t0 = new Date().getTime();
const sequelize = new Sequelize('mysql://aaa.cluster-c52mlmcfdpvd.eu-west-2.rds.amazonaws.com/bbb', {
dialect: 'mysql',
logging: false,
username: 'xxx',
password: 'xxx',
pool: {
min: 0,
max: 1,
idle: 10000,
acquire: 30000
}
});
const t1 = new Date().getTime();
console.log(t1 - t0);
return sequelize;
}
注意:我在上面的代码中使用了虚拟字符串来隐藏敏感数据(例如aaa、bbb、xxx)。
如你所见,我已经在这部分添加了一些计时代码。
我很惊讶这需要 1.5s 到 2s 之间。
当 Lambda 处于冷态时,这会在我们的应用程序中引入不可接受的延迟。
我可以做些什么来减少这个时间?
可能相关的其他库版本:
- typescript@3.9.7
- mysql2@2.1.0
- aws-sdk@2.725.0
- aws-lambda@1.0.6
【问题讨论】:
标签: mysql node.js typescript amazon-web-services sequelize.js