【问题标题】:Workaround aws apigateway timeout with lambda - asynchronous processing使用 lambda 的解决方法 aws apigateway 超时 - 异步处理
【发布时间】:2018-06-01 01:13:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    异步只是意味着您将从 Lambda 回复说您收到了请求并且您将处理它,但它只会在以后可用。

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

    根据需要完成的工作,您可以即时创建一个 S3 存储桶并使用 S3 presigned URL 回复客户端。然后,您的工作人员会将他们的结果上传到 S3 存储桶,客户端将轮询该存储桶以获取结果,直到结果出现。

    【讨论】:

    • 感谢您的回答。我的确切用例是将参数发送到运行分析并返回用作前端模板的字典以生成 HTML/CSS 演示文稿的 lambda 后端。
    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2021-08-01
    • 2021-06-21
    • 2019-11-17
    • 1970-01-01
    相关资源
    最近更新 更多