【问题标题】:AWS Lambda@Edge debuggingAWS Lambda@Edge 调试
【发布时间】:2018-10-30 18:05:42
【问题描述】:

我目前正在研究 lambda@edge 函数。 我在 CloudWatch 或其他调试选项上找不到任何日志。

使用“测试”按钮运行 lambda 时,日志将写入 CloudWatch。

当 CloudFront 事件触发 lambda 函数时,不会写入日志。

我 100% 肯定事件触发器有效,因为我可以看到它的结果。

知道如何进行吗?

谢谢你,
尤西

【问题讨论】:

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


    【解决方案1】:

    1) 确保您已为 lambda 提供将日志发送到 cloudwatch 的权限。下面是 AWSLambdaBasicExecutionRole 策略,您需要将其附加到您用于 lambda 函数的执行角色。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                ],
                "Resource": "*"
            }
        ]
    }
    

    2) Lambda 在 CloudWatch Logs 区域中创建 CloudWatch Logs 日志流最接近函数执行位置。每个日志流的名称格式为 /aws/lambda/us-east-1.function-name,其中 function-name 是您为创建它时的功能。因此,请确保您在正确的 REGION 中检查 cloudwatch 日志。

    【讨论】:

    • 另请注意,“最靠近执行函数的位置” 意味着 最靠近向 CloudFront 发出请求的浏览器的区域我>。 (从技术上讲,“最佳”往往是地理上距离浏览器最近的区域,但不一定。)
    • 谢谢!它保存在“最接近位置区域”的 CloudWatch 日志中。感谢您的快速和有用的回答:)
    • 我偶然发现了整个地区的事情。向其他人强调-您在/cloudwatch/home?region=eu-central-1#logs: 中看到的日志并不是您的全部日志。您需要在右上角的下拉菜单中主动切换区域才能找到其他日志文件夹。
    【解决方案2】:

    如果有人觉得它有用。 AWS 为您的函数名称添加前缀,这打破了内置的“CloudWatch at a 一目了然”仪表板,并且 Lambda@Edge 跨多个区域运行,这一事实激发了我创建 this CloudWatch Dashboard template 的灵感,该this CloudWatch Dashboard template 为您提供了对所有区域的类似标准监控仪表板。

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2018-06-17
      • 2019-02-04
      • 2019-11-21
      • 2022-01-01
      • 2020-04-10
      • 1970-01-01
      • 2017-12-31
      • 2019-04-16
      相关资源
      最近更新 更多