Dalam tutorial ini, Anda akan mempelajari cara memanfaatkan fitur pemfilteran pesan dari Amazon Simple Notification Service (SNS). Fitur filter pesan ini memungkinkan langganan titik akhir ke topik SNS untuk menerima subkumpulan pesan topik yang diminati saja.

Dalam contoh kami, pengguna mengunjungi situs web untuk memasukkan permintaan penawaran asuransi. Permintaan penawaran tersebut bisa saja untuk asuransi mobil, asuransi kapal, atau asuransi jiwa. Setelah permintaan penawaran asuransi dibuat, permintaan tersebut akan diteruskan ke rangkaian sistem backend. Terdapat sebuah sistem penjualan yang menangani asuransi kendaraan untuk mobil dan kapal, sistem penjualan lainnya yang menangani asuransi jiwa, dan sebuah sistem analitik yang perlu memproses semua permintaan penawaran.

Saat kita belajar di Tutorial Kirim Pemberitahuan Kejadian Keluaran, kita akan menggunakan pola perpesanan keluaran menggunakan SNS dan SQS untuk memisahkan situs web dari sistem backend. Untuk memasukkan pemberitahuan kejadian ke sistem backend yang tepat, Anda dapat membuat topik terpisah untuk setiap tipe permintaan penawaran, kemudian menambahkan logika perutean pesan ke penerbit Anda. Namun, opsi ini dapat menyebabkan penerbit yang terlalu rumit, pertambahan cepat topik, dan overhead tambahan dalam penyediaan dan pengelolaan topik SNS Anda. Pemfilteran pesan SNS jauh lebih sederhana!

Anda akan menggunakan Amazon SNS dan Amazon Simple Queue Service (SQS) dalam tutorial ini. Kedua layanan ini berada dalam AWS Tingkat Gratis.

 

Memfilter pesan pada AWS memerlukan sebuah akun.

Buat Akun Gratis

AWS Tingkat Gratis meliputi 1.000.000 publikasi untuk Amazon Simple Notification Service dan 1.000.000 permintaan Amazon Simple Queue Service.

Lihat Detail Tingkat Gratis AWS »

 

Langkah pertama Anda adalah membuat topik Amazon SNS untuk memublikasikan pesan kapan pun permintaan penawaran dibuat pada situs web asuransi. Prospek ini dapat terkait dengan asuransi mobil, asuransi kapal, atau asuransi jiwa.  


a. Saat Anda mengeklik di sini, AWS Management Console akan terbuka di jendela browser baru, sehingga Anda dapat tetap membuka panduan langkah demi langkah ini. Ketika layar memuat, masukkan nama pengguna dan kata sandi untuk memulai. Kemudian ketik pemberitahuan di bilah pencarian dan pilih Simple Notification Service untuk membuka konsol layanan.

tmt_filter-messages-sent-to-topics_1a

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_1a

b.  Jika halaman awal konsol SNS muncul, klik Mulai ikhtisar. Jika Anda tidak melihat halaman ini, lewati ke langkah berikutnya.

1b-console-home

(klik untuk zoom)

1b-console-home

c.  Klik Topik di menu sisi kiri.

1c-create-topic-nav-open

(klik untuk zoom)

1c-dashboard

d.  Klik Buat topik.

 

1d-No-topics

(klik untuk zoom)

1d-No-topics

e.  Di bidang nama Topik, ketik Permintaan Penawaran Asuransi, lalu gulir ke bawah untuk mengeklik Buat topik.

 

1e-create-topic-nav-closed

(klik untuk zoom)

1e-create-topic-nav-closed

f.  Topik baru akan muncul pada halaman detail Topik.

 

1f-topic-insurence-quote-request-created-success

(klik untuk zoom)

1f-topic-insurence-quote-request-created-success

Setiap permintaan penawaran poll sistem penjualan asuransi dari antrean pesan SQS yang sesuai yang berlangganan ke topik SNS tersebut.

Antrean pertama akan menangani permintaan penawaran asuransi mobil dan kapal; antrean kedua akan menangani asuransi jiwa; dan antrean ketiga akan mengambil semuanya. Antrean ketiga akan mengambil semua permintaan penawaran, terlepas dari tipe asuransinya, untuk mengumpankan sistem analitik. Preferensi ini akan diatur sebagai kebijakan filter pada langganan SNS.

Dalam langkah ini, Anda akan membuat tiga antrean dan berlangganan ketiganya ke topik SNS.


a. Klik di sini untuk membuka konsol Amazon SQS di jendela browser baru. Jika halaman awal SQS muncul, klik Mulai Sekarang. Atau, lanjutkan ke langkah berikutnya.

 

tmt_filter-messages-sent-to-topics_2a

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_2a

b.  Pada halaman Buat Antrean Baru, masukkan Penawaran Asuransi Kendaraan di bidang Nama Antrean.

Pilih Antrean Standar dan klik pada Antrean Buat Cepat.

 

tmt_filter-messages-sent-to-topics_2b

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_2b

c.  Klik Buat Antrean Baru dan ulangi Langkah 2b untuk membuat dua antrean tambahan:
Penawaran Asuransi Jiwa
 dan Semua Penawaran.

 

tmt_filter-messages-sent-to-topics_2c

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_2c

d.  Ketiga antrean kini dicantumkan dalam Konsol SQS.

 

tmt_filter-messages-sent-to-topics_2d

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_2d

Sekarang setelah Anda membuat tiga antrean Amazon SQS, Anda perlu membuat langganan ke topik Amazon SNS untuk tiga antrean tersebut yang menyiarkan permintaan penawaran asuransi baru.


a.  Dari daftar antrean, pilih Penawaran Asuransi Kendaraan, Penawaran Asuransi jiwa dan Semua Penawaran.

Klik Tindakan Antrean dan pilih Langganan Antrean ke Topik SNS.

 

 

tmt_filter-messages-sent-to-topics_3a

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_3a

b.  Kotak dialog Langganan ke Topik ditampilkan. Dari daftar menurun Pilih Topik, pilih topik Permintaan Penawaran Asuransi, untuk Anda atur sebagai langganan tiga antrean Anda. Karena Anda membuat topik SNS dari akun yang sama, ini akan muncul dalam daftar.

Jika topik SNS dibuat oleh akun lain, Anda dapat berlangganan ke topik dengan menggunakan bidang ARN Topik. Untuk detail selengkapnya, lihat dokumentasi Amazon SNS atau blog kami, Integrasi Lintas Akun dengan SNS.

 

 

tmt_filter-messages-sent-to-topics_3b

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_3b

c.  Jangan ubah Wilayah Topik, dan klik Langganan.  

 

 

tmt_filter-messages-sent-to-topics_3c

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_3c

d.  Kotak dialog Hasil Langganan Topik ditampilkan. Kli OK.

tmt_filter-messages-sent-to-topics_3d

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_3d

Sekarang setelah semua sumber daya SNS dan SQS telah dibuat, Anda siap mengatur kebijakan filter untuk langganan SNS Anda. Kebijakan filter adalah dokumen JSON sederhana, diatur sebagai atribut langganan SNS, yang menentukan tipe pemberitahuan yang diminati oleh pelanggan.

Langganan tanpa kebijakan filter akan menerima semua pesan yang dipublikasikan ke topik SNS, sehingga Anda tidak perlu mengatur kebijakan pemfilteran untuk antrean Semua Peanwaran untuk skenario ini.


a.  Kembali ke konsol Amazon SNS di jendela browser Anda lainnya, dan klik pada Topik untuk menemukan daftar semua topik di wilayah Anda. 

Klik pada nama topik Permintaan Penawaran Asuransi dalam daftar.  

4a-topic-list

(klik untuk zoom)

4a-topic-list

b.  Ini akan membawa Anda ke halaman detail Topik Permintaan Penawaran Asuransi tempat Anda akan dapat melihat semua antrean SQS yang berlangganan ke topik SNS ini. Pilih antrean Penawaran Asuransi Kendaraan, kemudian klik Edit.

4b-topic-detail-insurance-quote-request

(klik untuk zoom)

4b-topic-detail-insurance-quote-request

c.  Ini akan membawa Anda ke halaman Edit langganan. Klik pada panah untuk mengedit kebijakan filter langganan. 

4c-edit-sub-insurance-quote-request

(klik untuk zoom)

4c-edit-sub-insurance-quote-request

d.  Pada kotak dialog yang ditampilkan, masukkan objek JSON berikut:{"insurance_type": ["car", "boat"]}

Klik Simpan perubahan.

4d-topic-edit-filter-car-boat

(klik untuk zoom)

4d-topic-edit-filter-car-boat

e.  Sebuah dialog konfirmasi akan muncul yang mengonfirmasi kebijakan filter langganan berhasil dibuat.

 

4e-sub-saved-success

(klik untuk zoom)

4e-sub-saved-success

f.  Sekarang Anda akan mengulangi proses menambahkan kebijakan filter ke antrean kedua. Pilih antrean Penawaran Asuransi Jiwa, klik Edit.

Klik pada panah untuk mengedit kebijakan filter langganan.

Pada kotak dialog yang ditampilkan, masukkan objek JSON berikut:{"insurance_type": ["life"]}

Klik Simpan perubahan.

Anda tidak perlu mengatur kebijakan filter untuk hal-hal terkait langganan ke antrean Semua Penawaran. Ketiadaan kebijakan ini akan membuat antrean ini mengambil semua kejadian yang dipublikasikan ke topik tersebut.

4f-topic-edit-filter-life

(klik untuk zoom)

4f-topic-edit-filter-life

Mari kita uji! Dalam langkah ini, Anda akan dapat menyimulasikan permintaan penawaran asuransi baru yang berasal dari situs web pembuatan prospek dengan memublikasikan pesan ke topik tersebut.

Anda akan memublikasikan pesan dengan berbagai atribut, sehingga Anda dapat melihat mekanisme pemfilteran pesan Amazon SNS beraksi.


a.  Pada halaman Topik Permintaan Penawaran Asuransi, klik pada Publikasikan pesan.

5a-topic-detail-with-3subs-2

(klik untuk zoom)

5a-topic-detail-with-3subs-2

b.  Buat pesan pertama dengan memasukkan nilai berikut dalam formulir:

Di Subjek, masukkan: Permintaan Penawaran Asuransi #1

Di Struktur pesan, biarkan Payload yang identik untuk semua protokol pengiriman terpilih

Di isi Pesan untuk dikirim ke titik akhir, masukkan teks berikut untuk merepresentasikan permintaan penawaran asuransi mobil:
2017 Volvo S60, Montreal

Di atribut Pesan:

  • Pilih String di bidang Tipe
  • Masukkan tipe asuransi di bidang Nama
  • Masukkan mobil di bidang Nilai

Klik Publikasikan pesan.

5b-publish-message-montreal-address

(klik untuk zoom)

5b-publish-message-montreal-address

c.  Anda akan dikembalikan ke halaman topik Permintaan Penawaran Asuransi. Klik pada Publikasikan pesan lagi, dan buat pesan kedua menggunakan nilai berikut:

Di Subjek, masukkan: Permintaan Penawaran Asuransi #2

Di Struktur pesan, pilih Payload yang identik untuk semua protokol pengiriman

Di isi Pesan untuk dikirim ke titik akhir, masukkan teks berikut untuk merepresentasikan permintaan asuransi mobil:
Pria, 33 tahun, Vancouver

Di atribut Pesan:

  • Pilih String di bidang Tipe
  • Masukkan tipe asuransi di bidang Nama
  • Masukkan jiwa di bidang Nilai

Klik Publikasikan pesan.

5c-publish-message-male33

(klik untuk zoom)

5c-publish-message-male33

d.  Anda akan dikembalikan ke halaman topik Permintaan Penawaran Asuransi. Klik pada Publikasikan pesan lagi, dan buat pesan kedua menggunakan nilai berikut:

Di Subjek, masukkan: Permintaan Penawaran Asuransi #3

Di Struktur pesan, pilih Payload yang identik untuk semua protokol pengiriman

Di isi Pesan untuk dikirim ke titik akhir, masukkan teks berikut untuk merepresentasikan permintaan penawaran asuransi mobil:
Townhouse, 1500 sq ft, Toronto

Di atribut Pesan:

  • Pilih String di bidang Tipe
  • Masukkan tipe asuransi di bidang Nama
  • Masukkan rumah di bidang Nilai

Klik Publikasikan pesan.

5d-publish-message-toronto-address

(klik untuk zoom)

5d-publish-message-toronto-address

Saatnya Anda memverifikasi setiap tipe permintaan penawaran asuransi dirutekan ke antrean pesan SQS yang sesuai, dengan memeriksa pengiriman pesan yang berlangsung.

Anda akan melihat bahwa antrean Amazon SQS langganan menerima pesan hanya jika langganan SNS-nya yang sesuai memiliki kebijakan filter yang sesuai dengan atribut pesan masuk ini.

Anda juga akan melihat bahwa satu antrean khususnya sebenarnya menerima semua pesan yang dipublikasikan ke topik khusus. Ini terjadi karena langganan ini tidak mengatur kebijakan filter, yang menyebabkan perilaku ambil semua.


a.  Kembali ke konsol Amazon SQS. Pilih antrean Penawaran Asuransi Kendaraan, dan klik pada Tindakan Antrean.

Pilih Lihat/Hapus Pesan.  

tmt_filter-messages-sent-to-topics_6a

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_6a

b.  Klik Mulai Poling untuk Pesan.

Perhatikan bahwa hanya satu pesan yang didorong ke antrean ini, terkait dengan penawaran asuransi mobil tersebut (Permintaan Penawaran Asuransi #1). Tutup kotak dialog.

tmt_filter-messages-sent-to-topics_6b

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_6b

c.  Ulangi prosesnya untuk antrean kedua. Centang kotak untuk antrean Penawaran Asuransi Jiwa. Dari daftar menurun Tindakan Antrean, pilih Lihat/Hapus Pesan.

Klik Mulai Poling untuk Pesan.

Perhatikan bahwa pesan lain didorong ke antrean ini, terkait dengan penawaran asuransi mobil tersebut (Permintaan Penawaran Asuransi #2).

Klik Tutup.

tmt_filter-messages-sent-to-topics_6c

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_6c

d.  Terakhir, centang kotak untuk antrean Semua Penawaran. Klik Tindakan Antrean, pilih Lihat/Hapus Pesan, dan klik Mulai Polling untuk Pesan.

Perhatikan bahwa ketiga pesan didorong ke antrean ini (Permintaan Penawaran Asuransi #1, #2 dan #3).

Klik Tutup.

tmt_filter-messages-sent-to-topics_6d

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_6d

Dalam langkah ini, Anda akan menghapus sumber daya yang telah Anda buat untuk tutorial ini, yang meliputi topik, langganan, dan antrean. Menghapus sumber daya yang tidak Anda gunakan lagi untuk mencegah dikenai biaya adalah praktik terbaik.


a.  Di konsol Amazon SNS, klik Topik, kemudian klik pada tautan topik Permintaan Penawaran Asuransi.

Langkah 7a

(klik untuk zoom)

Langkah 7a

b.  Pada halaman detail Topik Permintaan Penawaran Asuransi, pilih setiap langganan dan klik Hapus.

Klik Hapus dalam kotak dialog untuk mengonfirmasi penghapusan. 

7b-topic-detail-with-3subs

(klik untuk zoom)

7b-topic-detail-with-3subs

c.  Pada halaman detail Topik Permintaan Penawaran Asuransi, klik pada Hapus.

Konfirmasikan penghapusan dengan mengetik hapus saya pada kotak dialog, dan klik Hapus

 

7c-topic-detail-no-sub

(klik untuk zoom)

7c-topic-detail-no-sub

d.  Kembali ke konsol Amazon SQS. Pilih ketiga antrean yang digunakan dalam tutorial ini, klik Tindakan Antrean, kemudian klik Hapus Antrean.

Konfirmasikan penghapusan pada kotak dialog.

tmt_filter-messages-sent-to-topics_7d

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_7d

e.  Kini Anda dapat keluar dari AWS Management Console.  

tmt_filter-messages-sent-to-topics_7e

(klik untuk zoom)

tmt_filter-messages-sent-to-topics_7e

Kini Anda dapat menggunakan pemfilteran pada Amazon Simple Notification Service (SNS) untuk membangun pub/sub-arsitektur yang lebih mudah dan lebih sederhana.

Pemfilteran pesan memungkinkan pelanggan topik Amazon SNS secara selektif menerima hanya subkumpulan pesan yang mereka minati, kebalikan dari menerima semua pesan yang dipublikasikan ke topik. Ini akan menghapus kompleksitas penerapan logika pemfilteran pesan dalam pelanggan Anda, atau logika perutean pesan di sistem penerbit Anda.


Kini setelah Anda mempelajari cara menerapkan pemfilteran pesan menggunakan Amazon Simple Notification Service, pilih salah satu opsi berikut untuk menggali perpesanan cloud di AWS lebih dalam.

Pelajari selengkapnya

Dapatkan ikhtisar mengenai kemampuan, komponen, dan kasus penggunaan untuk topik pesan di Amazon Web Services (AWS).

Kunjungi halaman web Amazon SNS »

Gali lebih dalam

Jelajahi Panduan Pengembang untuk melihat cara menerapkan pemfilteran pesan untuk topik SNS Anda.

Baca dokumentasi »

Lihat fungsinya

Jelajahi contoh yang menunjukkan kepada Anda cara menerapkan pemfilteran pesan menggunakan AWS SDK untuk Python.

Baca blog berikut »

Ya
Tidak