事件內容格式和用量 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

事件內容格式和用量

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:預先簽章 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 可以隨時新增欄位,此時您可能會遇到次要版本凸起。由於軟體發行的性質,您可能會同時看到多個次要版本正在使用中。