AWS ApiGateway 延迟问题

AWS ApiGateway Latency Issue

我目前正在将 AWS Lambda 用于我的内部应用程序到使用 spring 框架的应用程序调用,该框架由 jrestless 实现。

应用程序到应用程序调用运行良好,延迟适中(理想情况下约为 10-15 毫秒)

但是当我尝试通过 API 网关利用相同的 lambda 函数时,延迟会飙升至 700-800 毫秒。即使我的 lambda 函数花费相同的 10-15 毫秒。

Lambda 函数配置:

VPC: open(no vpc)
Region: ap-south-1(Mumbai)
Memory: 1500 MB(Highest)
Timeout: 5 min(Highest)

API 网关配置:

Region: ap-south-a(Mumbai)
Request Integration: proxy+
Request Method: ANY

没有使用身份验证,它是一个 HTTPS 调用。

有没有人遇到过类似的问题?

我也遇到了 api 网关的延迟问题,但我没有这方面的确切数字。但是,根据设计 api 网关目前存在延迟问题,并且该问题仍在持续。

https://forums.aws.amazon.com/thread.jspa?threadID=225458

根据工程师的说法,我认为 700 毫秒更高一些。

以防万一有人担心 lambda 作为热启动和冷启动。当您第一次调用 lambda 时,延迟有点高。并且有一些解决方法可以解决这个问题,如下面的博客 post

中所述

https://serverless.com/blog/keep-your-lambdas-warm/

  1. 如果您好奇延迟是在哪里引入的,API Gateway 提供了两个 CloudWatch 指标:LatencyIntegrationLatencyLatency 是 API 网关记录的服务器端总延迟,IntegrationLatency 只是后端 request/response 的延迟。这两个指标之间的区别是 API 网关服务器端开销。客户端延迟和 Latency 指标之间的任何差异都是 network/TLS/connection 延迟。
  2. 我们最近推出了 'Regional' 端点类型,这是一个选项,适用于客户端与 API 本身位于同一 AWS 区域的用例。这应该会使您的延迟更接近于直接调用 Lambda 时的延迟。
  3. 延迟通常会随着音量的增加而改善
  4. Lambda 本身总会有开销,并且它们不会暴露服务器端开销(与 API 网关不同)。 Lambda 公开的 duration 只是您需要支付费用的功能持续时间。它并不表示总延迟。