解决方法使用lambda异步处理来执行apigateway超时

时间:2018-05-31 12:08:59

标签: amazon-web-services asynchronous aws-lambda aws-api-gateway

我有一个在lambda上运行的无服务器后端。运行时通常在40-250之间变化,这超过了apigateway最大允许运行时间(29s)。因此,我认为我唯一的选择是采用异步处理。我明白这背后的想法,但在线帮助似乎很少,我想知道那里是否有最佳实践?或者,对于我来说,解决这个超时问题最简单的方法是使用异步处理还是其他?

1 个答案:

答案 0 :(得分:3)

这实际上取决于您的使用案例。但是可能异步方法最适合这种情况,因为从API的调用方面通常不是一个好主意,等待250秒才能得到回复(可能这就是为什么API网关的29s限制)。

异步只是意味着您将从Lambda回复说您收到了请求,并且您将继续处理它,但它将在稍后提供。

然后,您将更改客户端的逻辑,在一段时间后检查回来或在循环中执行一些检查,直到请求的资源准备好。

根据需要完成的工作,您可以动态创建S3存储桶并使用S3 presigned URL回复客户端。然后,您的工作人员将其结果上传到S3存储桶,客户端将轮询该存储桶以获取结果,直到它们存在。