Amazon SNS ve Amazon SQS ile Konular İçin Yayımlanan Mesajları Filtreleme

ÖĞRETİCİ

Genel Bakış

Bu öğreticide, Amazon Simple Notification Service’ın (Amazon SNS) mesaj filtreleme özelliğinin nasıl kullanılacağını öğreneceksiniz. Mesaj filtreleme özelliği, bir SNS konusu abonelerinin yalnızca ilgilendikleri konu mesajlarının alt kümesini almalarını sağlar.

Örneğimizde, kullanıcılar sigorta fiyat teklifi isteyecekleri bir web sitesini ziyaret ediyorlar. Bu teklif istekleri araç sigortası (otomobiller ve tekneler için olduğu gibi), hayat sigortası veya diğer sigorta türleri (konutlar için olduğu gibi) için olabilir. Bir kullanıcı bir sigorta fiyat teklifi istediğinde istek bir dizi arka uç sistemine iletilir: bir satış sistemi otomobiller ve tekneler için araç sigortasını yönetir, başka bir satış sistemi hayat sigortasını yönetir ve bir analiz sistemi tüm fiyat teklifi taleplerini işler.

Yayma Olay Bildirimleri Gönderme öğreticisinde olduğu gibi web sitesini arka uç sistemlerinden ayırmak için Amazon SNS veAmazon Simple Queue Service (Amazon SQS) kullanarak bir yayma mesajlaşma modeli kullanacağız. Olay bildirimlerini doğru arka uç sistemine almak için her bir fiyat teklifi talebi türü için ayrı bir konu oluşturabilir ve ardından yayıncınıza mesaj yönlendirme mantığı ekleyebilirsiniz. Ancak bu seçenek aşırı karmaşık yayıncılara, konuların çoğalmasına ve SNS konularınızın sağlanması ve yönetilmesinde ilave iş yüküne neden olabilir. Amazon SNS mesaj filtreleme çok daha basittir.

Bu öğreticide Amazon SNS ve Amazon SQS’yi kullanacaksınız. Her iki hizmet de AWS Ücretsiz Kullanım kapsamındadır.

 AWS deneyimi

Orta Seviye

 Tamamlama süresi

30 dakika

 Tamamlama maliyeti (ücretsiz ölçümlerle)

Ücretsiz

 Tamamlama maliyeti (gelişmiş ölçümlerle)

Fiyatlar değişebilir: Ayda izlenen milyon nesne başına 0,20 USD ( Amazon S3 fiyatlandırma sayfası)

 Gerekenler:

AWS hesabı ve doldurulmuş Amazon S3 bucket'ı

 Kullanılan hizmetler

 Son güncelleme:

23 Ağustos 2022

Uygulama

1. Adım: Bir SNS konusu oluşturun

İlk adımınız, bir sigorta web sitesinde fiyat teklifi istekleri oluşturulduğunda mesajları yayımlamak için bir Amazon SNS konusu oluşturmak olacaktır. Bu adaylar, bir otomobil sigortası, tekne sigortası ya da hayat sigortası ile ilgili olabilir.  

a. AWS Yönetim Konsolu’nu yeni bir tarayıcı penceresinde açın, böylece bu adım adım kılavuzu açık tutabilirsiniz. Ekran yüklendiğinde kullanmaya başlamak için kullanıcı adınızı ve parolanızı girin. Ardından, arama çubuğuna bildirim girin ve hizmet konsolunu açmak için Basit Bildirim Hizmeti’ni seçin.


b. SNS konsolu açılış sayfası görünürse Genel bakış ile başlat seçeneğini belirleyin. Bu sayfayı görmezseniz sonraki adıma atlayın.

c. Gezinme bölmesinde Konular’ı seçin.

d. Konu oluştur düğmesini seçin.

e. Tür için Standart’ı seçin. Ad alanına Sigorta-Fiyat-Teklifi-İstekleri ifadesini girin, ardından ekranı aşağı kaydırın ve Konu oluştur düğmesini seçin.

f.  Yeni konu Konu ayrıntıları sayfasında görünür.

2. Adım: Amazon SQS kuyruklarını oluşturun

Her sigorta satış sistemi, SNS konusuna abone olmuş ilgili SQS mesaj kuyruğundan fiyat teklifi isteklerini yoklar.
 
Birinci kuyruk hem otomobil hem de tekne sigorta fiyat teklifi isteklerini işleyecek, ikincisi hayat sigortası fiyat teklifi isteklerini işleyecek, üçüncüsü ise tümünü yakalayacaktır. Sigorta türüne bakılmaksızın üçüncü kuyruk, analiz sistemini beslemek için tüm fiyat teklifi isteklerini yakalayacaktır. Bu tercihler, SNS aboneliklerinde filtreleme politikası olarak ayarlanacaktır.
 
Bu adımda, üç kuyruğu oluşturacak ve bunların her birini SNS konusuna abone edeceksiniz.

a. Amazon SQS konsolunu yeni bir tarayıcı penceresinde açın. Amazon SQS açılış sayfası görünürse Kuyruk oluştur’u seçin. Aksi takdirde, sonraki adıma geçin.

b. Kuyruk oluştur sayfasında, Tür için Standart’ı seçili bırakın. Ad alanına Araç-Sigortası-Fiyat Teklifleri girin ve ardından ekranı aşağı kaydırıp Kuyruk oluştur düğmesini seçin.

c. Yeni kuyruk Kuyruk ayrıntıları sayfasında görünür. Kuyruklar açılış sayfasına dönmek için Kuyruklar’ı seçin.

d. Kuyruk oluştur düğmesini seçin ve şu adları kullanarak iki ek kuyruk oluşturmak için 2b ve 2c Adımlarını tekrarlayın: Hayat-Sigortası-Fiyat-Teklifleri ve Tüm-Fiyat-Teklifleri.

e.  Üç kuyruğun hepsi şimdi Amazon SQS konsolunda listeleniyor.

3. Adım: Kuyrukları konuya abone edin

Artık üç SQS kuyruğunu oluşturduğunuza göre bunları yeni sigorta fiyat teklifi istekleri yayımlayan SNS konusuna abone etmeniz gerekiyor.

a. Kuyruklar listesinden Tüm-Fiyat-Teklifleri kuyruğunu seçin.

Eylemler’i seçin ve Amazon SNS konusuna abone ol seçeneğini belirleyin.

b. Amazon SNS konusuna abone ol iletişim kutusu görüntülenir. Bu kuyruk için kullanılabilen bir Amazon SNS konusu belirt açılır listesinden, üç kuyruğunuzu abone edeceğiniz Sigorta-Fiyat-Teklifi-İstekleri konusunu seçin. SNS konusunu aynı hesaptan oluşturduğunuz için listede görünür.

SNS konusu başka bir hesap tarafından oluşturulmuş olsaydı Konu ARN alanını kullanarak buna abone olabilirdiniz. Daha fazla bilgi için Amazon SNS belgeleri veya Amazon SNS ile Hesaplar Arası Entegrasyon blog gönderimize bakın.

c. Kaydet’i seçin.

d. Kuyruk artık SNS konusuna abone edildi. Kuyruklar sayfasına dönmek için Kuyruklar’ı seçin ve Hayat-Sigortası-Fiyat-Teklifleri ve Araç-Sigortası-Fiyat-Teklifleri kuyrukları için a-c adımlarını tekrarlayın.

4. Adım: SNS aboneliklerine filtreleme politikaları atayın

Artık tüm Amazon SNS ve Amazon SQS kaynakları oluşturulduğuna göre SNS aboneliklerinize filtre politikaları atamaya hazırsınız. Bir filtre politikası basit bir JSON belgesidir, SNS aboneliğinin bir özniteliği olarak ayarlanır ve abonenin ilgilendiği bildirim türünü tanımlar.

Filtreleme politikaları olmayan abonelikler, bir SNS konusu için yayımlanan tüm mesajları alırlar, bu nedenle bu senaryo için Tüm-Fiyat-Teklifleri kuyruğuna yönelik bir filtreleme politikası ayarlamanıza gerek yoktur.

a. Diğer tarayıcı pencerenizdeki Amazon SNS konsoluna dönün ve Bölgedeki tüm Konularınızı listelemek için gezinme bölmesinde Konular’ı seçin.

Listede Sigorta-Fiyat-Teklifi-İstekleri adlı konuyu seçin. 

b. Bu sizi, bu SNS konusuna abone edilen tüm SQS kuyruklarını görebileceğiniz Sigorta-Fiyat-Teklifi-İstekleri Konu ayrıntıları sayfasına götürecektir. Araç-Sigortası-Fiyat-Teklifleri kuyruğunu, ardından Düzenle’yi seçin.

c. Bu sizi Aboneliği düzenle sayfasına götürecektir. Politikayı düzenlemek için Abonelik filtresi politikası’nın solundaki oku seçin ve ardından Etkin’i seçin.

d. Görüntülenen iletişim kutusunda, JSON düzenleyiciye aşağıdaki JSON nesnesini girin:
{"sigorta_türü": ["otomobil", "tekne"]}

Değişiklikleri kaydet’i seçin.

e. Abonelik filtresi politikasının başarıyla kaydedildiğini onaylayan bir onay mesajı görüntülenir. Konu ayrıntıları sayfasına geri dönmek için Sigorta-Fiyat-Teklifi-İstekleri’ne tıklayın.

f. Şimdi, ikinci kuyruğa filtre politikasını eklemek için işlemi tekrar edeceksiniz. Hayat-Sigortası-Fiyat-Teklifleri kuyruğunu ve Düzenle’yi seçin.

g. Politikayı düzenlemek için Abonelik filtresi politikası’nın solundaki oku seçin ve ardından Etkin’i seçin.

h. Görüntülenen iletişim kutusunda, JSON düzenleyiciye aşağıdaki JSON nesnesini girin:
{"sigorta_türü": ["hayat"]}

 
Değişiklikleri kaydet’i seçin.

 

Tüm-Fiyat-Teklifleri kuyruğu ile ilişkili abonelik için herhangi bir filtre politikası ayarlamanıza gerek yoktur. Politikanın eksik olması, bu kuyruğun bu konuya yayımlanan tüm olayları yakalamasını sağlayacaktır.

5. Adım: Konu için mesaj yayımlayın

Bunu test edelim. Bu adımda, konu için mesaj yayımlayarak olası satış oluşturma web sitenizden gelen yeni sigorta fiyat teklifi isteklerini simüle edebileceksiniz.

Farklı öznitelikleri olan mesajlar yayınlayacaksınız, bu sayede Amazon SNS’nin mesaj filtreleme mekanizmasını çalışırken görebilirsiniz.

a. Sigorta-Fiyat-Teklifi-İstekleri konu sayfasında, Mesaj yayımla’yı seçin.

b. Forma aşağıdaki değerleri girerek ilk mesajı oluşturun:
 
Konu kısmına Sigorta Fiyat Teklifi İsteği No. 1 ifadesini girin.
 
Mesaj yapısı kısmında, Tüm teslimat protokolleri için benzer yükler öğesini seçili bırakın.
 
Uç noktaya gönderilecek mesaj gövdesi alanına, bir otomobil sigortası fiyat teklif isteğini temsil etmek üzere aşağıdaki metni girin:

2017 Volvo S60, Montreal

Mesaj öznitelikleri kısmına:

  • Tür alanında String’i seçin
  • Adı alanına sigorta_türü ifadesini girin
  • Değer alanına otomobil ifadesini girin

Mesaj yayımla’yı seçin.

c. Sigorta-Fiyat-Teklifi-İstekleri konu sayfasına geri dönersiniz. Mesaj yayımla seçeneğini tekrar seçin.

d. Aşağıdaki değerleri kullanarak ikinci bir mesaj oluşturun:

Konu kısmına Sigorta Fiyat Teklifi İsteği No. 2 ifadesini girin
 
Mesaj yapısı kısmında, Tüm teslimat protokolleri için benzer yükler öğesini seçili bırakın.
 
Uç noktaya gönderilecek mesaj gövdesi alanına, bir otomobil sigortası fiyat teklif isteğini temsil etmek üzere aşağıdaki metni girin:
 
Erkek, 33 yaşında, Vancouver

Mesaj öznitelikleri kısmına:

  • Tür alanında String’i seçin
  • Adı alanına sigorta_türü ifadesini girin
  • Değer alanına hayat ifadesini girin

Mesaj yayımla’yı seçin.

e. Sigorta-Fiyat-Teklifi-İstekleri Konu sayfasına geri dönersiniz. Mesaj yayımla seçeneğini tekrar seçin.

f. Aşağıdaki değerleri kullanarak üçüncü bir mesaj oluşturun:
 
Konu kısmına Sigorta Fiyat Teklifi İsteği No. 3 ifadesini girin.
 
Mesaj yapısı kısmında, Tüm teslimat protokolleri için benzer yükler öğesini seçili bırakın
 
Uç noktaya gönderilecek mesaj gövdesi alanına, bir konut sigortası fiyat teklif isteğini temsil etmek üzere aşağıdaki metni girin:

Müstakil ev, 1500 m², Toronto

Mesaj öznitelikleri kısmına:

  • Tür alanında String’i seçin
  • Adı alanına sigorta_türü ifadesini girin
  • Değer alanına konut ifadesini girin

Mesaj yayımla’yı seçin.

6. Adım: Mesaj teslimlerinizi doğrulayın

Gerçekleştirilen mesaj teslimlerini inceleyerek her bir sigorta fiyat teklifi isteğinin ilgili Amazon SQS mesaj kuyruğuna yönlendirildiğini doğrulamanın zamanı geldi.

Abone olan bir Amazon SQS kuyruğunun, yalnızca ilgili Amazon SNS aboneliğinde bu gelen mesajın öznitelikleriyle eşleşen bir filtreleme politikası olduğunda bir mesaj aldığını göreceksiniz.
 
Ayrıca özellikle bir kuyruğun, konu için yayımlanan tüm mesajları aldığını fark edeceksiniz. Bunun nedeni, bu abonelikte ayarlanmış filtre politikası olmamasıdır ve bu da tüm mesajları yakalama davranışıyla sonuçlanmıştır.

a. Amazon SQS konsoluna dönün. Araç-Sigortası-Fiyat-Teklifleri kuyruğunu seçin ve Mesaj gönder ve al’ı seçin.

b. Mesajları yokla’yı seçin.

c. Otomobil sigortası fiyat teklifi (Sigorta Fiyat Teklif İsteği No. 1) ile ilgili olarak bu kuyruğa yalnızca bir mesaj gönderildiğini unutmayın. Yoklama işlemi tamamlandıktan hemen sonra Mesajlar’ın altındaki mesajı seçerek kuyruğa gönderilen mesajı görüntüleyin.

d. Mesajı görüntüleyin, ardından iletişim kutusunu kapatmak için Bitti’yi seçin.

e. İşlemi ikinci kuyruk için tekrarlayın. Hayat-Sigortası-Fiyat-Teklifleri kuyruğunu seçin ve Mesaj gönder ve al seçeneğini belirleyin.

f. Mesajları yokla’yı seçin.

g. Hayat sigortası fiyat teklifi (Sigorta Fiyat Teklif İsteği No. 2) ile ilgili olarak bu kuyruğa yalnızca bir mesaj gönderildiğini unutmayın. Yoklama işlemi tamamlandıktan hemen sonra Mesajlar’ın altındaki mesajı seçerek kuyruğa gönderilen mesajı görüntüleyin.

h. Mesajı görüntüleyin, ardından iletişim kutusunu kapatmak için Bitti’yi seçin.

i. Son olarak Tüm-Fiyat-Teklifleri kuyruğunu seçin ve Mesaj gönder ve al’ı seçin.

j. Mesajları yokla’yı seçin.

k. Üç mesajın hepsinin bu kuyruğa yayımlandığını unutmayın (Sigorta Fiyat Teklifi İstekleri No. 1, No. 2 ve No. 3).

Adım 7: Kaynakları temizleyin

Bu adımda, bu öğretici için oluşturduğunuz ve konu, abonelikler ve kuyrukları içeren kaynakları sileceksiniz. Artık kullanmadığınız kaynakları silmeniz en iyi uygulamalardandır, bu sayede sizden ücret alınmaz.

a. Amazon SNS konsolunun gezinme bölmesinde, Konular’ı seçin, sonra Sigorta-Fiyat-Teklifi-İstekleri konu bağlantısını seçin.

b. Sigorta-Fiyat-Teklifi-İstekleri konu ayrıntıları sayfasında, her bir aboneliği seçin ve Sil seçeneğini belirleyin.

c. Silme işlemini onaylamak için iletişim kutusunda Sil seçeneğini belirleyin.

d. Sigorta-Fiyat-Teklifi-İstekleri konu ayrıntıları sayfasında, Sil’i seçin.

e. İletişim kutusuna beni sil ifadesini girerek silme işlemini onaylayın ve ardından Sil’i seçin.

f. Amazon SQS konsoluna dönün. Bu öğreticide kullanılan kuyrukların her birini seçin ve Sil seçeneğini belirleyin.

g. İletişim kutusuna sil öğesini girerek silme işlemini onaylayın ve ardından Sil’i seçin.

h.  Şimdi AWS Yönetim Konsolu’ndan çıkış yapabilirsiniz.

Sonuç

Artık daha basit ve daha kolaylaştırılmış pub/sub mimarileri oluşturmak için Amazon SNS’de mesaj filtrelemeyi kullanabilirsiniz.

Mesaj filtreleme, Amazon SNS konu abonelerinin, bir konu için yayınlanan tüm mesajları almanın aksine, sadece ilgilendikleri mesajların bir alt kümesini seçerek almalarını sağlar. Bu, mesaj-filtreleme mantığının yükünü abonelerinizden ve mesaj-yönlendirme mantığının yükünü yayıncı sistemlerinizden boşaltmanıza olanak tanır.

Bu sayfa size yardımcı oldu mu?

Sonraki adımlar