微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将 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 举报,一经查实,本站将立刻删除。