Struktur pesan peristiwa - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Struktur pesan peristiwa

Pesan notifikasi yang dikirimkan Amazon S3 untuk mempublikasikan suatu acara ada dalam format. JSON

Untuk ikhtisar umum dan petunjuk tentang mengonfigurasi pemberitahuan peristiwa, lihat Notifikasi Peristiwa Amazon S3.

Contoh ini menunjukkan versi 2.2 dari JSON struktur pemberitahuan acara. Amazon S3 menggunakan versi 2.1, 2.2, dan 2.3 dari struktur peristiwa ini. Amazon S3 menggunakan versi 2.2 untuk pemberitahuan peristiwa replikasi lintas wilayah. Ini menggunakan versi 2.3 untuk Siklus Hidup S3, S3 Intelligent-Tiering, objek, penandaan objekACL, dan peristiwa penghapusan restorasi objek. Versi ini berisi informasi tambahan kustom untuk operasi ini. Versi 2.2 dan 2.3 sebaliknya kompatibel dengan versi 2.1, yang saat ini digunakan Amazon S3 untuk semua jenis pemberitahuan peristiwa lainnya.

{ "Records":[ { "eventVersion":"2.2", "eventSource":"aws:s3", "awsRegion":"us-west-2", "eventTime":"The time, in ISO-8601 format, for example, 1970-01-01T00:00:00.000Z, when Amazon 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":"amzn-s3-demo-bucket", "ownerIdentity":{ "principalId":"Amazon-customer-ID-of-the-bucket-owner" }, "arn":"bucket-ARN" }, "object":{ "key":"object-key", "size":"object-size in bytes", "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" } }, "glacierEventData": { "restoreEventData": { "lifecycleRestorationExpiryTime": "The time, in ISO-8601 format, for example, 1970-01-01T00:00:00.000Z, of Restore Expiry", "lifecycleRestoreStorageClass": "Source storage class for restore" } } } ] }

Perhatikan hal berikut tentang struktur pesan peristiwa:

  • Nilai kunci eventVersion mengandung versi besar dan kecil, dalam bentuk <major>.<minor>.

    Versi utama bertambah jika Amazon S3 membuat perubahan pada struktur peristiwa yang tidak kompatibel dengan versi sebelumnya. Ini termasuk menghapus JSON bidang yang sudah ada atau mengubah cara isi bidang direpresentasikan (misalnya, format tanggal).

    Versi minor ditingkatkan jika Amazon S3 menambahkan bidang baru ke struktur peristiwa. Hal ini dapat terjadi jika informasi baru diberikan untuk beberapa atau semua peristiwa yang ada. Ini mungkin juga terjadi jika informasi baru hanya diberikan pada jenis peristiwa yang baru diperkenalkan. Aplikasi sebaiknya mengabaikan bidang baru untuk tetap kompatibel dengan versi kecil struktur peristiwa baru.

    Jika jenis peristiwa baru diperkenalkan tetapi struktur peristiwa tidak dimodifikasi, versi peristiwa tidak akan berubah.

    Untuk memastikan aplikasi Anda dapat menguraikan struktur peristiwa dengan benar, kami menyarankan Anda melakukan perbandingan yang setara dengan nomor versi besar. Untuk memastikan bahwa bidang yang diharapkan oleh aplikasi Anda ada, kami juga merekomendasikan melakukan perbandingan greater-than-or-equal -to pada versi minor.

  • Angka eventName mereferensikan daftar jenis notifikasiperistiwa tetapi tidak berisi prefiks s3:.

  • Nilai responseElements kunci berguna jika Anda ingin melacak permintaan dengan menindaklanjuti AWS Support. Baik x-amz-request-id maupun x-amz-id-2 membantu Amazon S3 menelusuri permintaan individu. Nilai-nilai ini sama dengan nilai yang dikembalikan Amazon S3 sebagai respons terhadap permintaan yang memulai peristiwa. Ini agar mereka dapat digunakan untuk mencocokkan peristiwa dengan permintaan.

  • Kunci s3 memberikan informasi tentang bucket dan objek yang terlibat dalam peristiwa tersebut. Nilai nama kunci objek URL dikodekan. Misalnya, "red flower.jpg" menjadi "red+flower.jpg" (Amazon S3 mengembalikan "application/x-www-form-urlencoded" sebagai jenis konten di dalam respons tersebut).

  • Kunci sequencer memberikan cara untuk menentukan urutan peristiwa. Pemberitahuan peristiwa tidak dijamin akan tiba dalam urutan yang sama dengan peristiwa yang terjadi. Namun, pemberitahuan dari peristiwa yang membuat objek (PUT) dan menghapus objek berisi file sequencer. Ini dapat digunakan untuk menentukan urutan peristiwa untuk kunci objek tertentu.

    Jika Anda membandingkan string sequencer dari dua notifikasi peristiwa pada kunci objek yang sama, pemberitahuan peristiwa dengan nilai heksadesimal sequencer yang lebih besar adalah peristiwa yang terjadi kemudian. Jika Anda menggunakan notifikasi peristiwa untuk memelihara basis data atau indeks terpisah dari objek Amazon S3, kami sarankan Anda membandingkan dan menyimpan nilai sequencer saat Anda memproses setiap pemberitahuan peristiwa.

    Perhatikan hal berikut:

    • Anda tidak dapat menggunakan sequencer untuk menentukan urutan peristiwa dengan kunci objek yang berbeda.

    • Urutan dapat memiliki panjang berbeda. Jadi, untuk membandingkan nilai-nilai ini, pertama-tama masukkan nilai yang lebih pendek dengan nol, dan kemudian melakukan perbandingan leksikografis.

  • Kunci glacierEventData hanya terlihat untuk peristiwa s3:ObjectRestore:Completed.

  • Kunci restoreEventData berisi atribut yang terkait dengan permintaan pemulihan Anda.

  • Kunci replicationEventData hanya terlihat untuk peristiwa replikasi.

  • Kunci intelligentTieringEventData hanya terlihat untuk peristiwa S3 Intelligent-Tiering.

  • Kunci lifecycleEventData hanya terlihat untuk peristiwa transisi Siklus Hidup S3.

Contoh pesan

Berikut ini adalah contoh dari pesan notifikasi peristiwa Amazon S3.

Olahpesan pengujian Amazon S3

Setelah mengonfigurasi notifikasi peristiwa di bucket, Amazon S3 mengirimkan pesan pengujian berikut.

{ "Service":"Amazon S3", "Event":"s3:TestEvent", "Time":"2014-10-13T15:57:02.089Z", "Bucket":"amzn-s3-demo-bucket", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
Contoh pesan saat objek dibuat menggunakan PUT permintaan

Olahpesan berikut adalah contoh pesan yang dikirimkan Amazon S3 untuk menerbitkan peristiwa s3:ObjectCreated:Put.

{ "Records":[ { "eventVersion":"2.1", "eventSource":"aws:s3", "awsRegion":"us-west-2", "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":"amzn-s3-demo-bucket", "ownerIdentity":{ "principalId":"A3NL1KOZZKExample" }, "arn":"arn:aws:s3:::amzn-s3-demo-bucket" }, "object":{ "key":"HappyFace.jpg", "size":1024, "eTag":"d41d8cd98f00b204e9800998ecf8427e", "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko", "sequencer":"0055AED6DCD90281E5" } } } ] }

Untuk definisi setiap awalan IAM identifikasi (misalnya,,,AGPA) AIDAAROA, lihat IAMpengidentifikasi di IAMPanduan Pengguna.