如何在 CloudWatch 控制台中解决 Lambda 函数日志的“加载日志流错误”错误?

上次更新时间:2019 年 7 月 29 日

当我尝试在 Amazon CloudWatch 控制台中查看 AWS Lambda 函数的日志时,出现错误“加载日志流时出错。请刷新此页面再试一次。” 如何修复此问题?

简短描述

当您尝试使用 AWS 管理控制台查看 CloudWatch 中的 Lambda 日志时,会发生此错误,并且日志组不存在。只有在第一次运行函数后才会生成日志。如果没有日志组,通常是因为您的函数的 AWS Identity and Access Management (IAM) 权限存在问题。

注意:有关 Lambda@Edge 与权限相关的日志问题,请参阅 Lambda@Edge 的服务相关角色

解决方法

确保您的 Lambda 函数的执行角色具有将日志写入 CloudWatch 的足够权限,并且 IAM 策略中的日志组资源包含您的函数的名称。

IAM 控制台中,查看并为执行角色编辑 IAM 策略,以确保:

  • 允许写入操作 CreateLogGroup 和 CreateLogStream
    注意:如果您的函数不需要自定义权限,则可以附加托管策略 AWSLambdaBasicExecutionRole,这允许 Lambda 将日志写入 CloudWatch。
  • Amazon 资源名称 (ARN) 中指定的 AWS 区域与您的 Lambda 函数的区域相同。
  • log-group 资源包含您的 Lambda 函数的名称。例如,如果您的函数名为 myLambdaFunction,则 log-group /aws/lambda/myLambdaFunction

作为参考,这是一个具有所需权限的 JSON 策略文档示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "arn:aws:logs:region:accountId:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                " arn:aws:logs:region:accountId:log-group:/aws/lambda/functionName:*"
            ]
        }
    ]
}

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?