gpt4 book ai didi

amazon-web-services - 无服务器 AWS Lambda@Edge : How to debug

转载 作者:行者123 更新时间:2023-12-05 01:30:39 25 4
gpt4 key购买 nike

我有一个使用 serverless 部署的 python Lambda@Edge 函数,它使用测试功能工作正常:

enter image description here

仅供引用,它设置为查看器请求:

enter image description here

functions:
cfLambda:
handler: handler.lambda_handler
events:
- cloudFront:
eventType: viewer-request

如果我转到 CloudWatch,我可以看到日志:

enter image description here

现在,当我使用 cURL 进行测试时,失败并返回 503:

HTTP/2 503 
content-type: text/html
content-length: 1019
server: CloudFront
date: Mon, 05 Apr 2021 07:24:45 GMT
x-cache: LambdaExecutionError from cloudfront
via: 1.1 XXXXXXXXXXXXXXXXXX.cloudfront.net (CloudFront)
x-amz-cf-pop: AMS50-C1
x-amz-cf-id: 4vYpBnOGd6yfgowoSpiCyBkh5cbV1g3IJf1H2Eheln89MpEnScL-1g==

但是这次我在 CloudWatch 中没有得到任何日志。 问题 1:如何在 CloudWatch 中显示我的 Lambda@Edge CloudFront 调用痕迹?

如果我阅读 Lambda@Edge debug guide它说503 status code是:

  • 太多执行(不是我的情况,那个云端的流量为 0,它纯粹是测试)
  • 函数超出了 Lambda 函数超时配额

如果我查看控制台测试,它们仅消耗 ~220ms 和 ~75MB 所以我认为我们远低于 viewer request 的 5 秒/128MB 限制|

enter image description here

如果我查看 CloudFront 日志,它们似乎毫无用处,因为它们只是确认 503:

E2HX7F6YEZN897.2021-04-04-16.a77a21e1:2021-04-04    16:34:12    SEA19-C3    389 35.247.33.169   HEAD    XXXXXXXX.cloudfront.net /   503 -   Mozilla/5.0%20(Windows%20NT%205.1)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/41.0.2224.3%20Safari/537.36  -   -   LambdaExecutionError    AcM5SX3ggB53fmjXO83xND_Lw3-eHXd8dlIZGEO53XaDMjuctRw==   example.org https   223 0.021   -   TLSv1.3 TLS_AES_128_GCM_SHA256  LambdaExecutionError    HTTP/1.1    -   -   51810   0.021   LambdaExecutionError    text/html   1019    -   -

问题 2:有没有办法增加 CloudFront 日志的详细程度(我找不到)?

问题 3:如果我无法在 CloudWatch 中获取 CloudFront Lambda@Edge 调用(Q1=no)并且无法增加 CloudFront Logs 的详细程度(Q2=no),我该如何进一步调试?

最佳答案

  • Lambda@Edge函数必须部署到 us-east-1地区。

  • x-amz-cf-pop header 给出了有关请求执行位置的提示。可以引用这个非官方榜单here .

  • us-east-1日志可以在 CloudWatch 中找到群下/aws/lambda/<Your-function-name> .对于任何其他区域,日志组将为 /aws/lambda/us-east-1.<Your-function-name> .如果您知道该地区,请选择适当的地区。转到 CloudWatch并搜索相应的日志组。 enter image description here

  • 您还可以从 CloudFront 导航到相应的日志页。转到 Monitoring部分 -> 选择你的 Distribution -> View Distribution Metrics -> Lambda@Edge Errors .当您将鼠标悬停在数据点上时,图表将显示所有区域的错误。知道发生错误的区域后,您可以选择相同的区域,然后选择 Lambda。功能,最后点击View logs .请引用下图。 enter image description here

  • 看看一些官方例子here .对于 viewer-request事件,那些操纵 request 的人是相关的。

  • CloudFront可以在 /aws/cloudfront/LambdaEdge/<YourDistributionId> 访问日志

希望这能帮助您继续前进。

关于amazon-web-services - 无服务器 AWS Lambda@Edge : How to debug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66949758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com