Skip to content

Lambda@Edge CloudWatch 로그가 전송되지 않는 이유는 무엇입니까?

2분 분량
0

AWS Lambda@Edge 함수를 Amazon CloudFront 배포와 연결했습니다. 하지만 Amazon CloudWatch Logs 로그 스트림에서 Lambda@Edge 함수의 로그를 찾을 수 없습니다.

해결 방법

Lambda@Edge 함수와 연결된 IAM 역할에 대한 권한 확인

Lambda@Edge 함수와 연결된 AWS Identity and Access Management(IAM) 역할에 필요한 권한이 없는 경우 Lambda@Edge 로그가 입력되지 않습니다. 함수 역할에 로그 그룹 및 스트림을 만들고 모든 AWS 리전에 로그 이벤트를 추가하는 데 필요한 권한이 있는지 확인하십시오.

IAM 정책 예시:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}

CloudWatch Logs로 데이터를 전송하는 데 필요한 권한에 대한 자세한 내용은 Lambda@Edge에 대한 IAM 권한 및 역할 설정을 참조하십시오.

CloudFront가 Lambda 함수를 호출하는 리전에서 로그 찾기

CloudFront 콘솔에서 리전을 확인합니다. 잘못된 리전을 사용하면 로그가 표시되지 않을 수 있습니다.

Lambda@Edge 함수를 호출하면 Lambda는 요청을 수신한 리전에 CloudWatch Logs 로그 스트림을 만듭니다. 로그 그룹 이름은 /aws/lambda/us-east-1.function-name 형식을 사용합니다.

Lambda@Edge 함수 로그를 찾으려면 CloudFront가 함수를 호출하는 리전을 찾으십시오. 다음 단계를 완료합니다.

  1. CloudFront 콘솔을 엽니다.
  2. 원격 분석에서 모니터링을 선택합니다.
  3. Lambda@Edge 탭을 선택합니다.
  4. Lambda@Edge 함수를 선택하고, 지표 보기를 선택합니다.
  5. 함수 로그 보기를 선택하고, CloudFront가 함수를 호출하는 리전을 선택합니다.
    참고: 리전에 오류가 표시되면 오류 지표 그래프에서 해당 리전을 선택하십시오.
  6. CloudFront가 요청을 라우팅한 엣지 로케이션을 확인하려면 x-amz-cf-pop 응답의 헤더 값을 확인하십시오. 그런 다음 CloudWatch Logs에서 해당 리전을 확인하여 로그 파일을 검토합니다. 예를 들어 x-amz-cf-popIAD89-P1인 경우 IAD는 공항 코드이고 CloudFront는 us-east-1에서 요청을 처리했습니다.

Lambda가 CloudFront에 유효하지 않은 응답을 반환하는 경우 CloudFront는 오류 메시지를 로그 파일에 기록합니다. 그런 다음 CloudFront는 로그를 Lambda 함수가 실행된 리전의 CloudWatch 로그에 게시합니다. 로그 그룹/aws/cloudfront/LambdaEdge/DistributionId 형식을 사용합니다. CloudWatch Logs 로그 파일을 찾을 수 있는 리전을 찾으려면 Lambda@Edge 리전 확인을 참조하십시오.

관련 정보

보고서, 지표, 로그

계정에서 로그를 CloudWatch로 푸시하는지 확인

AWS 공식업데이트됨 4달 전