【问题标题】:EventType: viewer-request results in 503 for lambda edgeEventType:查看器请求导致 503 的 lambda 边缘
【发布时间】:2020-04-28 11:43:53
【问题描述】:

我在解释此问题的文档中找不到任何内容。我几乎一字不差地关注了这篇博文:https://aws.amazon.com/blogs/networking-and-content-delivery/managing-lambdaedge-and-cloudfront-deployments-by-using-a-ci-cd-pipeline/

它按预期工作,但我想为查看器请求添加另一个事件,以便我可以立即测试我的函数,而无需等待对象过期。

我将此添加到模板中:

  LambdaFunctionAssociations:
    - 
      EventType: origin-request
      LambdaFunctionARN: !Ref LambdaEdgeFunctionSample.Version
    # Adding this to hit my function on every user request
    -
      EventType: viewer-request
      LambdaFunctionARN: !Ref LambdaEdgeFunctionSample.Version

这会导致以下错误:

与 CloudFront 分配关联的 Lambda 函数是 无效或没有所需的权限。我们无法连接到 此时此应用程序或网站的服务器。也可能有 流量过多或配置错误。请稍后再试,或联系 应用程序或网站所有者。如果您通过以下方式向客户提供内容 CloudFront,您可以找到解决问题的步骤并帮助防止这种情况 查看 CloudFront 文档时出错。

我不确定为什么会发生这种情况,也不知道如何排除故障。我知道该函数有效,因为 origin-request 成功执行了该函数。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-cloudfront


    【解决方案1】:

    检查您的 CloudWatch 日志组(找到最接近您发出请求的区域,否则您可能需要四处寻找)。

    造成这种情况的一个常见原因可能是您的查看器请求没有产生正确的响应。

    Example response generation

    Lambda@Edge 不会向客户端透露太多错误,从安全角度来看这很好,但意味着您需要深入研究 CloudWatch 以查看发生了哪些错误。

    您可能还会遇到超过 5 秒的持续时间或 128MB 内存限制之类的问题,我不记得他们是否抛出了 503 以外的任何内容。

    【讨论】:

    • 是否有任何开箱即用的功能可以将日志聚合到单个区域?
    • 我还没有找到。我相信最近更新 CloudWatch Alerts 是可能的。使用 AWS CLI 和一些脚本,您至少可以打印出每个区域的填充日志组名称,这在琐碎的情况下很有帮助
    猜你喜欢
    • 2019-12-19
    • 1970-01-01
    • 2020-08-26
    • 2018-01-03
    • 1970-01-01
    • 2017-07-28
    • 2021-06-21
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多