java - AWS ApiGateway 延迟问题

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

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

应用程序调用的应用程序完美运行,延迟适中(理想情况下约为 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 调用。

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

最佳答案

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

关于java - AWS ApiGateway 延迟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45458993/

相关文章:

java - 使用 @RunWith(PowerMockRunner.class) 时如何解决 java 单元测试中的链接错误

amazon-web-services - 如何从aws上的无服务器框架输出资源路径?

node.js - 从 lambda (Nodejs) 上传 multipart/form-data 到 S3

java - m2e vs wtp vs m2e-wtp?

java - Eclipse - 项目包含错误但未发现

java - 在java中使用for循环填充HashMap

c# - 在 ASP.NET Core 2 中强制使用已知 header 的特定大小写

amazon-web-services - 如何授予 Athena 对 Lambda 函数的查询权限?

amazon-dynamodb - 是否可以跨账户访问 AWS DynamoDB 流?

aws-api-gateway - 用于对请求进行单一更改的 API 网关映射模板