In diesem Tutorial erfahren Sie, wie Sie die Nachrichtenfilterung von Amazon Simple Notification Service (SNS) optimal nutzen. Die Nachrichtenfilterfunktion ermöglicht es Endpunkten, die einem SNS-Thema abonniert sind, nur die Teilmenge der Themennachrichten zu empfangen, für die sie sich interessieren.

In unserem Beispiel besuchen die Benutzer eine Website, um Anfragen zu Versicherungsangeboten zu stellen. Diese Angebotsanfragen können sich auf Autoversicherungen, Bootsversicherungen oder Lebensversicherungen beziehen. Wenn ein Antrag auf ein Versicherungsangebot gestellt wird, wird die Anfrage an eine Reihe von Backend-Systemen weitergeleitet. Es gibt ein Verkaufssystem, das Fahrzeugversicherungen für Autos und Boote abwickelt, ein weiteres Verkaufssystem, das Lebensversicherungen abwickelt, und ein Analysesystem, das alle Angebotsanfragen bearbeiten muss.

Wie wir im Tutorial Senden von Fanout-Ereignisbenachrichtigungen gelernt haben, werden wir ein Fanout-Messaging-Muster mit SNS und SQS verwenden, um die Website von den Backend-Systemen zu entkoppeln. Um die Ereignisbenachrichtigungen an das richtige Backend-System zu erhalten, könnten Sie für jede Art von Angebotsanfrage ein separates Thema erstellen und dann eine Nachrichten-Routing-Logik für Ihren Publisher hinzufügen. Diese Option kann jedoch zu übermäßig komplizierten Publishern, Themenproliferation und zusätzlichem Aufwand bei der Bereitstellung und Verwaltung Ihrer SNS-Themen führen. SNS-Nachrichtenfilterung ist viel einfacher!

Sie verwenden Amazon SNS und Amazon Simple Queue Service (SQS) in diesem Tutorial. Beide Services sind im kostenlosen Kontingent für AWS enthalten.

 

Das Filtern von Nachrichten in AWS erfordert ein Konto

Kostenloses Konto erstellen

Das kostenlose Kontingent für AWS enthält 1 000 000 Veröffentlichungen für Amazon Simple Notification Service und 1 000 000 Anfragen für Amazon Simple Queue Service.

Details zum kostenlosen Kontingent für AWS anzeigen »

 

Ihr erster Schritt wird darin bestehen, ein Amazon SNS-Thema zu erstellen, um Nachrichten zu veröffentlichen, wenn Angebotsanfragen auf einer Versicherungswebsite gestellt werden. Diese Leads können sich auf Autoversicherungen, Bootsversicherungen oder Lebensversicherungen beziehen.  


a. Wenn Sie hier klicken, wird die AWS-Managementkonsole in einem neuen Browserfenster geöffnet, sodass Sie diese schrittweise Anleitung geöffnet lassen können. Wenn der Bildschirm vollständig geladen ist, geben Sie Ihren Benutzernamen und das Passwort ein, um zu beginnen. Geben Sie dann in die Suchleiste notification (Benachrichtigung) ein und wählen Sie Simple Notification Service, um die Service-Konsole zu öffnen.

tmt_filter-messages-sent-to-topics_1a

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_1a

b.  Wenn die Landing-Page der SNS-Konsole angezeigt wird, klicken Sie auf Start with an overview (Mit einer Übersicht beginnen). Wenn Sie diese Seite nicht sehen, fahren Sie mit dem nächsten Schritt fort.

1b-console-home

(zum Vergrößern klicken)

1b-console-home

c.  Klicken Sie im Menü auf der linken Seite auf Themen.

1c-create-topic-nav-open

(zum Vergrößern klicken)

1c-dashboard

d.  Klicken Sie auf Create Topic (Thema erstellen).

 

1d-No-topics

(zum Vergrößern klicken)

1d-No-topics

e.  Geben Sie im Namensfeld „Topic“ (Thema) Insurance-Quote-Requests ein und scrollen Sie dann nach unten. Klicken Sie auf Create topic (Thema erstellen).

 

1e-create-topic-nav-closed

(zum Vergrößern klicken)

1e-create-topic-nav-closed

f.  Das neue Thema wird auf der Detailseite Topic (Thema) angezeigt.

 

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

(zum Vergrößern klicken)

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

Jedes Versicherungsverkaufssystem fragt Angebotsanfragen aus der entsprechenden SQS-Nachrichtenwarteschlange ab, die für das SNS-Thema abonniert ist.

Die erste Warteschlange bearbeitet sowohl Anfragen zu Auto- als auch zu Bootsversicherungen, die zweite Warteschlange bearbeitet Anfragen zu Lebensversicherungen, und die dritte Warteschlange fängt alle ab. Die dritte Warteschlange fängt alle Angebotsanfragen, unabhängig von der Versicherungsart, ab, um ein Analysesystem zu speisen. Diese Einstellungen werden als Filterrichtlinien für die SNS-Abonnements festgelegt.

In diesem Schritt erstellen Sie die drei Warteschlangen und abonnieren jede von ihnen für das SNS-Thema.


a. Klicken Sie hier, um die Amazon SQS-Konsole in einem neuen Browserfenster zu öffnen. Wenn die SQS-Landing-Page angezeigt wird, klicken Sie auf Get Started Now (Jetzt starten). Andernfalls fahren Sie mit dem nächsten Schritt fort.

 

tmt_filter-messages-sent-to-topics_2a

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_2a

b.  Geben Sie auf der Seite Create New Queue (Neue Warteschlange erstellen) im Feld Queue Name (Warteschlangenname) Vehicle-Insurance-Quotes (Anfragen nach Fahrzeugversicherungen) ein.

Lassen Sie die Standard Queue (Standard-Warteschlange) ausgewählt und klicken Sie Quick-Create Queue (Warteschlange schnell erstellen).

 

tmt_filter-messages-sent-to-topics_2b

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_2b

c.  Klicken Sie auf Create New Queue (Neue Warteschlange erstellen) und wiederholen Sie Schritt 2b, um zwei weitere Warteschlangen zu erstellen:
Life-Insurance-Quotes
 (Anfragen nach Lebensversicherungen) und All-Quotes (alle Anfragen).

 

tmt_filter-messages-sent-to-topics_2c

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_2c

d.  Alle drei Warteschlangen werden jetzt in der SQS-Konsole aufgeführt.

 

tmt_filter-messages-sent-to-topics_2d

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_2d

Nachdem Sie nun Ihre drei Amazon SQS-Warteschlangen erstellt haben, müssen Sie sie für das Amazon SNS-Thema abonnieren, das neue Anfragen zu Versicherungsangeboten sendet.


a.  Wählen Sie in der Liste der Warteschlangen die Warteschlangen Vehicle-Insurance-Quotes, Life-Insurance-Quotes und All-Quotes aus.

Klicken Sie auf Queue Actions (Aktionen für Warteschlange) und wählen Sie Subscribe Queues to SNS Topic (SNS-Thema für Warteschlangen abonnieren) aus.

 

 

tmt_filter-messages-sent-to-topics_3a

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_3a

b.  Das Dialogfeld Subscribe to a Topic (Thema abonnieren) wird angezeigt. Wählen Sie aus der Dropdown-Liste Choose a Topic (Thema auswählen) das Thema Insurance-Quote-Requests (Versicherungsanfragen), das Sie für Ihre drei Warteschlangen abonnieren möchten. Da Sie das SNS-Thema vom gleichen Konto aus erstellt haben, wird es in der Liste angezeigt.

Wenn das SNS-Thema von einem anderen Konto erstellt wurde, können Sie es mit dem Feld Topic ARN (Themen-ARMN) abonnieren. Weitere Einzelheiten finden Sie in der Amazon SNS-Dokumentation oder in unserem Blog, Cross-Account-Integration mit SNS.

 

 

tmt_filter-messages-sent-to-topics_3b

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_3b

c.  Lassen Sie den Themenbereich Topic Region unverändert und klicken Sie auf Subscribe (Abonnieren).  

 

 

tmt_filter-messages-sent-to-topics_3c

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_3c

d.  Das Dialogfeld Topic Subscription Result (Ergebnis des Themenabonnements) wird angezeigt. Klicken Sie auf OK.

tmt_filter-messages-sent-to-topics_3d

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_3d

Nun, da alle SNS- und SQS-Ressourcen erstellt wurden, sind Sie bereit, Filterrichtlinien für Ihre SNS-Abonnements festzulegen. Eine Filterrichtlinie ist ein einfaches JSON-Dokument, das als Attribut des SNS-Abonnements festgelegt wird und die Art der Benachrichtigung definiert, an der der Abonnent interessiert ist.

Abonnements ohne Filterrichtlinien erhalten alle Nachrichten, die zum SNS-Thema veröffentlicht werden, so dass Sie für dieses Szenario keine Filterrichtlinie für die Warteschlange All-Quotes festlegen müssen.


a.  Kehren Sie zur Amazon SNS-Konsole in Ihrem anderen Browserfenster zurück und klicken Sie auf Topics (Themen), um eine Liste aller Ihrer Themen in der Region zu finden.

Klicken Sie in der Liste auf den Themennamen Insurance-Quote-Requests.  

4a-topic-list

(zum Vergrößern klicken)

4a-topic-list

b.  Dadurch gelangen Sie zu der Themendetailsseite Insurance-Quote-Requests, auf der Sie alle SQS-Warteschlangen sehen können, die für dieses SNS-Thema abonniert sind. Wählen Sie die Warteschlange Vehicle-Insurance-Quotes aus und klicken Sie dann auf Edit (Bearbeiten).

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

(zum Vergrößern klicken)

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

c.  Dadurch gelangen Sie zur Seite Edit subscription (Abonnement bearbeiten). Klicken Sie auf den Pfeil, um die Abonnement-Filterrichtlinie zu bearbeiten. 

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

(zum Vergrößern klicken)

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

d.  Geben Sie auf dem angezeigten Dialogfeld das folgende JSON-Objekt ein: {"insurance_type": ["car", "boat"]}

Klicken Sie auf Save changes (Änderungen speichern).

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

(zum Vergrößern klicken)

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

e.  Ein Bestätigungsdialogfeld wird angezeigt, das bestätigt, dass die Abonnementfilterrichtlinie erfolgreich erstellt wurde.

 

4e-sub-saved-success

(zum Vergrößern klicken)

4e-sub-saved-success

f.  Nun werden Sie den Vorgang wiederholen und die Filterrichtlinie zur zweiten Warteschlange hinzufügen. Wählen Sie die Warteschlange Life-Insurance-Quotes aus und klicken Sie dann auf „Edit“ (Bearbeiten).

Klicken Sie auf den Pfeil, um die Abonnement-Filterrichtlinie zu bearbeiten.

Geben Sie auf dem angezeigten Dialogfeld das folgende JSON-Objekt ein:{"insurance_type": ["life"]}

Klicken Sie auf „Save changes“ (Änderungen speichern).

Sie brauchen keine Filterrichtlinie für das Abonnement festzulegen, das sich auf die Warteschlange All-Quotes bezieht. Dieser Mangel an Richtlinien wird dazu führen, dass diese Warteschlange alle zu diesem Thema veröffentlichten Ereignisse auffängt.

4f-topic-edit-filter-life

(zum Vergrößern klicken)

4f-topic-edit-filter-life

Testen wir das einmal durch. In diesem Schritt können Sie neue Versicherungsangebotsanfragen simulieren, die von Ihrer Website zur Leadgenerierung eingehen, indem Sie Nachrichten zum Thema veröffentlichen.

Sie werden Nachrichten mit verschiedenen Attributen veröffentlichen, sodass Sie den Nachrichtenfiltermechanismus von Amazon SNS in Aktion sehen können.


a.  Klicken Sie auf der Themenseite Insurance-Quote-Requests auf Publish message (Nachricht veröffentlichen).

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

(zum Vergrößern klicken)

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

b.  Erstellen Sie die erste Nachricht, indem Sie die folgenden Werte in das Formular eingeben:

Geben Sie unter „Subject“ (Betreff) Insurance Quote Request #1 ein.

Lassen Sie in der Nachrichtenstruktur die Option Identical payload for all delivery protocols (Identische Nutzlast für alle Zustellprotokolle) ausgewählt.

Geben Sie im Nachrichtentext, der an den Endpunkt gesendet werden soll, den folgenden Text ein, der einen Antrag auf einen Kostenvoranschlag für eine Kfz-Versicherung darstellt:
2017 Volvo S60, Montreal

In Message attributes (Nachrichtenattribute):

  • Wählen Sie String (Zeichenfolge) im Feld Type (Typ) aus.
  • Geben Sie insurance_type (Versicherungstyp) im Feld Name (Name) ein.
  • Geben Sie car (Auto) im Feld Value (Wert) ein.

Klicken Sie auf Publish Message (Nachricht veröffentlichen).

5b-publish-message-montreal-address

(zum Vergrößern klicken)

5b-publish-message-montreal-address

c.  Sie gelangen zurück zur Themenseite Insurance-Quote-Requests. Klicken Sie erneut auf Publish message (Nachricht veröffentlichen) und erstellen Sie mit den folgenden Werten eine zweite Nachricht:

Geben Sie unter Subject (Betreff) Insurance Quote Request #2 ein.

Lassen Sie in der Nachrichtenstruktur die Option Identical payload for all delivery protocols (Identische Nutzlast für alle Zustellprotokolle) ausgewählt.

Geben Sie im Nachrichtentext, der an den Endpunkt gesendet werden soll, den folgenden Text ein, der einen Antrag auf einen Kostenvoranschlag für eine Kfz-Versicherung darstellt:
Male, 33 years old, Vancouver (Männlich, 33 Jahre alt, Vancouver)

In Message attributes (Nachrichtenattribute):

  • Wählen Sie String (Zeichenfolge) im Feld Type (Typ) aus.
  • Geben Sie insurance_type (Versicherungstyp) im Feld Name (Name) ein.
  • Geben Sie life (Leben) im Feld Value (Wert) ein.

Klicken Sie auf Publish Message (Nachricht veröffentlichen).

5c-publish-message-male33

(zum Vergrößern klicken)

5c-publish-message-male33

d.  Sie gelangen zurück zur Themenseite Insurance-Quote-Requests. Klicken Sie erneut auf Publish message (Nachricht veröffentlichen) und erstellen Sie mit den folgenden Werten eine zweite Nachricht:

Geben Sie unter Subject (Betreff) Insurance Quote Request #3 ein.

Lassen Sie in der Nachrichtenstruktur die Option Identical payload for all delivery protocols (Identische Nutzlast für alle Zustellprotokolle) ausgewählt.

Geben Sie im Nachrichtentext, der an den Endpunkt gesendet werden soll, den folgenden Text ein, der einen Antrag auf einen Kostenvoranschlag für eine Kfz-Versicherung darstellt:
Townhouse, 1500 sq ft, Toronto

In Message attributes (Nachrichtenattribute):

  • Wählen Sie String (Zeichenfolge) im Feld Type (Typ) aus.
  • Geben Sie insurance_type (Versicherungstyp) im Feld Name (Name) ein.
  • Geben Sie home (Gebäude) im Feld Value (Wert) ein.

Klicken Sie auf Publish Message (Nachricht veröffentlichen).

5d-publish-message-toronto-address

(zum Vergrößern klicken)

5d-publish-message-toronto-address

Es ist an der Zeit, dass Sie überprüfen, ob jede Art von Versicherungsangebotsanfrage an die entsprechende SQS-Nachrichtenwarteschlange weitergeleitet wurde, indem Sie die stattgefundenen Nachrichtenzustellungen inspizieren.

Sie werden sehen, dass eine abonnierte Amazon SQS-Warteschlange nur dann eine Nachricht erhalten hat, wenn das entsprechende SNS-Abonnement über eine Filterrichtlinie verfügte, die den Attributen dieser eingehenden Nachricht entsprach.

Sie werden auch feststellen, dass vor allem eine Warteschlange tatsächlich alle zum Thema veröffentlichten Nachrichten erhalten hat. Dies geschah, weil bei diesem Abonnement keine Filterrichtlinie festgelegt war, was zu einem Verhalten führte, dass alle abgerufen wurden.


a.  Kehren Sie zur Amazon SQS-Konsole zurück. Wählen Sie die Warteschlange Vehicle-Insurance-Quotes aus und klicken Sie dann auf Queue Actions (Warteschlangenaktionen).

Wählen Sie View/Delete Messages (Nachrichten anzeigen/löschen).  

tmt_filter-messages-sent-to-topics_6a

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_6a

b.  Klicken Sie auf Start Polling for Messages (Abfrage von Nachrichten starten).

Beachten Sie, dass nur eine einzige Nachricht in diese Warteschlange geschoben wurde, die sich auf dieses Kfz-Versicherungsangebot bezieht (Insurance Quote Request #1). Schließen Sie das Dialogfeld.

tmt_filter-messages-sent-to-topics_6b

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_6b

c.  Wiederholen Sie den Vorgang für die zweite Warteschlange. Wählen Sie die Warteschlange Life-Insurance-Quotes aus. Wählen Sie in der Dropdown-Liste Queue Action (Aktionen für Warteschlange) die Option View/Delete Messages (Nachrichten anzeigen/löschen).

Klicken Sie auf Start Polling for Messages (Abfrage von Nachrichten starten).

Beachten Sie, dass eine andere Nachricht in diese Warteschlange geschoben wurde, die sich auf dieses Lebensversicherungsangebot bezieht (Insurance Quote Request #2).

Klicken Sie auf Close (Schließen).

tmt_filter-messages-sent-to-topics_6c

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_6c

d.  Aktivieren Sie zum Schluss das Kontrollkästchen für die Warteschlange All-Quotes. Klicken Sie auf Queue Actions (Warteschlangenaktionen), wählen Sie View/Delete Messages (Nachrichten anzeigen/löschen) aus und klicken Sie auf Start Polling for Messages (Abfrage von Nachrichten starten).

Beachten Sie, dass alle drei Nachrichten in diese Warteschlange geschoben wurden (Versicherungs-Angebotsanfragen #1, #2 und #3).

Klicken Sie auf Close (Schließen).

tmt_filter-messages-sent-to-topics_6d

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_6d

In diesem Schritt löschen Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, z. B. ein Thema, Abonnements und Warteschlangen. Dabei hat es sich bewährt, Ressourcen zu löschen, die Sie nicht mehr verwenden, um unerwünschte Gebühren zu vermeiden.


a.  Klicken Sie in der Amazon SNS-Konsole auf Topics (Themen) und dann auf den Themenlink Insurance-Quote-Requests.

Schritt 7a

(zum Vergrößern klicken)

Schritt 7a

b.  Wählen Sie auf der Themendetailseite Insurance-Quote-Requests jedes Abonnement aus und klicken Sie dann auf Delete (Löschen).

Klicken Sie im Dialogfeld auf Delete (Löschen), um den Löschvorgang zu bestätigen. 

7b-topic-detail-with-3subs

(zum Vergrößern klicken)

7b-topic-detail-with-3subs

c.  Klicken Sie auf der Themenseite Insurance-Quote-Requests auf Delete (Löschen).

Bestätigen Sie den Löschvorgang, indem Sie im Dialogfeld delete me (Lösche mich) eingeben und auf Delete (Löschen) klicken. 

 

7c-topic-detail-no-sub

(zum Vergrößern klicken)

7c-topic-detail-no-sub

d.  Kehren Sie zur Amazon SQS-Konsole zurück. Wählen Sie alle drei in diesem Tutorial verwendeten Warteschlangen aus, klicken Sie auf Queue Actions (Warteschlangenaktionen) und dann auf Delete Queues (Warteschlangen löschen).

Bestätigen Sie den Löschvorgang im Dialogfeld.

tmt_filter-messages-sent-to-topics_7d

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_7d

e.  Sie können sich nun von der AWS Managementkonsole abmelden.  

tmt_filter-messages-sent-to-topics_7e

(zum Vergrößern klicken)

tmt_filter-messages-sent-to-topics_7e

Sie können jetzt den Nachrichtenfilter auf Amazon Simple Notification Service (SNS) verwenden, um einfachere und besser optimierte Pub/Sub-Architekturen zu erstellen.

Nachrichtenfilter gestatten es den Abonnenten von Amazon SNS-Themen, selektiv nur eine Untermenge der Nachrichten zu erhalten, an denen sie interessiert sind, und nicht alle Nachrichten, die zu einem Thema veröffentlicht werden. Dadurch fällt die Entwurfskomplexität bei der Implementierung der Nachrichtenfilterlogik für Ihre Abonnenten oder die Routinglogik für Nachrichten in Ihren Veröffentlichungssystemen weg.


Nachdem Sie nun gelernt haben, wie Sie die Nachrichtenfilterung mit dem Amazon Simple Notification Service implementieren, wählen Sie eine der folgenden Optionen, um mehr Einblick in das Thema Cloud Messaging auf AWS zu bekommen.

Weitere Informationen

Erhalten Sie eine Übersicht über die Funktionen, Komponenten und Anwendungsfälle für Nachrichten-Themen auf Amazon Web Services (AWS).

Besuchen Sie die Amazon SNS-Website »

Detaillierte Informationen

Informieren Sie sich im Entwicklerhandbuch, wie Sie Nachrichtenfilterung für Ihre SNS-Themen implementieren können.

Lesen Sie die Dokumentation »

Erleben Sie es in Aktion

Erkunden Sie ein Beispiel, das Ihnen zeigt, wie Sie Nachrichtenfilterung mit dem AWS SDK für Python implementieren können.

Blog lesen »

Ja
Nein