11

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

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

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

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

知道如何进行吗?

提前谢谢,
约西

4

2 回答 2

19

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 日志。

于 2017-10-04T10:58:12.830 回答
1

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

于 2018-10-30T09:59:57.183 回答