事件內容格式和用量 - 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— 可用來從 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 可以隨時新增欄位,此時您可能會遇到次要版本凸起。由於軟體發行的性質,您可能會同時看到多個次要版本正在使用中。