我目前正在开发一个lambda@edge函数。
我无法在CloudWatch或其他调试选项中找到任何日志。
当使用“测试”按钮运行lambda函数时,日志会被写入CloudWatch。
当CloudFront事件触发lambda函数时,日志不会被写入。
我非常确定事件触发是有效的,因为我可以看到它的结果。
有任何想法如何继续吗?
谢谢,
Yossi
我目前正在开发一个lambda@edge函数。
我无法在CloudWatch或其他调试选项中找到任何日志。
当使用“测试”按钮运行lambda函数时,日志会被写入CloudWatch。
当CloudFront事件触发lambda函数时,日志不会被写入。
我非常确定事件触发是有效的,因为我可以看到它的结果。
有任何想法如何继续吗?
谢谢,
Yossi
1)确保您已经允许Lambda将日志发送到CloudWatch。以下是您需要附加到Lambda函数使用的执行角色的AWSLambdaBasicExecutionRole策略。
{
"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日志。
/cloudwatch/home?region=eu-central-1#logs:
看到的日志不是全部的日志。你需要在右上角的下拉菜单中积极切换区域以找到其他日志文件夹。 - VitalyB