我有一个通过API网关执行的Lambda函数。如果我直接请求端点:https://9ishqo5dj7.execute-api.us-east-1.amazonaws.com/api/
则平均执行时间为200ms:
但是,如果我添加一个“边缘优化的”端点,例如:https://testsite.learn-serverless.org/
然后执行时间会更长:
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:
已将其设置为标准CNAME,如果我将其设置为CNAME-“ ALIAS”,则由于某种原因它将无法使用。不知道这是否会产生副作用,但认为值得一提。