我有一个AWS Amplify项目(使用Next.js),运行良好。尽管如此,我的大多数用户都靠近巴黎(eu-west-3地区),但是Cloudfront和Lambda@Edge并没有在这个地区部署任何副本,而是在许多其他地区,比如伦敦(eu-west-3)处理我的大部分用户,而不是巴黎。
https://eu -西方- 3. - console.aws.amazon.com/lambda/home?region=eu -西方- 3 #/副本
"没有数据要显示。">
https://eu -西方- 2. - console.aws.amazon.com/lambda/home?region=eu -西方- 2 #/副本
我们看到Amplify创建的所有函数,描述为:
" Lambda@Edge."创建的副本
我如何强制Cloudfront和Lambda@Edge在eu-west-3部署副本?最好是通过AWS Amplify。
我也有同样的问题(也与Next.js),经过一些搜索,我认为这个问题是由于CloudFront架构。
拥有CloudFront Edge位置并不意味着它可以执行Lambda@Edge功能。这些只在"区域边缘缓存"处执行。位置列表在这里。
所以在你的情况下,最近的区域边缘缓存是:爱尔兰都柏林;德国法兰克福;英国伦敦
我的用户在南非,这很有趣,因为他们也离我最近。这意味着我不应该把我的S3桶放在af-south-1
中,因为Lambda@Edge无论如何都会在爱尔兰执行—网络往返将从SA ->CF边缘位置->爱尔兰Lambda@Edge ->S3 Bucket in SA ->爱尔兰→南非
这是一个可怕的用户体验....