本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
事件內容格式和用量
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 Object Lambda 的輸入和輸出詳細資訊。-
inputS3Url
— 可用來從 Amazon S3 擷取原始物件的預先簽署URL。會使URL用原始呼叫者的身分來簽署,並在使用時套用該使用者的URL權限。如果中有已簽署的標頭URL,Lambda 函數必須在呼叫 Amazon S3 時包含這些標頭,標Host
頭除外。 -
outputRoute
— 當 Lambda 函數呼叫URL時,新增至 S3 物件 Lambda 的路由權杖WriteGetObjectResponse
。 -
outputToken
- S3 Object Lambda 用來將WriteGetObjectResponse
呼叫與原始呼叫者進行比對的不透明字符。
-
-
configuration
:有關 Object Lambda 存取點的組態資訊。-
accessPointArn
— 收到此請求的物件 Lambda 存取點的 Amazon 資源名稱 (ARN)。 -
supportingAccessPointArn
— 物件 Lambda 存取點組態中指定ARN的支援存取點。 -
payload
:套用至 Object Lambda 存取點組態的自訂資料。S3 Object Lambda 將此資料視為不透明字串,因此可能需要在使用之前進行解碼。
-
-
userRequest
:原始呼叫 S3 Object Lambda 的相關資訊。-
url
— S3 物件 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 可以隨時新增欄位,此時您可能會遇到次要版本凸起。由於軟體發行的性質,您可能會同時看到多個次要版本正在使用中。