메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

이벤트 메시지 구조

이벤트를 게시하기 위해 Amazon S3가 전송하는 알림 메시지는 다음과 같은 구조의 JSON 메시지입니다. 다음을 참조하십시오.

  • Amazon S3 지원의 도움을 받아 요청을 추적하려는 경우 responseElements 키 값을 유용하게 사용할 수 있습니다. x-amz-request-idx-amz-id-2 모두 Amazon S3가 개별 요청을 추적하는 데 도움이 됩니다. 이 값들은 이벤트를 시작한 원래 PUT 요청에 대한 응답에서 Amazon S3가 반환하는 것과 같은 값입니다.

  • s3 키는 이벤트와 연관된 버킷 및 객체에 대한 정보를 제공합니다. 객체의 keyname 값은 URL로 인코딩되어 있습니다. 예를 들어 "red flower.jpg"는 "red+flower.jpg"가 됩니다.

  • sequencer 키는 이벤트 시퀀스를 정의하는 방법을 제공합니다. 이벤트 알림은 반드시 이벤트가 발생한 순서로 도착하지는 않습니다. 하지만 객체를 생성하고(PUT) 객체를 삭제하는 이벤트에는 sequencer가 포함되며, 이는 특정 객체 키에 대한 이벤트의 순서를 정의하는 데 사용할 수 있습니다.

    sequencer 문자열을 동일한 객체 키의 두 가지 이벤트 알림과 비교할 경우 sequencer 16진수 값이 더 큰 이벤트 알림이 나중에 발생한 이벤트입니다. 이벤트 알림을 사용하여 별도의 데이터베이스 또는 Amazon S3 객체의 인덱스를 관리할 경우 각 이벤트 알림을 처리할 때 sequencer 값을 비교하고 저장할 수 있습니다.

    참고:

    • sequencer는 다른 객체 키의 이벤트에 대한 순서를 정의하는 데 사용할 수 없습니다.

    • 시퀀서는 길이가 서로 다를 수 있습니다. 따라서 이러한 값을 비교하려면 먼저 right pad를 통해 짧은 값을 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" } } } ] }