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.5 dari struktur JSON notifikasi peristiwa. Sebelumnya, Amazon S3 menggunakan versi yang berbeda untuk jenis acara yang berbeda. Peristiwa umum digunakan versi 2.1, peristiwa replikasi lintas wilayah yang digunakan 2.2, dan Siklus Siklus S3, S3 Intelligent-Tiering, ACL objek, penandaan objek, dan pemulihan objek menghapus peristiwa yang digunakan versi 2.3.
Dimulai dengan versi 2.4, Amazon S3 menggunakan satu versi terpadu untuk semua jenis peristiwa, dan versi bertambah secara konsisten di semua jenis peristiwa setiap kali skema berkembang. Setiap acara berisi informasi tambahan khusus untuk operasi.
Ukuran maksimum pesan notifikasi acara adalah 64 KB. Saat menggunakan Amazon SQS sebagai tujuan, sebaiknya atur MaximumMessageSize atribut antrian setidaknya 64 KB. Jika notifikasi acara melebihi antrian yang dikonfigurasiMaximumMessageSize, Amazon SQS menolak notifikasi dan tidak mengirimkan acara tersebut. Untuk informasi selengkapnya, lihat Jenis dan tujuan pemberitahuan peristiwa.
{ "Records":[ { "eventVersion":"2.5", "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-bucketThe Amazon retail customer ID of the bucket owner" }, "arn":"The bucket Amazon Resource Name (ARN)", "awsGeneratedTags":"A map of tag key-value pairs generated by AWS services and attached to the bucket; only present when AWS generated tags exist on the bucket. This field is not present for cross-Region replication events" }, "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
eventVersionmengandung versi besar dan kecil, dalam bentuk.major.minorVersi 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 bertambah jika Amazon S3 membuat perubahan yang kompatibel ke belakang pada struktur acara. Ini termasuk menambahkan bidang baru ke struktur acara atau memperkenalkan jenis acara baru. Agar tetap kompatibel dengan versi minor baru dari struktur acara, kami menyarankan agar aplikasi Anda mengabaikan bidang baru.
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 tersedia, kami juga menyarankan untuk melakukan perbandingan yang lebih besar dari pada versi minor.
-
Nilai
eventNamekunci mereferensikan daftar jenis notifikasi https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinations.html peristiwa tetapi tidak berisis3:awalan. -
Nilai
userIdentitykunci mereferensikan ID unik sumber daya AWS Identity and Access Management (IAM) (pengguna, peran, grup, dan sebagainya) yang menyebabkan peristiwa. 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
responseElementskunci berguna jika Anda ingin melacak permintaan dengan menindaklanjuti dengan AWS Dukungan. Baikx-amz-request-idmaupunx-amz-id-2membantu 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
s3kunci memberikan informasi tentang bucket dan objek yang terlibat dalam acara tersebut. Nilai nama kunci objek dienkode URL. Misalnya,red flower.jpgmenjadired+flower.jpg. (Amazon S3 mengembalikanapplication/x-www-form-urlencoded"" sebagai jenis konten dalam respons.)Nilai
ownerIdentitykunci sesuai dengan ID pelanggan Amazon retail (Amazon.com) pemilik bucket. Nilai ID ini tidak lagi digunakan dan dipertahankan hanya untuk kompatibilitas mundur. -
Nilai
sequencerkunci 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 (PUTpermintaan) dan menghapus objek berisi asequencer. Anda dapat menggunakan nilai ini untuk menentukan urutan peristiwa untuk kunci objek tertentu.Jika Anda membandingkan string
sequencerdari dua notifikasi peristiwa pada kunci objek yang sama, pemberitahuan peristiwa dengan nilai heksadesimalsequenceryang 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 nilaisequencersaat Anda memproses setiap pemberitahuan peristiwa.Perhatikan hal-hal berikut:
-
Anda tidak dapat menggunakan nilai
sequencerkunci untuk menentukan urutan peristiwa pada kunci objek yang berbeda. -
Sen
sequencerar bisa memiliki panjang yang berbeda. Jadi, untuk membandingkan nilai-nilai ini, pertama bantalan kiri nilai yang lebih pendek dengan nol, lalu lakukan perbandingan leksikografi.
-
-
Nilai
glacierEventDatakunci hanya terlihat untuks3:ObjectRestore:Completedacara. -
Nilai
restoreEventDatakunci berisi atribut yang terkait dengan permintaan pemulihan Anda. -
Nilai
replicationEventDatakunci hanya terlihat untuk peristiwa replikasi. -
Nilai
intelligentTieringEventDatakunci hanya terlihat untuk Intelligent-Tiering peristiwa S3. -
Nilai
lifecycleEventDatakunci hanya terlihat untuk peristiwa transisi Siklus Hidup S3. -
Nilai
objectAnnotationkunci hanya terlihat untuk peristiwa anotasi (ObjectAnnotation:PutdanObjectAnnotation:Delete). Ini berisi array dengan anotasiname,size(Put event saja), daneTag(Put event saja). -
Untuk
ObjectCreated:Copyperistiwa,objectblok menyertakan bidanghasObjectAnnotationboolean yang menunjukkan apakah objek yang disalin memiliki anotasi.
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:TestEventPesan menggunakan format yang berbeda dari notifikasi peristiwa S3 biasa. Tidak seperti notifikasi peristiwa lain yang menggunakan struktur Records array yang ditunjukkan sebelumnya, acara pengujian menggunakan format yang disederhanakan dengan bidang langsung. Saat menerapkan penanganan peristiwa, pastikan kode Anda dapat membedakan dan menangani kedua format pesan dengan benar.
Contoh pesan saat objek dibuat menggunakan permintaan PUT
Berikut ini adalah contoh pesan yang dikirimkan Amazon S3 untuk menerbitkan peristiwa s3:ObjectCreated:Put.
{ "Records":[ { "eventVersion":"2.5", "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" } } } ] }