이벤트 컨텍스트 형식 및 사용법
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 함수에서WriteGetObjectResponse
를 호출할 때 S3 객체 Lambda URL에 추가되는 라우팅 토큰입니다. -
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는 언제든지 새 필드를 추가할 수 있으며, 이 시점에서 마이너 버전 범프가 발생할 수 있습니다. 소프트웨어 롤아웃의 특성으로 인해 한 번에 여러 개의 마이너 버전이 표시될 수 있습니다.