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 erstellenDas 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.
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.
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.
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).
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.
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).
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).
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.
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.
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).
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).
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).
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.
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).
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 »