In diesem Tutorial implementieren Sie mit Amazon Simple Notification Service (SNS) und Amazon Simple Queue Service (SQS) ein Fanout-Messaging-Szenario. In diesem Szenario werden Nachrichten mittels Push an mehrere Abonnenten weitergeleitet. Die regelmäßige Überprüfung oder Abfrage nach Aktualisierungen entfällt dadurch, und die Abonnenten können die Nachrichten parallel und asynchron verarbeiten.

Beispiel: Gehen wir davon aus, dass Sie eine Cloud-basierte Anwendung entwickeln, die eine Amazon SNS-Nachricht an ein Thema sendet, wenn eine Bestellung in einem Online-Shop aufgegeben wird. Die Amazon SQS-Warteschlangen, die dieses Thema abonniert haben, erhalten jeweils identische Benachrichtigungen für die neue Bestellung.

Die AWS-Services, die Sie in diesem Tutorial verwenden, befinden sich innerhalb des kostenlosen Kontingents für AWS.

Das Versenden von Fanout-Ereignisbenachrichtigungen bei 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 »

 

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_send-fanout-event-notifications_1a

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_1a

a. Wenn die Landing-Page der SNS-Konsole angezeigt wird, klicken Sie auf Next step (Nächster Schritt).

1a-sns-console-home

(zum Vergrößern klicken)

1a-sns-console-home

In diesem Schritt erstellen Sie ein Amazon SNS-Thema. Ein Thema ist ein Kommunikationskanal, um Nachrichten zu senden und Benachrichtigungen zu abonnieren. In diesem Beispiel wird eine E-Commerce-Beispielanwendung eine Nachricht an ein Amazon SNS-Thema senden, wenn eine neue Bestellung im Online-Shop aufgegeben wird. 


a.  Geben Sie auf der Seite „Create topic“ (Thema erstellen) den Text New-Orders (Neue Bestellungen) in das Feld für den Themennamen ein und klicken Sie dann auf Create topic.

2a-topic-create-wf

(zum Vergrößern klicken)

2a-topic-create-wf

b. Die Seite mit den Themendetails bestätigt, dass das Thema erfolgreich erstellt wurde.

2b-topic-create-confirm

(zum Vergrößern klicken)

2b-topic-create-confirm

Nachdem Sie das Thema nun mit Amazon SNS erstellt haben, erstellen Sie Amazon SQS-Warteschlangen, die das Thema abonnieren.

Wenn Sie für mehrere Warteschlangen ein Thema abonnieren, erhält jede Warteschlange identische Benachrichtigungen beim Versand einer Nachricht an das Thema. Dienste, die mit diesen Warteschlangen verbunden sind, können die Aufträge dann asynchron und parallel bearbeiten.

So könnte beispielsweise eine Amazon EC2-Server-Instance, die zu einer der Warteschlangen gehört, die Verarbeitung oder Erfüllung der Bestellung übernehmen, während die andere Server-Instance mit einem Data Warehouse zur Analyse aller eingehenden Bestellungen verbunden wird.

Um die Sache einfach zu halten, werden wir in diesem Tutorial keine EC2-Instances mit den Warteschlangen verbinden.


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_send-fanout-event-notifications_3a

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_3a

b. Unsere erste Warteschlange speichert Bestellungen für einen fiktiven Bestandsdienst, der die Produkte verfolgt und sie bei Bedarf mit jeder Bestellung hinzufügt oder aus dem Inventar löscht.  

Geben Sie auf der Seite Create New Queue (Neue Warteschlange erstellen) im Feld Queue Name (Warteschlangenname) Orders-for-Inventory(Bestellungen für Inventar) ein. Lassen Sie die Standard Queue (Standard-Warteschlange) ausgewählt und klicken Sie Quick-Create Queue (Warteschlange schnell erstellen).

tmt_send-fanout-event-notifications_3b

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_3b

c. Ihre neue Warteschlange ist erstellt und in der Liste der Warteschlangen ausgewählt. Als nächstes erstellen Sie eine zweite Warteschlange für die Auftragsanalyse.

Klicken Sie auf Create New Queue (Neue Warteschlange erstellen), um eine weitere Warteschlange zum Speichern von Bestellungen für den Analysedienst zu erstellen.

tmt_send-fanout-event-notifications_3c

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_3c

d. Geben Sie in das Feld Queue Name (Warteschlangenname) Orders-for-Analytics (Bestellungen für Analyse) ein und klicken Sie auf Quick-Create Queue (Warteschlange schnell erstellen). 

tmt_send-fanout-event-notifications_3d

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_3d

e. Die neue Warteschlange erscheint nun in der Warteschlangenliste.

tmt_send-fanout-event-notifications_3e

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_3e

Nachdem Sie nun Ihre beiden Amazon SQS-Warteschlangen erstellt haben, müssen Sie für sie das Amazon SNS-Thema abonnieren, das Benachrichtigungen über neue Bestellungen sendet.


a. Wählen Sie aus der Liste der Warteschlangen die Warteschlangen Orders-for-Inventory (Bestellungen für Inventar) und Orders-for-Analytics (Bestellungen für Analyse). Wählen Sie unter Queue Actions (Aktionen für Warteschlange) Subscribe Queues to SNS Topic (SNS-Thema für Warteschlangen abonnieren).

tmt_send-fanout-event-notifications_4a

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_4a

b. Das Dialogfeld Subscribe to a Topic (Thema abonnieren) wird angezeigt. Wählen Sie in der Dropdown-Liste Choose a Topic (Ein Thema auswählen) Ihr Amazon SNS-Thema für neue Bestellungen (New-Orders) aus.

Ihr SNS-Thema erscheint in der Liste, weil Sie es von demselben Konto erstellt haben, mit dem Sie Ihre Amazon SQS-Warteschlangen erstellt haben. Wenn das SNS-Thema von einem anderen Konto erstellt wurde, können Sie es mit dem Themen-ARN abonnieren. Weitere Details finden Sie in der Dokumentation zu Amazon SNS.

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

tmt_send-fanout-event-notifications_4b

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_4b

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

tmt_send-fanout-event-notifications_4c

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_4c

Ihre Warteschlangen haben nun das Thema abonniert. In diesem Schritt simulieren Sie einen neue Bestellung, indem Sie die fiktive E-Commerce-Anwendung eine Nachricht an das Thema mit den Bestelldaten senden lassen.


a. Klicken Sie auf der Seite mit den Details zum Thema New Orders (Neue Bestellungen) der Amazon SNS-Konsole auf Publish message (Nachricht veröffentlichen).

 

5a-topic-create-confirm

(zum Vergrößern klicken)

5a-topic-create-confirm

b. Die Seite Publish Message to topic (Nachricht für Thema veröffentlichen) erscheint. Geben Sie im Feld „Subject“ (Betreff) den Text Order 123-456787890-1234567 ein. Geben Sie im Feld „Message“ (Nachricht) den folgenden Text für eine Musterbestellung ein:

1 x Widget @ $29.99 USD

2 x Widget Cables @ $4.99

Klicken Sie auf Publish Message (Nachricht veröffentlichen). Ein Bestätigungsdialogfeld wird angezeigt.

 

5b-sns-send-message-wf

(zum Vergrößern klicken)

5b-sns-send-message-wf

Sobald eine neue Nachricht veröffentlicht wird, sendet Amazon SNS diese Nachricht an jeden Endpunkt, der das Thema abonniert hat. In einem Fanout-Szenario wie diesem sind die Amazon SQS-Warteschlangen die Endpunkte.

In diesem Schritt bestätigen Sie, dass die Warteschlangen die Benachrichtigung über die neue Bestellung erhalten haben, indem Sie die Nachricht anzeigen, die das Thema an die Warteschlangen gesendet hat.


a. Aktivieren Sie aus der Warteschlangenliste in der Amazon SQS-Konsole das Kontrollkästchen für die Warteschlange Orders-for-Inventory (Bestellungen für Inventar). Wählen Sie in der Dropdown-Liste Queue Action (Aktionen für Warteschlange) die Option View/Delete Messages (Nachrichten anzeigen/löschen).

 

tmt_send-fanout-event-notifications_6a

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6a

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


tmt_send-fanout-event-notifications_6b

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6b

c. Das Dialogfenster View/Delete Messages in Orders-for-Inventory (Nachrichten in Bestellungen für Inventar anzeigen/löschen) erscheint.

tmt_send-fanout-event-notifications_6c

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6c

d. Klicken Sie in der Spalte „Body“ auf More Details (Weitere Informationen). Das Feld Message Details (Nachrichtendetails) enthält ein JSON-Dokument mit dem Betreff und der Nachricht, die Sie für das Thema veröffentlicht haben.  

Sie haben bestätigt, dass die Warteschlange Orders-for-Inventory (Bestellungen für Inventar) die Benachrichtigung über die neue Bestellung aus dem Thema New-Orders (Neue Bestellungen) erhalten hat.  

Klicken Sie auf Close (Schließen).

 

tmt_send-fanout-event-notifications_6d

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6d

e. Gehen wir davon aus, dass unser fiktiver Bestandsdienst die Verarbeitung dieser Nachricht abgeschlossen hat und wir die Nachricht nun sicher aus der Warteschlange entfernen können. 

Klicken Sie auf Delete 1 Message (1 Nachricht löschen). Klicken Sie zur Bestätigung auf Yes, Delete Checked Messages (Ja, ausgewählte Nachrichten löschen). Klicken Sie dann auf Close (Schließen).

 

tmt_send-fanout-event-notifications_6e

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6e

f. Wiederholen Sie die Schritte 6a bis 6e, um zu bestätigen, dass die Warteschlange Orders-for-Analytics (Bestellungen für Analyse) auch die Benachrichtigung über die neue Bestellung erhalten hat.

tmt_send-fanout-event-notifications_6f

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_6f

In diesem Schritt löschen Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, darunter die Themenabonnements, Themen 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. Öffnen Sie die Amazon SNS-Konsole und klicken Sie im linken Navigationsbereich auf Topics (Themen).

Wählen Sie das Thema New-Orders (Neue Bestellungen).

Klicken Sie auf Delete (Löschen), um Themen zu löschen.

 

7a

(zum Vergrößern klicken)

7a

b. Das Bestätigungsdialogfeld Delete (Löschen) erscheint. Geben Sie delete me (mich löschen) im Dialogfeld ein und klicken Sie auf Delete (Löschen). Das Thema und seine Abonnements werden gelöscht. Sie können nun das SNS-Browserfenster schließen (aber melden Sie sich nicht ab, da Sie die Warteschlangen in der SQS-Konsole noch löschen müssen).

7b

(zum Vergrößern klicken)

7b

c. Wählen Sie in der Amazon SQS-Konsole die Warteschlangen Orders-for-Inventory (Bestellungen für Inventar) und Orders-for-Analytics (Bestellungen für Analyse). Wählen Sie aus Queue Actions (Aktionen für die Warteschlange) Delete Queues (Warteschlangen löschen) aus.


tmt_send-fanout-event-notifications_7c

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_7c

d. Das Dialogfeld Delete Queues (Warteschlangen löschen) wird angezeigt. Klicken Sie auf Yes, Delete 2 Queues (Ja, 2 Warteschlangen löschen). Die Warteschlangen werden gelöscht.

Sie können sich nun von der Amazon SQS-Konsole abmelden.

tmt_send-fanout-event-notifications_7d

(zum Vergrößern klicken)

tmt_send-fanout-event-notifications_7d

Sie haben ein Fanout-Szenario mit Amazon SNS und Amazon SQS implementiert. Sie sind nun in der Lage, Amazon SNS und Amazon SQS gemeinsam zu verwenden, um Nachrichten an Anwendungen zu senden, die eine sofortige Benachrichtigung über ein Ereignis erfordern, oder um Nachrichten in Amazon SQS-Warteschlangen zu puffern, damit andere Anwendungen diese später verarbeitet können.

 


Nachdem Sie nun gelernt haben, wie Sie Nachrichten für Fanout-Benachrichtigungen mit Amazon Simple Notification Service und Amazon Simple Queue Service implementieren können, 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

Erfahren Sie, wie Sie es Anwendungen, Endbenutzern und Geräten ermöglichen, Benachrichtigungen aus der Cloud sofort zu senden und zu empfangen. Lesen Sie die Dokumentation »

Erleben Sie es in Aktion

Erfahren Sie, wie Kunden wie Capital One Amazon SQS und Amazon SNS zur Entkopplung und Skalierung von Anwendungen einsetzen. Webinar ansehen »

Ja
Nein