2

我通过 AWS API Gateway 和 AWS Lambda 设置了一个无服务器 API,它利用 AWS RDS 代理连接到 RDS MySQL 数据库。

我通过执行以下操作打开每个 Lambda 执行的连接:

sequelize = new Sequelize(process.env.DB, process.env.USER, process.env.PASS, {
            host: process.env.RDS_PROXY_ENDPOINT,
            dialect: 'mysql',
            dialectModule: mysql2
        });
...

 console.info("doing authenticate");
            await this.sequelize.authenticate();
 console.info("done, returning connection.");

... 

BUSINESS LOGIC (mostly CRUD operations)

...

finally{
  await sequelize.close();
}

现在,我们在某些 api 调用上遇到了随机 lambda 超时,如果我们刷新页面,那么在同一端点上的后续 api 调用就会成功。

问题是:

在我的 lambda 函数中使用连接将其释放到代理后,我应该调用 sequelize close 吗?

这是我的 RDS 代理面板,您可以看到客户端连接大多为 1 或 2,但我遇到了连接问题。

有什么建议吗?

这是我的 RDS 代理面板

4

0 回答 0