설명
SAM API의 액세스 로그는 요청 ID와 응답 상태 등 요청별 정보를 기록합니다. 설정하지 않으면 API Gateway 요청 이력을 분석할 자료가 부족할 수 있습니다.
잠재적 영향
장애 원인 분석이나 의심스러운 호출 추적에 필요한 기록을 확보하기 어렵습니다.
해결 방법
AWS::Serverless::Api에는 AccessLogSetting, AWS::Serverless::HttpApi에는 AccessLogSettings를 지정하세요. 로그 대상, 요청 ID를 포함한 포맷, 전달 권한과 보존 기간을 구성하세요.
예시
발췌 예시는 REST API의 요청 ID와 상태를 기록합니다. 로그 그룹은 별도로 만들고 API Gateway의 로그 전달 권한을 설정해야 합니다.
변경 전
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
TracingEnabled: true
변경 후
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
TracingEnabled: true
AccessLogSetting:
DestinationArn: arn:aws:logs:ap-northeast-2:123456789012:log-group:api-access-log
Format: '{"requestId":"$context.requestId","status":"$context.status"}'