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의 서비스 연결 역할을 참조하십시오.
해결 방법
참고: 다음 해결 방법은 서비스 제어 정책(SCP) 또는 권한 경계 등을 통한 상위 권한 거부에는 적용되지 않습니다. 먼저 거부된 권한을 해결해야 합니다.
다음을 포함하도록 Lambda 함수의 실행 역할에 대한 IAM 정책을 편집합니다.
- CreateLogGroup 및 CreateLogStream 쓰기 작업을 허용합니다.
참고: 함수에 대한 사용자 지정 권한이 필요하지 않은 경우 관리형 정책 AWSLambdaBasicExecutionRole을 연결하여 Lambda가 CloudWatch에 로그를 기록하도록 허용할 수 있습니다.
- ARN에 지정된 AWS 리전은 Lambda 함수의 리전과 동일합니다.
- log-group 리소스에 Lambda 함수의 이름이 포함됩니다. 예를 들어 함수 이름이 myLambdaFunction인 경우 연결된 log-group은 /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:*"
]
}
]
}
참고: IAM 역할의 신뢰 정책에 Lambda 서비스를 추가해야 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
관련 정보
AWS Lambda에서 권한 관리