我正在研究lambda @ edge函数。 我在CloudWatch或其他调试选项上找不到任何日志。
使用“测试”按钮运行lambda时,日志将写入CloudWatch。
当CloudFront事件触发lambda函数时,不会写入日志。
我100%肯定事件触发器有效,因为我可以看到它的结果。
知道如何继续吗?
非常感谢,
贝纳
答案 0 :(得分:17)
1)确保您已经为lambda提供了将日志发送到cloudwatch的权限。下面是 AWSLambdaBasicExecutionRole 策略,您需要将该策略附加到您用于lambda函数的exection角色。
{
"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日志。
答案 1 :(得分:1)
万一有人觉得有用。 AWS为您的函数名加上前缀,这会破坏内置的“ CloudWatch一目了然”仪表板,并且Lambda @ Edge跨多个区域运行,这一事实促使我创建了this CloudWatch Dashboard template,为您提供了对所有区域的类似标准监控在一个仪表板中。