AWS ApiGateway延迟问题

时间:2017-08-02 11:00:36

标签: java aws-lambda aws-api-gateway serverless-framework

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

应用程序调用的应用程序完美且具有良好的延迟(理想情况下为~10-15ms)

但是当我试图通过API网关利用相同的lambda函数时,延迟时间可达700-800毫秒。即使我的lambda函数使用相同的10-15 ms。

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呼叫。

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

2 个答案:

答案 0 :(得分:2)

我也遇到过api网关的延迟问题,但我没有确切的数据。但是截至目前,设计api网关存在延迟问题,而且还在不断发展。

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

根据工程师的说法,我认为700ms有点高。

以防万一另外担心lambda是热启动和冷启动。当你第一次调用lambda时,延迟有点高。如以下博客文章中所述,有几种解决方法可以解决这个问题

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

答案 1 :(得分:2)

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