我有一个在lambda上运行的无服务器后端。运行时通常在40-250之间变化,这超过了apigateway最大允许运行时间(29s)。因此,我认为我唯一的选择是采用异步处理。我明白这背后的想法,但在线帮助似乎很少,我想知道那里是否有最佳实践?或者,对于我来说,解决这个超时问题最简单的方法是使用异步处理还是其他?
答案 0 :(得分:3)
这实际上取决于您的使用案例。但是可能异步方法最适合这种情况,因为从API的调用方面通常不是一个好主意,等待250秒才能得到回复(可能这就是为什么API网关的29s限制)。
异步只是意味着您将从Lambda回复说您收到了请求,并且您将继续处理它,但它将在稍后提供。
然后,您将更改客户端的逻辑,在一段时间后检查回来或在循环中执行一些检查,直到请求的资源准备好。
根据需要完成的工作,您可以动态创建S3存储桶并使用S3 presigned URL回复客户端。然后,您的工作人员将其结果上传到S3存储桶,客户端将轮询该存储桶以获取结果,直到它们存在。