2017-08-02 93 views
2

我目前正在使用AWS LAMBDA我的内部应用程序使用与jrestless实现Spring框架的应用程序调用。AWS ApiGateway延迟问题

应用程序调用正在完善体面的潜伏期(〜10-15ms最好)

但是,当我试图利用相同的lambda函数通过API网关的等待时间最多拍摄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调用。

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

+0

绝对。对我来说,900-1200ms是典型的,即使对于返回JSON(他们的宠物商店示例)的“Hello World”相当于预热的Lambda函数(从我的角度来看,这是一个红鲱鱼问题),从* * nearest *矿。与此同时,我写的一个简单的服务器程序运行在EC2微型实例上,1)从RDS返回的数据,应该更慢,2)距离我最远的地区,最多往返600ms,一半的响应时间通常较少。来自AWS代表对此类问题的回应并不尽如人意。 – SexxLuthor

回答

1

我也面临着API网关的延迟问题,但我没有对确切的数字。然而截至目前,设计api网关存在延迟问题,并且这是一个持续的问题。

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

据工程师,我认为700毫秒是有点高。

万一有一个与lambda作为热启动和冷启动另一个问题。当你第一次调用lambda延迟是有点高。而且有几个变通办法来克服这个在下面的博客中提到张贴

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

+0

我对lambda冷启动没有任何问题。已经有调度程序来保持我的lambda函数正常运行。但是由于api网关延迟,我无法在生产环境中使用。 – nikhil1265

+0

我刚刚检查了我们在api网关apis中实现的最小延迟,它是260ms。但是,我发现并由api网关工程师给出了答案。 https://stackoverflow.com/questions/41865304/can-will-aws-api-gateway-lambda-performance-be-improved。不幸的是,这就是我现在所拥有的一切 – Asanka

1
  1. 如果你是在引入的延迟好奇,API网关提供了两个CloudWatch的指标:LatencyIntegrationLatencyLatency是由API网关记录的总服务器端延迟和IntegrationLatency只有后端请求/响应的等待时间。这两个指标之间的差异是API网关服务器端开销。客户端延迟和Latency指标之间的任何差异都将是网络/ TLS /连接延迟。
  2. 我们最近推出了“区域”端点类型,这也是使用情况的选项,其中客户端是在同一AWS区域的API本身。这会让您的延迟更接近您直接调用Lambda时获得的延迟。
  3. 延迟时间通常会随着数量的增加而提高
  4. Lambda本身将始终有开销,并且不公开服务器端开销(与API网关不同)。 Lambda公开的duration只是您计费的功能持续时间。它并不表示总延迟。