【问题标题】:Where to find the logs for Lambda@Edge?在哪里可以找到 Lambda@Edge 的日志?
【发布时间】:2019-06-03 09:25:16
【问题描述】:

作为我遇到的previous problem 的步骤之一,我需要查看一些 Lambda@Edge 的日志,但我无法在任何地方找到它们。

根据 Lambda@Edge 上的documentation

当您查看 CloudWatch 日志文件或指标时 故障排除错误,请注意它们显示或存储在 距离函数执行位置最近的区域。因此,如果 您有一个网站或 Web 应用程序与美国的用户 Kingdom,并且您有一个与您的关联的 Lambda 函数 分布,例如,您必须更改区域才能查看 伦敦 AWS 区域的 CloudWatch 指标或日志文件。

当我在加拿大时,我试图为其查找日志的 lambda 函数位于 us-east-1(由 CloudFront 强制执行,因为它用作分发的事件处理程序),所以我假设最近的区域是 @ 987654324@。但是由于我不是在ca-central-1 开发,所以我在那个区域没有任何日志组。在任何情况下,我都看不到我的 Lambda@Edge 的日志。为了完整起见,我检查了所有区域,但找不到 lambda 函数的任何日志痕迹。为了清楚起见,我正在寻找一个带有 lambda 函数名称的日志组。

我很肯定应该有日志,因为我的代码中有console.log(),而且我可以下载请求的内容(lambda 函数负责选择保存内容的 S3 存储桶),这意味着 lambda 函数被成功执行。如果不是,我应该无法获取 S3 内容。

在哪里可以找到我的 Lambda@Edge 函数的日志?

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch aws-lambda-edge


    【解决方案1】:

    对于可能遇到相同问题的其他人,请使用同一文档页面中提到的脚本来查找您的日志组:

    FUNCTION_NAME=function_name_without_qualifiers
    for region in $(aws --output text  ec2 describe-regions | cut -f 4) 
    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
    

    创建一个文件,将上面的脚本粘贴到其中,将function_name_without_qualifiers 替换为您的函数名称,使其可执行并运行它。它将为您找到 Lambda@Edge 的区域和日志组。这里学到的教训是日志组不像普通日志组那样命名。相反,它遵循以下结构:

    /aws/lambda/${region}.${function_name}
    

    【讨论】:

    • CloudFront 有两层边缘——外部“全局”边缘和内部“区域”边缘。缓存未命中从全局到区域再到源,Lambda@Edge 函数通常在距离查看器最近的regional edge 区域运行并记录。测试表明,由于它们靠近加拿大,您应该会发现它们通常会转到 us-east-1 或 us-east-2,即使该函数实际上是在 us-east-1 中声明的。它被复制到所有其他人。
    • 请注意 describe-regions 的输出数据格式已更改,您现在需要 cut -f 4
    • 基于此答案的小脚本:github.com/walkermatt/dotbin/blob/…
    【解决方案2】:

    log describe-log-groups 的格式好像也变了。当我尝试脚本时,它什么也没返回。但是使用“/aws/lambda/$FUNCTION_NAME”而不是“/aws/lambda/us-east-1.$FUNCTION_NAME”,脚本返回具有以下结构的组列表:

    ${region} /aws/lambda/${function_name}
    

    【讨论】:

      猜你喜欢
      • 2018-07-02
      • 1970-01-01
      • 2018-10-31
      • 2019-11-11
      • 2023-03-15
      • 1970-01-01
      • 2022-01-23
      • 2013-11-11
      • 2011-03-24
      相关资源
      最近更新 更多