对于 us-east-1 以外的区域,AWS CloudFront 返回 503

问题描述 投票:0回答:2

我正在尝试使用链接到源请求事件的 lambda@Edge 函数来配置 Cloudfront 发行版。 lambda 边缘返回一个非常基本的 html 页面(代码基于此示例:服务静态内容(生成的响应))。部署后,分发在靠近北弗吉尼亚地区的位置按预期工作,但在其他位置失败并返回以下错误:

503:与 CloudFront 发行版关联的 Lambda 函数 被节流了。我们无法连接到此应用程序或网站的服务器 此时。可能是流量太大或者配置太高 错误。请稍后重试,或联系应用程序或网站所有者。如果你 通过 CloudFront 向客户提供内容,您可以找到以下步骤: 通过查看 CloudFront 来排除故障并帮助防止此错误 文档。

我已经尝试查看日志,但当抛出 503 错误时,cloudwatch 中没有记录任何内容,并且来自 CF 发行版的日志显示 lambdalimitExceeded 错误。

我一直在使用 VPN 在不同位置之间跳转,但我发现它只适用于靠近 us-east-1 区域的地方,这很奇怪。我正在使用联合帐户创建所有资源,我不知道它是否可能与 IAM 权限有关。

另一件事需要指出的是,如果我使用另一个 aws 账户和普通用户重现相同的场景,一切都会按预期进行。

amazon-web-services aws-lambda amazon-cloudfront aws-lambda-edge
2个回答
0
投票

如果您看到

lambdalimitExceeded
,那么您需要检查 Lambda@Edge 函数的以下内容:

  • 函数执行数量超出了 Lambda 设置的配额之一(以前称为限制),以限制 AWS 区域中的执行(并发执行或调用频率)。
  • 该函数超出了 Lambda 函数超时配额。

请记住,Lambda@Edge 的执行位置更靠近用户,如果您尝试检索外部资源(到该区域),则可能会由于地理延迟而超时,您可以增加超时以解决此问题吗?

您运行的区域中是否有其他 Lambda 运行?如果您查看靠近用户边缘位置的区域之一的 CloudWatch 日志,您将看到这些 Lambda 日志,并希望能够确定根本原因。如果没有,则添加更多调试。


0
投票

这是否已经弄清楚了?我目前正在抓狂并诅咒 AWS 的名字,试图找出为什么我的 Lambda@Edge 只能在 US-East-1 位置工作。

© www.soinside.com 2019 - 2024. All rights reserved.