问题描述
我使用 python Lambda@Edge
部署了一个 serverless
函数,它使用测试功能运行正常:
仅供参考,它设置为查看者请求:
functions:
cfLambda:
handler: handler.lambda_handler
events:
- cloudFront:
eventType: viewer-request
如果我转到 CloudWatch
,我可以看到日志:
现在,当我使用 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 函数超时配额
如果我查看控制台测试,它们仅消耗 ~220 毫秒和 ~75MB,所以我认为我们远低于 viewer request 的 5 秒/128MB 限制
如果我看一下 CloudFront logs
,它们似乎没用,因为它们只是确认了 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 - -
Q2:有没有办法增加 CloudFront 日志的详细程度(我找不到)?
Q3:如果我无法在 CloudWatch 中获得我的 CloudFront Lambda@Edge 调用(Q1=no)并且我无法增加 CloudFront 日志的详细程度(Q2=no),我该如何进一步调试?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)