我在这里读到可以将Lambda函数超时设置为15分钟(https://aws.amazon.com/about-aws/whats-new/2018/10/aws-lambda-supports-functions-that-can-run-up-to-15-minutes/)
但是,当我尝试在Integration Request设置中设置API Gateway时,不允许将其设置为高于29秒:
我如何才能使用持续15分钟的功能,但网关却在30秒后超时?
答案 0 :(得分:5)
不幸的是,没有一种方法可以将API网关超时增加到超过29秒。这是网关的限制。您可以将lambda函数设置为更长的原因是因为可以将其插入到其他AWS资源中,这些资源允许更高的超时处理阈值。
您可以探索以下几种方法来解决此问题和/或使用限制:
将您的函数拆分为较小的函数,并将它们链接在一起,以查看性能是否得到提高。在执行此操作之前,您可以使用AWS X-Ray调试该功能,并查看花费最多时间的部分来确定需要拆分的内容。
增加该功能使用的内存。更高的内存分配可能导致更快的执行。我以前使用过此选项,并且能够解决超时限制。
您可以仅使用AWS开发工具包调用“ invoke()”来调用lambda函数,而不使用API Gateway。这将绕过超时阈值。
希望其中的一种或几种会有所帮助:)
答案 1 :(得分:1)
API网关现在支持WebSocket API。只是:
您可以事件检查连接是否仍然有效以中断处理(或将进度消息发送回客户端)。
答案 2 :(得分:0)
另一种选择是使用快速API调用创建EventBridge计时器,并从计时器执行Lambda。
答案 3 :(得分:0)
当前无法增加API超时秒数。 另一种选择是创建ALB并将请求转发到Lambda。