【问题标题】:AWS Lambda timeoutAWS Lambda 超时
【发布时间】:2019-04-03 01:18:02
【问题描述】:

我有一个连接到 SQL DB 的 AWS Lambda 函数,并且 lambda 的超时时间已设置为 120 秒。但是当数据库连接或查询执行出现问题时,lambda 会在 60 秒后超时。下面是我的数据库配置。我使用了node-mssql 模块。

const DBConfig = {
    user: Config.DBUser,
    password: pswd,
    server: Config.DBHost,
    port: Config.DBPort,
    database: Config.DBName,
    connectionTimeout: 60000,
    requestTimeout: 60000,
    options: {
        encrypt: false
    }
}

【问题讨论】:

  • 你的问题是什么?
  • 你的连接是在你的处理函数之外建立的吗?

标签: node.js amazon-web-services aws-lambda node-mssql


【解决方案1】:

您是否尝试过增加 lambda 函数的内存?过去,当我将内存提升到 1GB+ 时,这似乎为我解决了许多连接问题。

【讨论】:

  • 请不要在回答中提问。你可以通过添加 cmets 来做到这一点。
【解决方案2】:

Lambda 在其持续时间超过配置的超时值之前无法超时。 执行终止的其他选项是: - 处理函数已完成。 - 引发了未处理的异常。特别是在 NodeJS 中,Lambda 日志中的错误消息将是:“进程在完成请求之前退出”(尽管这并不意味着存在超时)。 - 存在内存不足问题,但这似乎不是您的问题。

【讨论】:

    【解决方案3】:

    这是因为您在尝试连接数据库时连接超时,并且您没有在 lambda 函数内正确处理超时,因此您的 lambda 将超时。

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 2017-09-20
      • 2019-11-17
      • 2018-01-18
      • 2017-07-22
      • 2019-11-06
      相关资源
      最近更新 更多