Kebijakan filter SNS contoh Amazon - Amazon Simple Notification Service

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

Kebijakan filter SNS contoh Amazon

Contoh berikut menunjukkan payload pesan yang dikirimkan oleh SNS topik Amazon yang memproses transaksi pelanggan.

Contoh pertama mencakup MessageAttributes bidang dengan atribut yang menggambarkan transaksi:

  • Minat pelanggan

  • Nama penyimpanan

  • State kejadian

  • Harga pembelian di USD

Karena pesan ini menyertakan MessageAttributes bidang, langganan topik apa pun yang menetapkan a FilterPolicy dapat menerima atau menolak pesan secara selektif, selama FilterPolicyScope disetel ke MessageAttributes dalam langganan. Untuk informasi tentang menerapkan atribut pada olahpesan, lihat Atribut SNS pesan Amazon.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "message-body-with-transaction-details", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url", "MessageAttributes": { "customer_interests": { "Type": "String.Array", "Value": "[\"soccer\", \"rugby\", \"hockey\"]" }, "store": { "Type": "String", "Value":"example_corp" }, "event": { "Type": "String", "Value": "order_placed" }, "price_usd": { "Type": "Number", "Value": "210.75" } } }

Contoh berikut menunjukkan atribut yang sama termasuk dalam Message bidang, juga disebut sebagai payload pesan atau isi pesan. Langganan topik apa pun yang menyertakan a FilterPolicy dapat menerima atau menolak pesan secara selektif, selama FilterPolicyScope diatur MessageBody dalam langganan.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "{ \"customer_interests\": [\"soccer\", \"rugby\", \"hockey\"], \"store\": \"example_corp\", \"event\":\"order_placed\", \"price_usd\":210.75 }", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url" }

Kebijakan filter berikut menerima atau menolak pesan berdasarkan nama dan nilai properti mereka.

Kebijakan yang menerima contoh olahpesan

Properti dalam kebijakan filter langganan berikut cocok dengan atribut yang ditetapkan ke pesan contoh. Perhatikan bahwa kebijakan filter yang sama berfungsi untuk FilterPolicyScope apakah itu disetel ke MessageAttributes atauMessageBody. Setiap pelanggan memilih ruang lingkup penyaringan mereka sesuai dengan komposisi pesan yang mereka terima dari topik tersebut.

Jika satu properti dalam kebijakan ini tidak cocok dengan atribut yang ditetapkan ke pesan, kebijakan akan menolak pesan tersebut.

{ "store": ["example_corp"], "event": [{"anything-but": "order_cancelled"}], "customer_interests": [ "rugby", "football", "baseball" ], "price_usd": [{"numeric": [">=", 100]}] }

Kebijakan yang menolak contoh olahpesan

Kebijakan filter langganan berikut memiliki beberapa ketidakcocokan antara propertinya dan atribut yang ditetapkan ke pesan contoh. Misalnya, karena nama encrypted properti tidak ada dalam atribut pesan, properti kebijakan ini menyebabkan pesan ditolak terlepas dari nilai yang ditetapkan padanya.

Jika terjadi ketidakcocokan, kebijakan menolak pesan.

{ "store": ["example_corp"], "event": ["order_cancelled"], "encrypted": [false], "customer_interests": [ "basketball", "baseball" ] }