aws-lambda - 偶尔从 lambda 函数连接超时

标签 aws-lambda

我不确定为什么,但有时 - 每 20 次 lambda 调用,我就会收到一个错误:

Connection timed out after 120000ms

调用是从 ECS 容器完成的,所有(调用者和 lambda)都用 node.js 编写。

我应该检查什么?

enter image description here

最佳答案

我知道这是一篇旧帖子,但我会写下我如何解决我正在处理的 lambda 中出现相同错误消息的情况。我希望这对遇到类似问题的人有所帮助。

就我而言,我在 EC2 中还有一个网络应用程序,它通过 lambda.invoke() (npm aws-sdk) 调用 lambda。 EC2 和 lambda 都在 Node.JS 上运行。即使错误记录在 EC2 内部,lambda 本身也会将消息抛给调用方 (EC2)。

我的 lambda 向 API 发出约 3,000 次请求,需要约 5 分钟(300,000 毫秒)才能获得所有响应。 lambda Node.JS 运行时似乎在 lambda 执行期间保持套接字处于事件状态,这高于 120,000 毫秒(2 分钟)。当 lambda 代码持续运行超过此阈值时,运行时会抛出错误,并且 lambda 会返回回调。

根据 aws js sdk ,AWS 对象有一个用于 http 超时的参数:

httpOptions (map) — A set of options to pass to the low-level HTTP request. Currently supported options are:

  • timeout [Integer] — Sets the socket to timeout after timeout milliseconds of inactivity on the socket. Defaults to two minutes (120000).

在我将此配置更改为 360,000 毫秒(6 分钟)后,lambda 成功执行。因此,您可以根据需要将此参数设置为更高的值:

AWS.config.update({httpOptions: {timeout: 360000}});

关于aws-lambda - 偶尔从 lambda 函数连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51259150/

相关文章:

aws-lambda - AWS 多个 Lambda 在同一个项目中

node.js - 您如何对写入/读取 dynamodb 并通过 AWS API 网关端点调用的 NodeJs Lambda 函数进行单元测试?

node.js - 如何将 Dialog.Delegate 指令返回给 Alexa Skill 模型?

node.js - nodejs Lambda函数中的FFMPEG意外行为

aws-lambda - 将 Alexa 技能链接到特定的 Lambda 别名

amazon-web-services - 如何在放大中设置 lambda 函数的触发器?

javascript - AWS Lambda 和 DynamoDB 流。执行失败怎么办?下一次尝试会处理相同的记录吗?

node.js - AWS lambda 在回调命中之前退出

amazon-web-services - AWS lambda 无法导入模块 'lambda_function' : No module named PIL

python - 无法在AWS lambda中使用gitpython