이벤트 컨텍스트 형식 및 사용법 - Amazon Simple Storage Service

이벤트 컨텍스트 형식 및 사용법

참고

Amazon S3 Object Lambda는 2025년 11월 7일부터 신규 고객에게 더 이상 공개되지 않습니다. 해당 서비스를 사용하려면 2025년 11월 7일 이전에 가입하세요. S3 Object Lambda와 유사한 기능의 경우 Amazon S3 Object Lambda 가용성 변경 섹션에서 자세히 알아보세요.

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 사용 설명서추적을 위해 데이터 이벤트 로깅을 참조하세요.

    • 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는 언제든지 새 필드를 추가할 수 있으며, 이 시점에서 마이너 버전 범프가 발생할 수 있습니다. 소프트웨어 롤아웃의 특성으로 인해 한 번에 여러 개의 마이너 버전이 표시될 수 있습니다.