Amazon CloudWatch 콘솔에서 AWS Lambda 함수에 대한 로그를 보려고 하면 “로그 그룹이 없음(Log group does not exist)” 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?
간략한 설명
함수의 로그를 보려고 할 때 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에서 로그 그룹이 없음(Log group does not exist) 오류를 해결하려면 다음을 확인하세요.
- Lambda 함수의 실행 역할에는 CloudWatch에 로그를 쓸 수 있는 충분한 권한이 있습니다.
- IAM 정책의 로그 그룹 리소스에는 함수 이름이 포함됩니다.
참고: Lambda@Edge의 권한 관련 로깅 문제에 대한 자세한 내용은 Lambda@Edge의 서비스 연결 역할을 참조하세요.
해결 방법
다음 사항을 충족하도록 IAM 콘솔에서 Lambda 함수의 실행 역할에 대한 IAM 정책을 검토하고 편집합니다.
- 쓰기 작업인 CreateLogGroup 및 CreateLogStream이 허용됩니다.
참고: 함수에 대한 사용자 지정 권한이 필요하지 않은 경우 관리형 정책 AWSLambdaBasicExecutionRole을 연결할 수 있습니다. 이 관리형 정책은 Lambda가 CloudWatch에 로그를 쓸 수 있도록 합니다.
- Amazon 리소스 이름(ARN)에 지정된 AWS 리전이 Lambda 함수의 리전과 동일합니다.
- 로그 그룹 리소스에는 Lambda 함수 이름이 포함됩니다. 예를 들어, 함수 이름이 myLambdaFunction인 경우 연결된 로그 그룹은 /aws/lambda/myLambdaFunction입니다.
다음은 Lambda 역할이 CloudWatch 로그에 액세스하는 데 필요한 권한을 포함하는 정책의 예입니다.
{
"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:*"
]
}
]
}
관련 정보
AWS Lambda 권한