[英]Long timeout for AWS lambda function
我们有一个与基于云的应用程序交互的lambda
。 我们最初将 lambda 超时设置为 15 秒,它通常在 10 秒内完成,所以一切看起来都很好。
随着时间的推移,我们发现在某些情况下 API 响应可能会延迟,有时会延迟 20 秒或更长时间。 我们将超时时间增加到 40 秒,这可以解决大多数情况。 然而,响应延迟的时间仍然比这更长。
问题:可以设置更长的超时时间,比如 90 秒吗? 这会带来任何问题或风险吗?
如前所述,超时的主要用途是停止 lambda function,如果需要的时间超出预期。 这可能是由于无限循环或软件错误而发生的,在这种情况下,您希望终止 function 以停止浪费资源。
在实践中这种情况很少发生。 经常发生的事情是您所经历的:您在第一次设计 function 时所做的假设不正确或已经改变。
您假设 API 应该快速回复,这样一切都会在 10 秒内完成。 这不是真的,您已经更改了一次超时。 您发现需要再次更改超时。 这应该让你重新思考你的整个架构。 如果长时间延迟很少见,您可能只需要再次增加超时并忘记它。 如果不是,或者您希望将来不会,那么您遇到的问题不仅仅是设置超时:
在 AWS lambda
端,如果您没有达到 900 秒(15 分钟)的最大执行时间,也没关系。 请参阅: http://docs.aws.amazon.com/lambda/latest/dg/limits.html
如果您的 lambda 是由SQS
触发的,则必须注意可见性超时。 建议将队列可见性超时设置为 lambda function 超时的 6 倍
此外,您必须注意解决方案中的其他进程是否等待 lambda 结果,并且是否可以延迟它们增加 lambda 超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.