Meh*_*ran 10 amazon-web-services amazon-cloudwatch aws-lambda-edge
作为我遇到的上一个问题的步骤之一,我需要查看某些 Lambda@Edge 的日志,但我无法在任何地方找到它们。
根据Lambda@Edge 上的文档:
当您在对错误进行故障排除时查看 CloudWatch 日志文件或指标时,请注意它们显示或存储在离函数执行位置最近的区域中。因此,如果您的网站或 Web 应用程序的用户位于英国,并且您有一个与您的分配关联的 Lambda 函数,例如,您必须更改区域以查看伦敦 AWS 区域的 CloudWatch 指标或日志文件。
us-east-1当我在加拿大时,我试图查找其日志的 lambda 函数位于(由 CloudFront 强制要求,因为它被用作分发的事件处理程序),所以我假设最近的区域是ca-central-1. 但由于我不是在发展ca-central-1. 在任何情况下,我都看不到 Lambda@Edge 的日志。为了完整起见,我检查了所有区域,但找不到 lambda 函数的任何日志痕迹。需要明确的是,我正在寻找一个带有 lambda 函数名称的日志组。
我肯定应该有日志,因为console.log()我的代码中有日志,而且我可以下载请求的内容(lambda 函数负责选择保存内容的 S3 存储桶),这意味着 lambda 函数已成功执行。如果不是,我应该无法获得 S3 内容。
在哪里可以找到我的 Lambda@Edge 函数的日志?
Meh*_*ran 15
对于可能面临相同问题的其他任何人,请使用同一文档页面中提到的脚本来查找您的日志组:
FUNCTION_NAME=function_name_without_qualifiers
for region in $(aws --output text ec2 describe-regions | cut -f 3)
do
for loggroup in $(aws --output text logs describe-log-groups --log-group-name "/aws/lambda/us-east-1.$FUNCTION_NAME" --region $region --query 'logGroups[].logGroupName')
do
echo $region $loggroup
done
done
Run Code Online (Sandbox Code Playgroud)
创建一个文件,将上面的脚本粘贴到其中,替换为function_name_without_qualifiers您的函数名称,使其可执行并运行它。它将为您找到 Lambda@Edge 的区域和日志组。这里学到的教训是日志组不像普通日志组那样命名。相反,它遵循以下结构:
/aws/lambda/${region}.${function_name}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4190 次 |
| 最近记录: |