Dengan membuat aturan notifikasi event, Anda dapat menggunakan Simple Message Queue (SMQ) untuk mendorong pesan event dari resource Object Storage Service (OSS) ke titik akhir tertentu. Topik ini mencakup jenis event, format pesan, dan langkah-langkah untuk membuat aturan notifikasi.
Latar belakang
Setelah Anda membuat aturan notifikasi event, Simple Message Queue (SMQ) akan mendorong pesan event dari resource OSS yang ditentukan ke sebuah endpoint, seperti yang ditunjukkan di bawah ini.
Ketika operasi OSS memicu aturan notifikasi event yang sesuai, sebuah header ditambahkan ke respons. Header ini menjelaskan hasil notifikasi tanpa memengaruhi respons API asli. Jika tidak ada aturan yang sesuai, header tidak ditambahkan. Jika ada aturan yang sesuai, header tetap ditambahkan terlepas dari apakah pesan berhasil dikirim atau tidak. Formatnya adalah:
x-oss-process-status: 'ewogICAgImNvZGUiOiAiU3VjY2VzcyIsCiAgICAibWVzc2FnZSI6ICJOb3RpZmljYXRpb25TdWNjZWVkIiwKICAgICJ0eXBlIjogIkV2ZW50Tm90aWZpY2F****'
-
Kunci: x-oss-process-status
-
Nilai: string yang dienkode Base64. Contoh berikut menunjukkan objek JSON setelah didekode:
{ "code":"Success", // Hasil upaya notifikasi event. Mengembalikan Success atau Fail. Success menunjukkan bahwa OSS telah mengirim pesan ke topik, tetapi tidak menjamin bahwa topik tersebut berhasil mendorong pesan ke endpoint. "message":"NotificationSucceed", // Deskripsi detail operasi. Jika gagal, bidang ini memberikan alasan kegagalannya. "type":"EventNotification", // Jenis operasi. Untuk notifikasi event, nilai ini selalu EventNotification. "version":"1.0" }
Tipe Push menjelaskan metode pengiriman pesan yang tersedia.
Kasus penggunaan
-
Memantau aktivitas resource. Buat aturan untuk menerima notifikasi ketika pengguna lain melakukan operasi pada bucket Anda.
-
Menganalisis data dan tren. Lacak frekuensi operasi dari waktu ke waktu, atau impor pesan notifikasi ke layanan seperti E-MapReduce (EMR) untuk analisis lebih lanjut.
-
Memantau metrik operasional. Lacak metrik seperti permintaan per detik (QPS) untuk operasi tertentu pada resource Anda.
Jenis event
|
Grup |
Jenis |
Deskripsi |
|
ObjectCreated (Buat objek) |
ObjectCreated:PutObject |
Mengunggah objek. PutObject. |
|
ObjectCreated:PostObject |
Mengunggah objek melalui POST berbasis formulir. PostObject. |
|
|
ObjectCreated:CopyObject |
Menyalin objek. CopyObject. |
|
|
ObjectCreated:AppendObject |
Menambahkan data untuk mengunggah objek. AppendObject. |
|
|
ObjectCreated:InitiateMultipartUpload |
Memulai unggah multi-bagian. InitiateMultipartUpload. |
|
|
ObjectCreated:UploadPart |
Mengunggah bagian dalam unggah multi-bagian. UploadPart. |
|
|
ObjectCreated:UploadPartCopy |
Menyalin bagian dalam unggah multi-bagian. UploadPartCopy. |
|
|
ObjectCreated:CompleteMultipartUpload |
Menyelesaikan unggah multi-bagian. CompleteMultipartUpload. |
|
|
ObjectCreated:PutSymlink |
Membuat tautan simbolik untuk objek. PutSymlink. |
|
|
ObjectCreated:Mirror |
Objek dibuat melalui proses mirroring. Catatan
Secara default, mirroring OSS memicu ObjectCreated:PutObject. Untuk menggunakan ObjectCreated:Mirror sebagai gantinya, kirimkan tiket. |
|
|
ObjectCreated:* |
Semua event yang diawali dengan Catatan
Wildcard ini mencakup semua jenis event saat ini dan mendatang di bawah ObjectCreated. |
|
|
ObjectDownloaded (Unduh objek) |
ObjectDownloaded:GetObject |
Objek diunduh. |
|
ObjectModified (Ubah objek) |
ObjectModified:UpdateObjectMeta |
Metadata objek diubah melalui UpdateObjectMeta. |
|
ObjectModified:ChangeStorageClass |
Kelas penyimpanan objek diubah oleh aturan siklus hidup. |
|
|
ObjectModified:* |
Semua event yang diawali dengan Catatan
Wildcard ini mencakup semua jenis event saat ini dan mendatang di bawah ObjectModified. |
|
|
ObjectRemoved (Hapus objek) |
ObjectRemoved:DeleteObject |
Menghapus satu objek. DeleteObject. |
|
ObjectRemoved:DeleteObjects |
Menghapus beberapa objek. DeleteMultipleObjects. |
|
|
ObjectRemoved:AbortMultipartUpload |
Membatalkan unggah multi-bagian dan menghapus bagian-bagiannya. AbortMultipartUpload. |
|
|
ObjectRemoved:* |
Semua event yang diawali dengan Catatan
Wildcard ini mencakup semua jenis event saat ini dan mendatang di bawah ObjectRemoved. |
|
|
ObjectReplication (Replikasi objek) |
ObjectReplication:ObjectCreated |
Operasi tulis terjadi sebagai bagian dari proses replikasi data. |
|
ObjectReplication:ObjectRemoved |
Operasi hapus terjadi sebagai bagian dari proses replikasi data. |
|
|
ObjectReplication:ObjectModified |
Operasi timpa terjadi sebagai bagian dari proses replikasi data. |
|
|
ObjectReplication:* |
Semua event yang diawali dengan Catatan
Wildcard ini mencakup semua jenis event saat ini dan mendatang di bawah ObjectReplication. |
|
|
ObjectRestore (Pulihkan objek) |
ObjectRestore:FinishRestore |
Objek dipulihkan dari penyimpanan arsip. Hanya berlaku untuk objek Cold Archive dan Deep Cold Archive. |
Format pesan
Pesan notifikasi event OSS adalah objek JSON yang dienkode Base64. Contoh berikut menunjukkan muatan pesan setelah didekode.
{
"events":[
{
"eventName":"ObjectDownloaded:GetObject",
"eventSource":"acs:oss",
"eventTime":"2016-07-01T11:17:30.000Z",
"eventVersion":"1.0",
"oss":{
"bucket":{
"arn":"acs:oss:cn-shenzhen:123456789098****:event-notification-test-shenzhen",
"name":"event-notification-test-shenzhen",
"ownerIdentity":"123456789098****"
},
"object":{
"deltaSize":0,
"eTag":"0CC175B9C0F1B6A831C399E26977****",
"key":"test",
"readFrom":0,
"readTo":1,
"size":1
},
"ossSchemaVersion":"1.0",
"ruleId":"GetObjectRule"
},
"region":"cn-shenzhen",
"requestParameters":{
"sourceIPAddress":"140.205.XX.XX"
},
"responseElements":{
"requestId":"5776514AF09A9E654242****"
},
"userIdentity":{
"principalId":"123456789098****"
},
"xVars":{
"x:callback-var1":"value1",
"x:callback-var2":"value2"
}
}
]
}
Muatan pesan berisi parameter berikut.
|
Parameter |
Deskripsi |
|
eventName |
Jenis event. |
|
eventSource |
Sumber event. |
|
eventTime |
Waktu terjadinya event, dalam UTC. |
|
eventVersion |
Versi skema event. |
|
oss |
Berisi detail tentang event OSS. |
|
bucket |
Berisi detail tentang bucket. |
|
arn |
Nama Sumber Daya Alibaba Cloud (ARN) dari bucket. |
|
name |
Nama bucket. |
|
ownerIdentity |
ID pengguna pemilik bucket. |
|
object |
Berisi detail tentang objek. |
|
deltaSize |
Perubahan ukuran objek, dalam byte. |
|
eTag |
ETag objek. Untuk permintaan PutObject, ini adalah hash MD5. Untuk operasi lain, ini adalah pengidentifikasi unik (bukan hash MD5). Gunakan ETag untuk memverifikasi integritas konten objek. |
|
key |
Nama objek. |
|
readFrom |
Posisi byte awal untuk operasi baca. |
|
readTo |
Posisi byte akhir untuk operasi baca. |
|
size |
Ukuran total objek dalam byte. |
|
ossSchemaVersion |
Versi skema spesifik OSS. |
|
ruleId |
ID aturan yang memicu event. |
|
region |
Wilayah tempat bucket berada. |
|
requestParameters |
Parameter dari permintaan asli. |
|
sourceIPAddress |
Alamat IP sumber permintaan. |
|
responseElements |
Elemen dari respons. |
|
requestId |
ID unik untuk permintaan. |
|
userIdentity |
Informasi tentang pengguna yang membuat permintaan. |
|
principalId |
User ID (UID) pihak yang membuat permintaan. |
|
xVars |
Parameter kustom dari konfigurasi callback OSS. |
Catatan penggunaan
-
Aturan notifikasi event membutuhkan waktu sekitar 10 menit untuk mulai berlaku setelah dibuat.
-
Sebuah topik dibuat untuk setiap aturan baru dan mungkin dikenai biaya sesuai panduan Penagihan.
-
Aturan notifikasi event dapat dibuat dan dihapus, tetapi tidak dapat dimodifikasi.
(Opsional) Langkah 1: Buat antrian
Buat antrian jika Anda berencana menggunakannya sebagai tujuan notifikasi. Anda juga dapat menambahkan langganan setelah membuat aturan event.
Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah.
Di halaman Queues, klik Create Queue.
Di panel Create Queue, konfigurasikan parameter berikut lalu klik OK:
Name: nama antrian.
Maximum Message Length: panjang maksimum pesan yang dikirim ke antrian.
Long Polling Period: durasi maksimum permintaan long polling ditahan setelah operasi ReceiveMessage dipanggil.
Visibility Timeout Period: durasi pesan berada dalam status Inactive setelah diterima dari antrian.
Message Retention Period: durasi maksimum pesan berada di antrian. Setelah periode retensi berakhir, pesan akan dihapus terlepas dari apakah sudah diterima atau belum.
Message Delay Period: periode setelah semua pesan yang dikirim ke antrian dapat dikonsumsi.
Enable Logging Feature: tentukan apakah fitur logging diaktifkan.
Setelah antrian dibuat, antrian tersebut akan ditampilkan di halaman Queues.
(Opsional) Langkah 2: Buat bucket
Jika bucket yang diinginkan sudah ada, Anda dapat melewati langkah ini.
-
Masuk ke Konsol OSS.
-
Di panel navigasi kiri, klik Buckets.
-
Di halaman Buckets, klik Create bucket.
-
Di panel Create bucket, konfigurasikan parameter bucket, lalu klik OK.
-
Bucket name: Masukkan event-notification-test.
-
Region: Pilih wilayah yang sama dengan antrian Anda.
-
Block public access: Pilih Off.
-
ACL: Pilih Public Read/Write.
CatatanBiarkan nilai default untuk pengaturan lainnya.
-
Langkah 3: Buat aturan kustom
Saat Anda membuat aturan, Simple Message Queue (SMQ) secara otomatis membuat topik dan langganan untuk endpoint yang ditentukan. Anda dapat mengelolanya di Konsol SMQ.
-
Di panel navigasi kiri, klik Event Notifications.
Di bilah navigasi atas, pilih wilayah.
-
Di halaman Event Notifications, klik tab OSS, lalu klik Create Rule.
-
Di panel Create rule - OSS, konfigurasikan pengaturan berikut, lalu klik OK.
-
Instance Name: Masukkan nama untuk aturan.
-
Event Type: Pilih satu atau beberapa jenis event.
-
Match rule: Konfigurasikan aturan pencocokan.
CatatanAturan pencocokan dapat berupa nama lengkap, awalan, akhiran, atau kombinasi awalan dan akhiran. Aturan berbeda tidak boleh memiliki definisi resource yang tumpang tindih. Resource OSS ditentukan dalam format
bucket/object. Misalnya, pada resourcemovie/hello.avi,movieadalah bucket danhello.aviadalah objek.-
Nama Lengkap: movie/hello.avi.
-
Awalan:
-
movie/hello: Mencocokkan semua objek di bucket
movieyang memiliki awalanhello. -
movie/: Mencocokkan semua objek di bucket
movie. -
mov: Mencocokkan semua objek di bucket mana pun yang namanya memiliki awalan
mov.
-
-
Akhiran: .avi: Mencocokkan semua objek di bucket mana pun yang memiliki akhiran
.avi. -
Awalan dan Akhiran: Awalan movie/ dan akhiran .avi: Mencocokkan semua objek di bucket
movieyang memiliki akhiran.avi.
-
-
Destination: Pilih Queue dan masukkan nama antrian yang telah Anda buat di Langkah 1.
-
Langkah 4: Unggah objek
-
Masuk ke Konsol OSS.
-
Di panel navigasi kiri, klik Buckets.
-
Di halaman Buckets, klik nama bucket target.
-
Pilih Object management > Object list, lalu klik Upload object.
-
Di panel Upload object, tentukan direktori unggah dan ACL objek, lalu klik Upload object. Unggah objek menggunakan Konsol OSS.
Kolom Status menampilkan "Uploaded".
Langkah 5: Terima pesan
Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah.
-
Di halaman Queues, temukan antrian target, lalu di kolom Action, pilih More > Send and receive messages.
-
Pada halaman Send and receive messages, di bagian Receive messages, klik Receive message.
Daftar pesan untuk antrian ditampilkan di bagian Receive messages.
-
Di daftar pesan, temukan pesan target, lalu klik Details di kolom Actions untuk melihat isinya di kotak dialog Message details.