メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

イベントメッセージの構造

Amazon S3 がイベントを発行するために送信する通知メッセージは、次の構造を使用した JSON メッセージです。次の点に注意してください。

  • responseElements キー値は、Amazon S3 のサポートによってリクエストを追跡する場合に役立ちます。x-amz-request-idx-amz-id-2 のどちらも、Amazon S3 が個々のリクエストを追跡する上で有用です。これらの値は、イベントを開始した元の PUT リクエストへの応答として Amazon S3 が返した値と同じです。

  • s3 キーは、イベントに関与したバケットとオブジェクトに関する情報を提供します。オブジェクトの keyname 値は URL エンコードされます。たとえば、"red flower.jpg" は "red+flower.jpg" になります。

  • イベントのシーケンスを決定する方法の 1 つとして、sequencer キーがあります。イベントが発生した順序でイベント通知が届くとは限りません。オブジェクトを作成する(PUT)イベントとオブジェクトを削除するイベントの通知には sequencer が含まれており、これを使用して特定のオブジェクトキーのイベントの順序を特定できます。

    同じオブジェクトキーに対する 2 つのイベント通知の sequencer の文字列を比較すると、sequencer の 16 進値が大きいほうのイベント通知が後に発生したイベントであることがわかります。イベント通知を使用して Amazon S3 オブジェクトの別のデータベースまたはインデックスを維持している場合は、イベント通知を処理するたびに sequencer の値を比較し、保存することを推奨します。

    以下の点に注意してください。

    • 複数のオブジェクトキーのイベントの順序を決定するために sequencer を使用することはできません。

    • sequencer の長さが異なる場合があります。これらの値を比較するには、まず短い値の右側に 0 を挿入して同じ長さにしてから、辞書式比較を行います。

Copy
{ "Records":[ { "eventVersion":"2.0", "eventSource":"aws:s3", "awsRegion":"us-east-1", "eventTime":The time, in ISO-8601 format, for example, 1970-01-01T00:00:00.000Z, when S3 finished processing the request, "eventName":"event-type", "userIdentity":{ "principalId":"Amazon-customer-ID-of-the-user-who-caused-the-event" }, "requestParameters":{ "sourceIPAddress":"ip-address-where-request-came-from" }, "responseElements":{ "x-amz-request-id":"Amazon S3 generated request ID", "x-amz-id-2":"Amazon S3 host that processed the request" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"ID found in the bucket notification configuration", "bucket":{ "name":"bucket-name", "ownerIdentity":{ "principalId":"Amazon-customer-ID-of-the-bucket-owner" }, "arn":"bucket-ARN" }, "object":{ "key":"object-key", "size":object-size, "eTag":"object eTag", "versionId":"object version if bucket is versioning-enabled, otherwise null", "sequencer": "a string representation of a hexadecimal value used to determine event sequence, only used with PUTs and DELETEs" } } }, { // Additional events } ] }

次にメッセージの例を示します。

  • テストメッセージ - バケットにイベント通知を設定すると、Amazon S3 は次のようなテストメッセージを送信します。

    Copy
    { "Service":"Amazon S3", "Event":"s3:TestEvent", "Time":"2014-10-13T15:57:02.089Z", "Bucket":"bucketname", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
  • PUT リクエストを使用してオブジェクトが作成されたときのメッセージの例 - 次のメッセージは、Amazon S3 が s3:ObjectCreated:Put イベントを発行するために送信するメッセージの例です。

    Copy
    { "Records":[ { "eventVersion":"2.0", "eventSource":"aws:s3", "awsRegion":"us-east-1", "eventTime":"1970-01-01T00:00:00.000Z", "eventName":"ObjectCreated:Put", "userIdentity":{ "principalId":"AIDAJDPLRKLG7UEXAMPLE" }, "requestParameters":{ "sourceIPAddress":"127.0.0.1" }, "responseElements":{ "x-amz-request-id":"C3D13FE58DE4C810", "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"testConfigRule", "bucket":{ "name":"mybucket", "ownerIdentity":{ "principalId":"A3NL1KOZZKExample" }, "arn":"arn:aws:s3:::mybucket" }, "object":{ "key":"HappyFace.jpg", "size":1024, "eTag":"d41d8cd98f00b204e9800998ecf8427e", "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko", "sequencer":"0055AED6DCD90281E5" } } } ] }