HTTP API 액세스 로그 사용자 정의 - Amazon API Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

HTTP API 액세스 로그 사용자 정의

다음 변수를 사용하여 HTTP API 액세스 로그를 사용자 지정할 수 있습니다. HTTP API의 액세스 로그에 대해 자세히 알아보려면 HTTP API의 로깅 구성 단원을 참조하십시오.

파라미터 설명
$context.accountId

API 소유자의 AWS 계정 ID.

$context.apiId

식별자 API Gateway가 API에 할당합니다.

$context.authorizer.claims.property

메서드 호출자가 성공적으로 인증된 후 JSON 웹 토큰 (JWT) 에서 반환되는 클레임의 속성 (예:). $context.authorizer.claims.username 자세한 내용은 JWT 권한 부여자를 사용하여 HTTP API에 대한 액세스 제어 단원을 참조하세요.

참고

$context.authorizer.claims를 호출하면 null이 반환됩니다.

$context.authorizer.error 권한 부여자로부터 반환된 오류 메시지입니다.
$context.authorizer.principalId

Lambda 권한 부여자가 반환하는 보안 주체 사용자 자격 증명입니다.

$context.authorizer.property

API Gateway Lambda 권한 부여자 함수에서 반환된 context 맵의 지정된 키-값 페어의 값입니다. 예를 들어, 권한 부여자는 다음 context 맵을 반환합니다.

"context" : { "key": "value", "numKey": 1, "boolKey": true }

$context.authorizer.key를 호출하면 "value" 문자열이 반환되고, $context.authorizer.numKey를 호출하면 1이 반환되고, $context.authorizer.boolKey를 호출하면 true가 반환됩니다.

$context.awsEndpointRequestId

또는 AWS 헤더에 있는 엔드포인트의 요청 ID. x-amz-request-id x-amzn-requestId

$context.awsEndpointRequestId2

x-amz-id-2헤더에 있는 AWS 엔드포인트의 요청 ID.

$context.customDomain.basePathMatched

들어오는 요청이 일치하는 API 매핑의 경로입니다. 클라이언트가 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 적용할 수 있습니다. 예를 들어 클라이언트가 https://api.example.com/v1/orders/1234에 요청을 보내고 요청이 API 매핑을 경로 v1/orders와(과) 일치시키는 경우 값은 v1/orders입니다. 자세한 내용은 HTTP API에 대한 API 매핑 작업 단원을 참조하십시오.

$context.dataProcessed 처리된 데이터의 양(바이트)입니다.
$context.domainName

API를 호출하는 데 사용되는 정식 도메인 이름입니다. 이 이름은 수신되는 Host 헤더와 동일해야 합니다.

$context.domainPrefix

$context.domainName의 첫 번째 레이블입니다.

$context.error.message

API Gateway 오류 메시지가 포함된 문자열입니다.

$context.error.messageString $context.error.message의 따옴표 붙은 값, 즉 "$context.error.message"입니다.
$context.error.responseType

GatewayResponse의 한 유형입니다. 자세한 내용은 CloudWatch 지표로 WebSocket API 실행 모니터링오류 응답을 사용자 지정하도록 게이트웨이 응답 설정 단원을 참조하십시오.

$context.extendedRequestId $context.requestId와 동일합니다.
$context.httpMethod

사용된 HTTP 메서드입니다. 유효한 값에는 DELETE, GET, HEAD, OPTIONS, PATCH, POSTPUT이 있습니다.

$context.identity.accountId

요청과 관련된 AWS 계정 ID. IAM 권한 부여를 사용하는 라우팅에 대해 지원됩니다.

$context.identity.caller

요청에 서명한 호출자의 보안 주체 ID입니다. IAM 권한 부여를 사용하는 라우팅에 대해 지원됩니다.

$context.identity.cognitoAuthenticationProvider

요청을 작성한 호출자가 사용한 Amazon Cognito 인증 공급자의 쉼표로 구분된 목록입니다. Amazon Cognito 자격 증명으로 요청을 서명한 경우에만 사용할 수 있습니다.

예를 들어, Amazon Cognito 사용자 풀의 자격 증명의 경우 cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

자세한 내용은 Amazon Cognito 개발자 안내서연동 자격 증명 사용을 참조하세요.

$context.identity.cognitoAuthenticationType

요청을 작성한 호출자의 Amazon Cognito 인증 유형입니다. Amazon Cognito 자격 증명으로 요청을 서명한 경우에만 사용할 수 있습니다. 가능한 값에는 인증 자격 증명에 대한 authenticated 및 미인증 자격 증명에 대한 unauthenticated이(가) 포함됩니다.

$context.identity.cognitoIdentityId

요청을 작성한 호출자의 Amazon Cognito 자격 증명 ID입니다. Amazon Cognito 자격 증명으로 요청을 서명한 경우에만 사용할 수 있습니다.

$context.identity.cognitoIdentityPoolId

요청을 작성한 호출자의 Amazon Cognito 자격 증명 풀 ID입니다. Amazon Cognito 자격 증명으로 요청을 서명한 경우에만 사용할 수 있습니다.

$context.identity.principalOrgId

AWS 조직 ID입니다. IAM 권한 부여를 사용하는 라우팅에 대해 지원됩니다.

$context.identity.clientCert.clientCertPem

상호 TLS 인증 시 클라이언트가 제공한 PEM 인코딩된 클라이언트 인증서입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.clientCert.subjectDN

클라이언트가 제공하는 인증서의 주체가 갖는 고유 이름입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.clientCert.issuerDN

클라이언트가 제공하는 인증서의 발행자가 갖는 고유 이름입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.clientCert.serialNumber

인증서의 일련 번호입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.clientCert.validity.notBefore

인증서의 유효 기간이 시작되는 날짜입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.clientCert.validity.notAfter

인증서의 유효 기간이 끝나는 날짜입니다. 클라이언트에서 상호 TLS가 활성화된 사용자 지정 도메인 이름을 사용하여 API에 액세스할 때 제공됩니다.

$context.identity.sourceIp

API Gateway 엔드포인트를 요청하는 즉시 TCP 연결의 소스 IP 주소입니다.

$context.identity.user

리소스 액세스에 대해 권한을 부여할 사용자의 보안 주체 ID입니다. IAM 권한 부여를 사용하는 라우팅에 대해 지원됩니다.

$context.identity.userAgent

API 호출자의 User-Agent 헤더입니다.

$context.identity.userArn

인증 후 식별된 실제 사용자의 ARN(Amazon Resource Name)입니다. IAM 권한 부여를 사용하는 라우팅에 대해 지원됩니다. 자세한 내용은 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html 단원을 참조하세요.

$context.integration.error 통합에서 반환된 오류 메시지입니다. $context.integrationErrorMessage와 동일합니다.
$context.integration.integrationStatus Lambda 프록시 통합의 경우, 백엔드 Lambda 함수 코드가 아닌 AWS Lambda에서 상태 코드가 반환되었습니다.
$context.integration.latency 통합 지연 시간(ms)입니다. $context.integrationLatency와 동일합니다.
$context.integration.requestId 엔드포인트의 요청 ID. AWS $context.awsEndpointRequestId와 동일합니다.
$context.integration.status 통합에서 반환된 상태 코드입니다. Lambda 프록시 통합의 경우 Lambda 함수 코드에서 반환된 상태 코드입니다.
$context.integrationErrorMessage

통합 오류 메시지가 포함된 문자열입니다.

$context.integrationLatency 통합 지연 시간(ms)입니다.
$context.integrationStatus Lambda 프록시 통합의 경우 이 파라미터는 백엔드 Lambda 함수가 아니라 반환된 AWS Lambda상태 코드를 나타냅니다.
$context.path 요청 경로입니다. 예: /{stage}/root/child.
$context.protocol 요청 프로토콜입니다(예: HTTP/1.1).
참고

API Gateway API는 HTTP/2 요청을 수락할 수 있지만 API Gateway는 HTTP/1.1을 사용하여 백엔드 통합에 요청을 보냅니다. 따라서 클라이언트가 HTTP/2를 사용하는 요청을 보내더라도 요청 프로토콜은 HTTP/1.1로 기록됩니다.

$context.requestId

API Gateway가 API 요청에 할당하는 ID입니다.

$context.requestTime CLF 형식 요청 시간(dd/MMM/yyyy:HH:mm:ss +-hhmm)입니다.
$context.requestTimeEpoch Epoch 형식 요청 시간입니다.
$context.responseLatency 응답 지연 시간(ms)입니다.
$context.responseLength 바이트로 된 응답 페이로드 길이입니다.
$context.routeKey

API 요청의 경로 키입니다(예: /pets).

$context.stage

API 요청의 개발 단계입니다(예: beta 또는 prod).

$context.status 메서드 응답 상태입니다.