Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon SNS mendukung pengiriman atribut pesan, yang memungkinkan Anda menyediakan item metadata terstruktur (seperti cap waktu, data geospasial, tanda tangan, dan pengidentifikasi) tentang pesan. Untuk langganan SQS, maksimal 10 atribut pesan dapat dikirim saat Pengiriman Pesan Mentah diaktifkan. Untuk mengirim lebih dari 10 atribut pesan, Pengiriman Pesan Mentah harus dinonaktifkan. Pesan dengan lebih dari 10 atribut pesan yang diarahkan ke Pengiriman Pesan Mentah mengaktifkan langganan Amazon SQS akan dibuang sebagai kesalahan sisi klien.
Atribut pesan bersifat opsional dan terpisah dari—tetapi dikirim bersama-sama dengan—isi pesan. Penerima dapat menggunakan informasi ini untuk memutuskan bagaimana menangani pesan tanpa harus memproses isi pesan terlebih dahulu.
Untuk informasi tentang mengirim pesan dengan atribut menggunakan AWS Management Console atau AWS SDK untuk Java, lihat Cara menerbitkan pesan ke topik Amazon SNS menggunakan AWS Management Console tutorialnya.
catatan
Atribut pesan dikirim hanya ketika struktur pesan String, bukan JSON.
Anda dapat menggunakan atribut pesan untuk menyusun pesan notifikasi push untuk endpoint seluler. Dalam skenario ini, atribut pesan hanya digunakan untuk menyusun pesan notifikasi push. Atribut tidak dikirim ke endpoint saat mengirim pesan dengan atribut pesan ke Amazon SQS endpoint.
Anda juga dapat menggunakan atribut pesan untuk membuat pesan Anda dapat difilter menggunakan kebijakan filter langganan. Anda dapat menerapkan kebijakan filter untuk langganan topik. Jika kebijakan filter diterapkan dengan cakupan kebijakan filter yang disetel ke MessageAttributes
(default), langganan hanya menerima pesan yang memiliki atribut yang diterima kebijakan tersebut. Untuk informasi selengkapnya, lihat Pemfilteran pesan Amazon SNS.
catatan
Ketika atribut pesan digunakan untuk pemfilteran, nilainya harus berupa string JSON yang valid. Melakukan hal ini memastikan bahwa pesan dikirimkan ke langganan dengan pemfilteran atribut pesan diaktifkan.
Pesan atribut item dan validasi
Setiap atribut pesan terdiri atas beberapa item berikut:
-
Name (Nama)— Nama atribut pesan dapat berisi karakter berikut: A-Z, a-z, 0-9, garis bawah (_), tanda hubung (-), dan periode (.). Nama tidak harus dimulai atau diakhiri dengan titik, dan seharusnya tidak memiliki titik berturut-turut. Nama peka huruf besar/kecil dan harus unik di antara semua nama atribut untuk pesan. Panjang nama dapat mencapai 256 karakter. Nama tidak dapat dimulai dengan
AWS.
atauAmazon.
(atau variasi dalam casing) karena awalan ini disediakan untuk digunakan oleh Amazon Web Services. -
Type (Jenis) — Jenis data atribut pesan yang didukung
String
,String.Array
,Number
, danBinary
. Tipe data memiliki batasan konten yang sama dengan isi pesan. Untuk informasi selengkapnya, lihat bagian Pesan jenis data atribut dan validasi. -
Value (Nilai) — Nilai atribut pesan yang ditentukan pengguna. Untuk tipe data string, atribut value harus mengikuti batasan konten yang sama dengan isi pesan. Namun, jika atribut pesan digunakan untuk pemfilteran, nilainya harus berupa string JSON yang valid untuk memastikan kompatibilitas dengan kebijakan filter langganan Amazon SNS. Untuk informasi selengkapnya, lihat tindakan Publish (Publikasikan) di Amazon Simple Notification Service API Reference (Referensi API Amazon Simple Notification Service).
Nama, jenis, dan nilai tidak boleh kosong atau nol. Selain itu, isi pesan tidak boleh kosong atau nol. Semua bagian dari atribut pesan, termasuk nama, jenis, dan nilai, termasuk dalam pembatasan ukuran pesan, yaitu 256 KB.
Pesan jenis data atribut dan validasi
Jenis data atribut pesan mengidentifikasi bagaimana nilai atribut pesan ditangani oleh Amazon SNS. Sebagai contoh, jika jenis adalah angka, Amazon SNS memvalidasi bahwa itu adalah angka.
Amazon SNS mendukung jenis data logis berikut untuk semua endpoint kecuali seperti yang dicatat:
-
String — String adalah Unicode dengan pengkodean biner UTF-8. Untuk daftar nilai kode, lihat http://en.wikipedia. org/wiki/ASCII
#ASCII_printable_characters. catatan
Nilai pengganti tidak didukung dalam atribut pesan. Misalnya, menggunakan nilai pengganti untuk mewakili emoji akan memberi Anda kesalahan berikut:
Invalid attribute value was passed in for message attribute
. -
String.Array – Array, diformat sebagai string, yang dapat berisi beberapa nilai. Nilai dapat berupa string, angka, atau kata kunci
true
,false
, dannull
. String.Array nomor atau tipe boolean tidak memerlukan tanda kutip. Beberapa nilai String.Array dipisahkan dengan koma.Tipe data ini tidak didukung untuk AWS Lambda langganan. Jika Anda menentukan jenis data ini untuk endpoint Lambda, ini akan diteruskan sebagai jenis data
String
dalam muatan JSON yang dikirimkan Amazon SNS ke Lambda. -
Number (Nomor) — Nomor adalah bilangan bulat positif atau negatif atau bilangan floating-point. Angka memiliki jangkauan dan presisi yang cukup untuk mencakup sebagian besar kemungkinan nilai yang biasanya didukung oleh bilangan bulat, float, dan ganda. Sejumlah dapat memiliki nilai dari -109 hingga 109, dengan 5 digit akurasi setelah titik desimal. Nol awal dan akhir dipangkas.
Tipe data ini tidak didukung untuk AWS Lambda langganan. Jika Anda menentukan jenis data ini untuk endpoint Lambda, ini akan diteruskan sebagai jenis data
String
dalam muatan JSON yang dikirimkan Amazon SNS ke Lambda. -
Binary (Biner) — Atribut jenis biner dapat menyimpan data biner apapun; misalnya, data terkompresi, data terenkripsi, atau gambar.
Atribut pesan yang dicadangkan untuk notifikasi push seluler
Tabel berikut mencantumkan atribut pesan dicadangkan untuk layanan notifikasi push seluler yang dapat Anda gunakan untuk struktur pesan notifikasi push Anda:
Layanan notifikasi push | Atribut pesan yang dicadangkan |
---|---|
ADM | AWS.SNS.MOBILE.ADM.TTL |
APNs1 | AWS.SNS.MOBILE.APNS_MDM.TTL |
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS.COLLAPSE_ID |
|
AWS.SNS.MOBILE.APNS.PRIORITY |
|
AWS.SNS.MOBILE.APNS.PUSH_TYPE |
|
AWS.SNS.MOBILE.APNS.TOPIC |
|
AWS.SNS.MOBILE.APNS.TTL |
|
Baidu |
AWS.SNS.MOBILE.BAIDU.DeployStatus
|
AWS.SNS.MOBILE.BAIDU.MessageKey |
|
AWS.SNS.MOBILE.BAIDU.MessageType |
|
AWS.SNS.MOBILE.BAIDU.TTL |
|
FCM | AWS.SNS.MOBILE.FCM.TTL |
AWS.SNS.MOBILE.GCM.TTL |
|
macOS | AWS.SNS.MOBILE.MACOS_SANDBOX.TTL |
AWS.SNS.MOBILE.MACOS.TTL |
|
MPNS |
AWS.SNS.MOBILE.MPNS.NotificationClass |
AWS.SNS.MOBILE.MPNS.TTL |
|
|
|
WNS | AWS.SNS.MOBILE.WNS.CachePolicy |
AWS.SNS.MOBILE.WNS.Group |
|
AWS.SNS.MOBILE.WNS.Match |
|
AWS.SNS.MOBILE.WNS.SuppressPopup |
|
AWS.SNS.MOBILE.WNS.Tag |
|
AWS.SNS.MOBILE.WNS.TTL |
|
AWS.SNS.MOBILE.WNS.Type
|
1 Apple akan menolak notifikasi Amazon SNS jika atribut pesan tidak memenuhi persyaratannya. Untuk detail tambahan, lihat Mengirim Permintaan Pemberitahuan ke APNs