AWS Lambda@Edge 调试

AWS Lambda@Edge debugging

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

当 运行 lambda 使用 "Test" 按钮时,日志将写入 CloudWatch。

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

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

知道如何进行吗?

谢谢,
约西

1) 确保您已为 lambda 提供将日志发送到 cloudwatch 的权限。下面是 A​​WSLambdaBasicExecutionRole 策略,您需要将其附加到您用于 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 日志

以防万一有人觉得有用。 AWS 在您的函数名称前加上前缀,这会破坏内置的 "CloudWatch at a glance" 仪表板,而且 Lambda@Edge 跨多个区域运行这一事实激发了我创建 this CloudWatch Dashboard template 的想法,它为您提供了对所有区域的类似标准监控一个仪表板。