API网关边缘优化的添加延迟

时间:2018-10-25 23:48:53

标签: amazon-web-services aws-api-gateway amazon-cloudfront

我有一个通过API网关执行的Lambda函数。如果我直接请求端点:https://9ishqo5dj7.execute-api.us-east-1.amazonaws.com/api/

则平均执行时间为200ms:

direct latency

但是,如果我添加一个“边缘优化的”端点,例如:https://testsite.learn-serverless.org/

然后执行时间会更长:

cloudfront latency

CloudFront似乎在增加一些明显的延迟而不是减少延迟。

起初,我以为(如此处https://stackoverflow.com/a/49845124/72350所述)可能是因为我用来运行测试的网站在AWS内运行,而从AWS网络退出以进入CF可能会增加一些延迟,但是,我曾在南美的计算机上尝试过相同的操作,但得到的结果相同:

CURL到https://9ishqo5dj7.execute-api.us-east-1.amazonaws.com/api/

Lookup Time: 0,029
Connect Time: 0,078
AppCon Time: 0,382
Redirect Time: 0,000
Pre-transfer Time: 0,382
Start-transfer Time: 0,578

Total Time: 0,578

CURL到https://testsite.learn-serverless.org/

Lookup Time: 0,125
Connect Time: 0,175
AppCon Time: 0,476
Redirect Time: 0,000
Pre-transfer Time: 0,477
Start-transfer Time: 1,074

Total Time: 1,074

伊利诺伊州芝加哥市的其他测试(使用webpagetest.org)得出的结果相同。 TTFB:440ms与730ms。

有什么想法吗?

Lambda函数代码:Python + Chalice,https://github.com/diegojancic/serverless-performance/tree/master/functions/chalice/base

的基本函数

用于测试延迟的页面:https://latency.apex.sh

备用区域APIG端点:https://testsite2.learn-serverless.org

更新1:要注意的一件事是如何配置Route53:

route53 configuration

已将其设置为标准CNAME,如果我将其设置为CNAME-“ ALIAS”,则由于某种原因它将无法使用。不知道这是否会产生副作用,但认为值得一提。

0 个答案:

没有答案