Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Struktur pesan peristiwa
Pesan pemberitahuan yang dikirimkan Amazon S3 untuk menerbitkan kegiatan 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 struktur JSON notifikasi peristiwa. 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 ACL, penandaan objek, 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":"The event type
", "userIdentity":{ "principalId":"The unique ID of the IAM resource that caused the event
" }, "requestParameters":{ "sourceIPAddress":"The IP address where the request came from
" }, "responseElements":{ "x-amz-request-id":"The Amazon S3 generated request ID
", "x-amz-id-2":"The Amazon S3 host that processed the request
" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"The ID found in the bucket notification configuration
", "bucket":{ "name":"The name of the bucket, for example,
", "ownerIdentity":{ "principalId":"
amzn-s3-demo-bucket
The Amazon retail customer ID of the bucket owner
" }, "arn":"The bucket Amazon Resource Name (ARN)
" }, "object":{ "key":"The object key name
", "size":"The object size in bytes (as a number)
", "eTag":"The object entity tag (ETag)
", "versionId":"The object version if the bucket is versioning-enabled; null or not present if the bucket isn't versioning-enabled
", "sequencer": "A string representation of a hexadecimal value used to determine event sequence; only used with PUT and DELETE requests
" } }, "glacierEventData": { "restoreEventData": { "lifecycleRestorationExpiryTime": "The time, in ISO-8601 format (for example, 1970-01-01T00:00:00.000Z), when the temporary copy of the restored object expires
", "lifecycleRestoreStorageClass": "The source storage class for restored objects
" } } } ] }
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 bidang JSON yang sudah ada atau mengubah bagaimana 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 disediakan hanya untuk jenis acara yang baru diperkenalkan. Agar tetap kompatibel dengan versi minor baru dari struktur acara, kami menyarankan agar aplikasi Anda mengabaikan bidang baru.
Jika jenis acara baru diperkenalkan, tetapi struktur acara dinyatakan tidak dimodifikasi, versi acara tidak 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.
-
Nilai
eventName
kunci mereferensikan daftar jenis pemberitahuan acara tetapi tidak berisis3:
awalan. -
Nilai
userIdentity
kunci mereferensikan ID unik dari sumber daya AWS Identity and Access Management (IAM) (pengguna, peran, grup, dan sebagainya) yang menyebabkan peristiwa tersebut. Untuk definisi setiap awalan identifikasi IAM (misalnya, AIDA, AROA, AGPA) dan informasi tentang cara mendapatkan pengenal unik, lihat Pengidentifikasi unik di Panduan Pengguna IAM. -
Nilai
responseElements
kunci berguna jika Anda ingin melacak permintaan dengan menindaklanjuti AWS Dukungan. Baikx-amz-request-id
maupunx-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. Oleh karena itu, Anda dapat menggunakan nilai-nilai ini untuk mencocokkan acara dengan permintaan. -
Nilai
s3
kunci memberikan informasi tentang bucket dan objek yang terlibat dalam acara tersebut. Nilai nama kunci objek dienkode URL. Misalnya,red flower.jpg
menjadired+flower.jpg
. (Amazon S3 mengembalikan "application/x-www-form-urlencoded
" sebagai jenis konten dalam respons.)Nilai
ownerIdentity
kunci sesuai dengan ID pelanggan ritel Amazon dari pemilik bucket. Nilai ID ini tidak lagi digunakan dan dipertahankan hanya untuk kompatibilitas mundur. -
Nilai
sequencer
kunci menyediakan 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
permintaan) dan menghapus objek berisi filesequencer
. Anda dapat menggunakan nilai ini untuk menentukan urutan peristiwa untuk kunci objek yang diberikan.Jika Anda membandingkan string
sequencer
dari dua notifikasi peristiwa pada kunci objek yang sama, pemberitahuan peristiwa dengan nilai heksadesimalsequencer
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 nilaisequencer
saat Anda memproses setiap pemberitahuan peristiwa.Perhatikan hal berikut:
-
Anda tidak dapat menggunakan nilai
sequencer
kunci untuk menentukan urutan peristiwa pada kunci objek yang berbeda. -
sequencer
Senar bisa memiliki panjang yang berbeda. Jadi, untuk membandingkan nilai-nilai ini, pertama-tama kiri-pad nilai yang lebih pendek dengan nol, dan kemudian lakukan perbandingan leksikografis.
-
-
Nilai
glacierEventData
kunci hanya terlihat untuks3:ObjectRestore:Completed
acara. -
Nilai
restoreEventData
kunci berisi atribut yang terkait dengan permintaan pemulihan Anda. -
Nilai
replicationEventData
kunci hanya terlihat untuk peristiwa replikasi. -
Nilai
intelligentTieringEventData
kunci hanya terlihat untuk acara S3 Intelligent-Tiering. -
Nilai
lifecycleEventData
kunci 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":"
", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
amzn-s3-demo-bucket
catatan
s3:TestEvent
Pesan menggunakan format yang berbeda dari notifikasi acara S3 biasa. Tidak seperti pemberitahuan acara lain yang menggunakan struktur Records
array yang ditunjukkan sebelumnya, acara pengujian menggunakan format yang disederhanakan dengan bidang langsung. Saat menerapkan penanganan acara, pastikan kode Anda dapat membedakan antara dan menangani kedua format pesan dengan benar.
Contoh pesan saat objek dibuat menggunakan PUT
permintaan
Berikut ini 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":"172.16.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" } } } ] }