如何在 CloudWatch 控制台中解决 Lambda 函数日志的“日志组不存在”错误?

上次更新日期:2021 年 4 月 14 日

当我尝试在 Amazon CloudWatch 控制台中查看 AWS Lambda 函数的日志时,出现“日志组不存在”错误。如何解决此错误?

简短描述

如果您在尝试查看函数的日志时没有 Lambda 函数的日志组,CloudWatch 将返回以下错误:

"Log group does not exist. The specific log group: <log group name> does not exist in this account or region."

第一次运行函数后才会生成日志。如果调用函数后没有日志组,通常是因为该函数的 AWS Identity and Access Management (IAM) 权限存在问题。

要对来自 CloudWatch 的日志组不存在错误进行故障排除,请确认以下内容:

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

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

解决方法

在 IAM 控制台中,查看并为 Lambda 函数的执行角色编辑 IAM 策略,以确保以下情况成立:

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

包含允许 Lambda 函数向 CloudWatch 写入日志所需权限的示例 JSON 策略

{
    "Version": "2012-10-17",
    "Statement": ,
            "Resource": 
        }
    ]
}