

# 이벤트 컨텍스트 형식 및 사용법
<a name="olap-event-context"></a>

**참고**  
2025년 11월 7일부터 S3 Object Lambda는 현재 서비스를 사용하고 있는 기존 고객과 AWS 파트너 네트워크(APN) 파트너를 선택하는 고객만 사용할 수 있습니다. S3 Object Lambda와 유사한 기능의 경우 [Amazon S3 Object Lambda 가용성 변경](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html) 섹션에서 자세히 알아보세요.

Amazon S3 객체 Lambda는 AWS Lambda 함수에 전달된 이벤트에서 수행되는 요청에 대한 컨텍스트를 제공합니다. 다음 그림에서는 요청 예시를 보여줍니다. 필드에 대한 설명은 예시 뒤에 포함되어 있습니다.

```
{
    "xAmzRequestId": "{{requestId}}",
    "getObjectContext": {
        "inputS3Url": "https://{{my-s3-ap-111122223333}}.s3-accesspoint.{{us-east-1}}.amazonaws.com/example?X-Amz-Security-Token=<snip>",
        "outputRoute": "io-use1-001",
        "outputToken": "{{OutputToken}}"
    },
    "configuration": {
        "accessPointArn": "arn:aws:s3-object-lambda:{{us-east-1}}:{{111122223333}}:accesspoint/{{example-object-lambda-ap}}",
        "supportingAccessPointArn": "arn:aws:s3:{{us-east-1}}:{{111122223333}}:accesspoint/{{example-ap}}",
        "payload": "{}"
    },
    "userRequest": {
        "url": "https://{{object-lambda-111122223333}}.s3-object-lambda.{{us-east-1}}.amazonaws.com/{{example}}",
        "headers": {
            "Host": "{{object-lambda-111122223333}}.s3-object-lambda.{{us-east-1}}.amazonaws.com",
            "Accept-Encoding": "identity",
            "X-Amz-Content-SHA256": "{{e3b0c44298fc1example}}"
        }
    },
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "{{principalId}}",
        "arn": "arn:aws:sts::{{111122223333}}:assumed-role/Admin/{{example}}",
        "accountId": "{{111122223333}}",
        "accessKeyId": "{{accessKeyId}}",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "Wed Mar 10 23:41:52 UTC 2021"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "{{principalId}}",
                "arn": "arn:aws:iam::{{111122223333}}:role/Admin",
                "accountId": "{{111122223333}}",
                "userName": "Admin"
            }
        }
    },
    "protocolVersion": "1.00"
}
```

요청에는 다음 필드가 포함됩니다.
+ `xAmzRequestId` – 이 요청에 대한 Amazon S3 요청 ID입니다. 디버깅에 도움이 되도록 이 값을 기록하는 것이 좋습니다.
+ `getObjectContext` – Amazon S3 및 S3 객체 Lambda 연결에 대한 입력 및 출력 세부 정보입니다.
  + `inputS3Url` – Amazon S3에서 원본 객체를 가져오는 데 사용할 수 있는 미리 서명된 URL입니다. URL은 원래 호출자의 ID를 사용하여 서명되며 URL이 사용될 때 해당 사용자의 권한이 적용됩니다. URL에 서명된 헤더가 있는 경우 Lambda 함수가 Amazon S3에 대한 호출에 이러한 헤더를 포함해야 합니다(`Host` 헤더 제외).
  + `outputRoute` - Lambda 함수에서 를 호출할 때 S3 객체 Lambda URL에 추가되는 라우팅 토큰입니다.`WriteGetObjectResponse`
  + `outputToken` – S3 객체 Lambda에서 원래 호출자와 일치하는 `WriteGetObjectResponse` 호출을 찾을 때 사용되는 불투명 토큰입니다.
+ `configuration` – 객체 Lambda 액세스 포인트에 대한 구성 정보입니다.
  + `accessPointArn` – 이 요청을 수신한 객체 Lambda 액세스 포인트의 Amazon 리소스 이름(ARN)입니다.
  + `supportingAccessPointArn` – 객체 Lambda 액세스 포인트 구성에 지정된 지원 액세스 포인트의 ARN입니다.
  + `payload` – 객체 Lambda 액세스 포인트 구성에 적용되는 사용자 지정 데이터입니다. S3 객체 Lambda는 이 데이터를 불투명 한 문자열로 취급하므로 사용하기 전에 데이터를 디코딩해야 할 수도 있습니다.
+ `userRequest` – S3 객체 Lambda에 대한 원래 호출에 대한 정보입니다.
  + `url` – 권한 부여 관련 쿼리 파라미터를 제외하고 S3 객체 Lambda에서 수신한 요청의 디코딩된 URL입니다.
  + `headers` – 권한 부여 관련 헤더를 제외하고 원래 호출의 HTTP 헤더와 해당 값을 포함하는 문자열에 대한 문자열 맵입니다. 동일한 헤더가 여러 번 나타나는 경우 동일한 헤더를 갖는 각 인스턴스의 값은 쉼표로 구분된 목록으로 결합됩니다. 이 맵에는 원래 헤더의 대/소문자가 유지됩니다.
+ `userIdentity` – S3 객체 Lambda를 호출한 ID에 대한 세부 정보입니다. 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [추적을 위해 데이터 이벤트 로깅](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)을 참조하세요.
  + `type` – 자격 증명의 유형입니다.
  + `accountId` – 자격 증명이 속한 AWS 계정 계정입니다.
  + `userName` – 호출을 수행한 자격 증명의 표시 이름입니다.
  + `principalId` – 호출을 수행한 자격 증명에 대한 고유 식별자입니다.
  + `arn` – 호출을 수행한 보안 주체의 ARN입니다. ARN의 마지막 섹션에는 호출을 수행한 사용자 또는 역할이 포함됩니다.
  + `sessionContext` – 임시 보안 자격 증명으로 요청이 이루어진 경우 이 요소는 해당 자격 증명을 위해 생성된 세션에 관한 정보를 제공합니다.
  + `invokedBy` – 요청을 수행한 AWS 서비스의 이름입니다(예: Amazon EC2 Auto Scaling 또는 AWS Elastic Beanstalk).
  + `sessionIssuer` – 임시 보안 자격 증명으로 요청이 이루어진 경우 이 요소는 자격 증명을 획득하는 방법에 관한 정보를 제공합니다.
+ `protocolVersion` – 제공된 컨텍스트의 버전 ID입니다. 이 필드의 형식은 `{Major Version}.{Minor Version}`입니다. 마이너 버전 번호는 항상 2자리 숫자입니다. 필드의 의미 체계를 제거하거나 변경하면 메이저 버전 범프가 필요하며 활성 옵트인이 요구됩니다. Amazon S3는 언제든지 새 필드를 추가할 수 있으며, 이 시점에서 마이너 버전 범프가 발생할 수 있습니다. 소프트웨어 롤아웃의 특성으로 인해 한 번에 여러 개의 마이너 버전이 표시될 수 있습니다.