기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSSupport-TroubleshootAPIGatewayHttpErrors
설명
AWSSupport-TroubleshootAPIGatewayHttpErrors 실행서는 액세스 및/또는 실행 로그를 구문 분석하고 오류를 분석하여 re:Post 문서 및 AWS 설명서를 통해 수정 단계를 제공하여 배포된 Amazon API Gateway REST API를 호출할 때 5XX/4XX 오류를 해결하는 데 도움이 됩니다.
중요
이 런북에는 다음과 같은 제한 사항이 있습니다.
로깅을 활성화해야 합니다. API Gateway 콘솔을 사용하여 Amazon CloudWatch API 로깅 설정을 참조하세요.
오류(들)가 발생하기 전에 로그가 활성화되어 있어야 합니다. 로그 캡처 및 분석은 소급하여 수행할 수 없습니다.
포함된 오류: 500, 502, 503, 504, 401, 403, 429.
REST API만 지원됩니다. WebSocket 및 HTTP(v2)는이 실행서에서 다루지 않습니다.
중요
이 실행서를 사용하면 REST API에서 캡처한 Amazon CloudWatch Logs 및 분석에 사용된 CloudWatch Logs Insights에 대해 AWS 계정에 추가 요금이 발생할 수 있습니다. 발생할 수 있는 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을aws:deletestack 단계가 실패하면 CloudFormation 콘솔로 이동하여 스택을 수동으로 삭제합니다. 이 실행서에서 만든 스택 이름은 AWSSupport-TroubleshootAPIGatewayHttpErrors로 시작합니다. CloudFormation 스택 삭제에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 스택 삭제를 참조하세요.
어떻게 작동하나요?
실행서는 다음 검증 및 분석 단계를 수행합니다.
지정된 REST API가 존재하고 필요한 권한이 있는지 확인합니다.
지정된 단계가 API에 존재하는지 확인합니다.
지정된 리소스 경로가 API에 존재하는지 확인합니다.
리소스에 대해 지정된 HTTP 메서드가 존재하는지 확인합니다.
지정된 파라미터 및 시간 범위에 대한 CloudWatch Logs를 분석하여 오류를 식별하고 문제 해결 권장 사항을 제공합니다.
문서 유형
자동화
소유자
Amazon
플랫폼
/
필수 IAM 권한
실행서를 성공적으로 사용하려면 AutomationAssumeRole 파라미터에 다음 작업이 필요합니다.
apigateway:GETlogs:CreateLogGrouplogs:CreateLogStreamlogs:DescribeLogGroupslogs:DescribeLogStreamslogs:PutLogEventslogs:StartQuerylogs:GetQueryResults
IAM 정책 예제:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:StartQuery", "logs:GetQueryResults" ], "Resource": "*" } ] }
지침
다음 단계에 따라 자동화를 구성합니다.
-
Systems Manager
AWSSupport-TroubleshootAPIGatewayHttpErrors의 문서로 이동합니다. -
Execute automation(자동화 실행)을 선택합니다.
-
입력 파라미터에 다음을 입력합니다.
-
AutomationAssumeRole(선택 사항):
-
설명: (선택 사항) SSM Automation이 사용자를 대신하여 작업을 수행하도록 허용하는 (IAM) 역할의 AWS Identity and Access Management Amazon 리소스 이름(ARN)입니다. 역할이 지정되지 않은 경우 SSM Automation은이 실행서를 시작하는 사용자의 권한을 사용합니다.
-
유형:
AWS::IAM::Role::Arn
-
-
RestApiId(필수):
설명: (필수) 문제 해결이 필요한 API의 API ID입니다. 10자의 영숫자 문자열이어야 합니다.
유형:
String-
허용된 패턴:
^[a-zA-Z0-9]{10}$
-
StageName(필수):
설명: (필수) 배포된 단계의 이름입니다. 문자, 숫자, 밑줄 또는 하이픈을 포함하는 1~128자여야 합니다.
유형:
String-
허용된 패턴:
^[a-zA-Z0-9_\\-]{1,128}$
-
ResourcePath(선택 사항):
설명: (선택 사항) 메서드가 구성된 리소스 경로입니다. 예:
/,/store/items,/{resource}.유형:
String기본값:
/
-
HttpMethod(선택 사항):
설명: (선택 사항) 구성된 리소스 경로의 메서드입니다.
유형:
String-
허용된 값:
[ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH] 기본값:
GET
-
StartTime(선택 사항):
설명: (선택 사항) CloudWatch Logs를 쿼리하기 위한 시작 날짜 및 시간입니다. 형식: UTC 시간대
yyyy-MM-ddTHH:mm:ss입니다. 지정하지 않으면 기본값은 현재 시간 3일 전입니다.유형:
String-
허용된 패턴:
^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$ -
기본값:
""
-
EndTime(선택 사항):
설명: (선택 사항) CloudWatch Logs 쿼리의 종료 날짜 및 시간입니다. 형식: UTC 시간대
yyyy-MM-ddTHH:mm:ss입니다. 지정하지 않으면 기본값은 현재 시간입니다.유형:
String-
허용된 패턴:
^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$ -
기본값:
""
-
AccessLogs(선택 사항):
설명: (선택 사항) 액세스 로그를 분석해야 하는지 여부입니다.
유형:
Boolean-
허용된 값:
[true, false] 기본값:
false
-
RequestId(선택 사항):
설명: (선택 사항) 오류가 관찰된 요청에 대한 요청 ID입니다. 유효한 UUID 형식이어야 합니다.
유형:
String-
허용된 패턴:
^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ 기본값:
""
-
-
실행을 선택합니다.
-
자동화가 시작됩니다.
-
문서는 다음 단계를 수행합니다.
-
CheckApiExists:
제공된 REST API가 존재하고 액세스에 필요한 권한이 있는지 확인합니다.
-
CheckStageExists:
제공된 단계 이름이 지정된 API에 있는지 확인하고 액세스 로그 그룹 정보를 검색합니다.
-
CheckResourceExists:
제공된 리소스 경로가 API에 있는지 확인하고 리소스 ID를 검색합니다.
-
CheckMethodExists:
지정된 리소스에 대해 제공된 HTTP 메서드가 존재하는지 확인합니다.
-
AnalyseLogs:
제공된 파라미터를 사용하여 로그를 검색하고 발견된 오류를 기반으로 권장 사항을 반환합니다. 이 단계에서는 실행 및 액세스 로그(활성화된 경우)를 모두 분석하여 4XX 및 5XX 오류를 식별하고 특정 수정 지침을 제공합니다.
-
-
완료 후 출력 섹션에서 오류 분석 및 문제 해결 권장 사항을 포함한 실행의 자세한 결과를 검토합니다.
참조
Systems Manager Automation