AWS Lambda @ Edge调试

时间:2017-10-04 09:16:48

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

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

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

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

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

知道如何继续吗?

非常感谢,
贝纳

2 个答案:

答案 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,为您提供了对所有区域的类似标准监控在一个仪表板中。