Lambda函数偶尔会发生连接超时

时间:2018-07-10 07:09:40

标签: aws-lambda

我不确定为什么,但是不时出现-在20次lambda调用中,一次,我收到错误消息:

Connection timed out after 120000ms

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

我应该检查什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

我知道这是一篇过时的文章,但是我将用我正在处理的lambda来写出如何解决相同错误消息的情况。希望这对遇到类似问题的人有所帮助。

就我而言,我还在EC2中有一个Web应用程序,该应用程序通过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 ms(2分钟)。当lambda代码继续运行超过此阈值时,运行时将引发错误,并且lambda会随之返回回调。

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

httpOptions(地图)-一组传递给低级HTTP请求的选项。当前支持的选项是:

  • 超时[整数] -将套接字设置为在套接字上的闲置超时毫秒后超时。默认为两分钟(120000)。

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

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

答案 1 :(得分:0)

对我来说不是偶尔,而是一次到另一次:S。 不知何故,我的一个网络设备被停用(PANGP 虚拟以太网适配器),所以我重新激活它解决了 最好! enter image description here