代码之家  ›  专栏  ›  技术社区  ›  Mehran

在哪里可以找到lambda@edge的日志?

  •  1
  • Mehran  · 技术社区  · 6 年前

    作为 previous problem 我已经面对了,我需要看到一些lambda@edge的日志,但是我在任何地方都找不到它们。

    根据 documentation 关于LAMBDA @ Edge:

    当您查看CloudWatch日志文件或指标时, 排除错误,注意它们显示或存储在 最接近函数执行位置的区域。所以,如果 您有一个网站或Web应用程序,用户在美国 王国,你有一个lambda函数与你的 例如,分发时,必须更改区域以查看 伦敦AWS地区的CloudWatch度量或日志文件。

    我要查找的lambda函数的日志位于 us-east-1 (由CloudFront强制执行,因为它用作分发的事件处理程序)当我在加拿大时,我假设最近的区域是 ca-central-1 . 但因为我没有在 CA-Calthal-1 ,该区域中没有任何日志组。无论如何,我看不到lambda@edge的日志。为了完整起见,我检查了所有区域,找不到lambda函数的任何日志跟踪。为了清楚起见,我正在寻找一个具有lambda函数名的日志组。

    我肯定应该有日志,因为我 console.log() 在我的代码中,我还可以下载请求的内容(lambda函数负责选择保存内容的S3存储桶),这意味着lambda函数已成功执行。如果不是,我就不能得到S3的内容。

    在哪里可以找到lambda@edge函数的日志?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mehran    6 年前

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

    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
    

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

    /aws/lambda/${region}.${function_name}
    
    推荐文章