

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

# 事件內容格式和用量
<a name="olap-event-context"></a>

**注意**  
自 2025 年 11 月 7 日起，S3 Object Lambda 僅適用於目前正在使用該服務的現有客戶，以及選取 AWS 合作夥伴網路 (APN) 合作夥伴。對於類似於 S3 Object Lambda 的功能，請在此處進一步了解 - [Amazon S3 Object Lambda 可用性變更](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)。

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 使用者指南》**中的[記錄資料事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。
  + `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 可以隨時新增欄位，此時您可能會遇到次要版本凸起。由於軟體發行的性質，您可能會同時看到多個次要版本正在使用中。