将 AWS LAMBDA 与 websocket 一起使用时,当 sql 运行需要 6-7 分钟时,我的 sql 会超时如何调试?

问题描述

我的 lambda 正在调用 db 函数。当大约有 300k 行时,该函数返回状态代码 ok。但是,它似乎没有返回代码,或者当它需要超过 6-7 分钟时可能会丢失数据库连接。

在 Postgres 方面,我看到函数成功运行。但是,奇怪的是 lambda 并没有走得更远。并卡住,等待 15 分钟,直到超时。以下是来自 clouldwatch 日志的摘录。

2021-07-02T13:14:31.027Z INFO    [ "Executing (default): select qq.fn_createquote(36,'RESISTOR','2021-07-01','2021-09-30')",{ plain: false,raw: true,logging: [Function: logging],replacements: { aId: 36,commodity: 'RESISTOR',qtrStartDate: '2021-07-01',qtrEndDate: '2021-09-30'},type: 'SELECT' } ]
    
2021-07-02T09:29:30.445-04:00   REPORT RequestId:   Duration: 900100.53 ms Billed Duration: 900000 ms Memory Size: 8000 MB Max Memory Used: 191 MB Init Duration: 1853.07 ms

由于它在只有 300k 行时工作正常,似乎某处有某种超时设置。可能在连接池中? pg?

在 Postgres 方面,有一个运行时间超过 20 分钟的 Talend 作业。所以,看起来 Postgres 并没有关闭连接。

 pool: {
        max: 2,min: 0,idle: 1000,evict: 29000,},"pg" : 8.0.3
    "sequelize": "5.21.1","sequelize-typescript": "1.0.0",

正如您在上面的摘录中看到的,cloudwatch 没有显示任何消息。它只是等待 900 秒和超时。根本没有连接关闭错误消息。这使得调试变得如此困难。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)