本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
事件內容格式和用量
Amazon S3 Object 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 Object Lambda 的輸入和輸出詳細資訊。-
inputS3Url
:預先簽章 URL,可用於從 Amazon S3 擷取原始物件。URL 是使用原始呼叫者的身分進行簽署,而且該使用者的許可將在使用 URL 時套用。如果 URL 中有簽署的標頭,Lambda 函數必須在對 Amazon S3 的呼叫中包含這些標頭,除了Host
標頭之外。 -
outputRoute
– 當 Lambda 函數呼叫WriteGetObjectResponse
時,會新增至 S3 Object Lambda URL 的路由字符。 -
outputToken
- S3 Object Lambda 用來將WriteGetObjectResponse
呼叫與原始呼叫者進行比對的不透明字符。
-
-
configuration
:有關 Object Lambda 存取點的組態資訊。-
accessPointArn
:接收此請求之 Object Lambda 存取點的 Amazon Resource Name (ARN)。 -
supportingAccessPointArn
:Object Lambda 存取點組態中指定的支援存取點的 ARN。 -
payload
:套用至 Object Lambda 存取點組態的自訂資料。S3 Object Lambda 將此資料視為不透明字串,因此可能需要在使用之前進行解碼。
-
-
userRequest
:原始呼叫 S3 Object Lambda 的相關資訊。-
url
:S3 Object Lambda 接收之請求的解碼 URL,不包括任何授權相關的查詢參數。 -
headers
:從原始呼叫中包含 HTTP 標頭及其值之字串到字串的映射,不包括任何授權相關的標頭。如果相同的標頭出現多次,來自相同標頭的每個執行個體的值會合併成逗號分隔的清單。原始標頭的情形保留在此映射中。
-
-
userIdentity
:有關呼叫 S3 Object Lambda 身分的詳細資訊。如需詳細資訊,請參閱《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}
。次要版本號碼永遠是兩位數。對欄位的語意進行任何移除或變更都需要提升主要版本,並且需要主動選擇加入。Amazon S3 可以隨時新增欄位,此時您可能會遇到次要版本凸起。由於軟體發行的性質,您可能會同時看到多個次要版本正在使用中。