繁体   English   中英

使用Java的AWS Lambda-设置配置连接/套接字超时

[英]AWS Lambda using Java - setting the configuration connection/socket timeouts

请参阅此处: AWS文档

连接超时是HTTP连接在放弃之前将等待建立连接的时间(以毫秒为单位)。 默认值为50,000毫秒。 要自己设置此值,请使用ClientConfiguration.setConnectionTimeout方法。

我正在尝试使用以下方法自己设置值:

ClientConfiguration configuration = new ClientConfiguration();
configuration.setConnectionTimeout(1900000);
configuration.setSocketTimeout(1900000);

问题是,我正在尝试从AWS Lambda Java函数中更新此值。 如果要调用外部lambda函数,则可以在进行调用之前对其进行配置。 这就是所有文档所显示的示例。

有没有一种方法可以添加环境变量或以编程方式从自身内部更新当前的AWS Lambda Java函数连接和套接字超时?

进一步澄清:

没有“客户端”调用此lambda函数。 它打算按小时安排,由事件类型“ CloudWatch Events-Schedule”触发。 lambda本身发出一个GET调用的请求,该调用可能需要65到140秒才能运行。 目前,整个lambda时间已延长至5分钟。 lambda的GET调用在50秒标记处失败。 上面提供的AWS文档引用了默认的50秒限制,并尝试了3次重试,这两个尝试都可以修改。 但是,我无法通过lambda自己的代码或lambda本身上的任何参数以编程方式修改连接或套接字超时。 必须有一种正确配置此方法的方法。

通过HTTPS到外部服务。 我输入了代理设置,并验证了连接正确,并且连接正确。 在Postman中,任何输入或限制都需要65+秒。

请指教。

我发现了问题。 事实证明,lambda在AWS控制台中是成功的。 它只是在Eclipse中失败。 包含AWS开发工具包的AWS工具包给出了以下错误:

com.amazonaws.SdkClientException:无法执行HTTP请求:读取超时

我进行了上面描述的代码和AWS控制台更改,但没有用。 此处显示的是AWS Toolkit>首选项中的设置:

AWS Toolkit首选项

超时配置

上面的超时都设置为20000,限制了我如上所述进行的HTTPS调用。 我将该值更新为可笑的高值以对其进行测试,现在它的解析时间约为93s。 在那个时期内,来自邮递员的相同呼叫也是93s。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM