Erste Schritte / Praktische Übungen / ...
Fanout-Ereignisbenachrichtigungen senden
mit Amazon Simple Queue Service (SQS) und Amazon Simple Notification Service (SNS)
Einführung
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.
Veranschlagte Kosten
Kostenloses Kontingent
Verwendete Services
Das Senden von Fanout-Ereignisbenachrichtigungen
in AWS erfordert ein Konto
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.
Implementierung
-
Amazon-SNS-Konsole öffnen
Klicken Sie hier, um die AWS-Managementkonsole in einem neuen Browserfenster zu öffnen, sodass Sie diese Schritt-für-Schritt-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 Benachrichtigung ein und wählen Sie Einfacher Benachrichtigungsservice, um die Service-Konsole zu öffnen.
a. Wenn die Landing-Page der SNS-Konsole angezeigt wird, klicken Sie auf Nächster Schritt.
-
Amazon-SNS-Thema erstellen
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 Thema erstellen den Text New-Orders in das Feld für den Themennamen ein und klicken Sie dann auf Thema erstellen.
b. Die Seite mit den Themendetails bestätigt, dass das Thema erfolgreich erstellt wurde.
-
Amazon-SQS-Warteschlangen erstellen
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 Neue Warteschlange erstellen im Feld Warteschlangenname Bestellungen für Inventar ein. Lassen Sie die Standard-Warteschlange ausgewählt und klicken Sie auf 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 Neue Warteschlange erstellen, um eine weitere Warteschlange zum Speichern von Bestellungen für den Analysedienst zu erstellen.
d. Geben Sie in das Feld Warteschlangenname Bestellungen für Analyse ein und klicken Sie auf Warteschlange schnell erstellen.
e. Die neue Warteschlange erscheint nun in der Warteschlangenliste.
-
Abonnieren Sie die Warteschlangen für das Thema
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 Warteschlangenaktionen die Option SNS-Thema für Warteschlangen abonnieren.
b. Das Dialogfeld Thema abonnieren wird angezeigt. Wählen Sie in der Dropdown-Liste 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 Themenregion unverändert und klicken Sie auf Abonnieren.
c. Das Dialogfeld Ergebnis des Themenabonnements wird angezeigt. Klicken Sie auf OK.
-
Veröffentlichen Sie eine Nachricht zum Thema
Ihre Warteschlangen sind nun auf 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 Detailseite der Amazon-SNS-Konsole zum Thema Neue Bestellungen auf Nachricht veröffentlichen.
b. Die Seite Nachricht für Thema veröffentlichen erscheint. Geben Sie im Feld Betreff den Text Order 123-4567890-1234567. Geben Sie im Feld Nachricht den folgenden Text für eine Musterbestellung ein:
1 x Widget für 29,99 USD
2 x Widget Cables für 4,99 USDKlicken Sie auf Nachricht veröffentlichen. Ein Bestätigungsdialogfeld wird angezeigt.
-
Bestätigen Sie das Abonnement.
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 Warteschlangenaktion die Option Nachrichten anzeigen/löschen.
b. Klicken Sie auf Abfrage von Nachrichten starten.
c. Sie gelangen zum Dialogfenster Anzeigen/Löschen von Nachrichten in Aufträgen zur Inventar.
d. Klicken Sie in der Spalte Körper auf Weitere Informationen. Das Feld 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 Bestellungen für Inventar die Benachrichtigung über die neue Bestellung aus dem Thema New-Orders erhalten hat.
Klicken Sie auf 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 1 Nachricht löschen. Klicken Sie zur Bestätigung auf Ja, ausgewählte Nachrichten löschen. Klicken Sie dann auf Schließen.
f. Wiederholen Sie die Schritte 6a bis 6e, um zu bestätigen, dass auch die Warteschlange Bestellungen für Analyse die Benachrichtigung über den neuen Auftrag erhalten hat.
-
Ihre Ressourcen löschen
In diesem Schritt löschen Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, darunter die Themenabonnements, Themen und Warteschlangen. Es empfiehlt sich, nicht mehr benötigte Ressourcen zu löschen, damit Ihnen keine Kosten entstehen.
a. a. Öffnen Sie die Amazon-SNS-Konsole und klicken Sie im linken Navigationsbereich auf Themen.
Wählen Sie das Thema New-Orders.
Klicken Sie auf Löschen, um Themen zu löschen.
b. Das Bestätigungsdialogfeld Löschen erscheint. Geben Sie Mich löschen im Dialogfeld ein und klicken Sie auf 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).
c. Wählen Sie in der Amazon-SQS-Konsole die Warteschlangen Bestellungen für Inventar und Bestellungen für Analyse. Wählen Sie aus Warteschlangenaktionen die Option Warteschlangen löschen aus.
d. Das Dialogfeld Warteschlangen löschen wird angezeigt. Klicken Sie auf Ja, 2 Warteschlangen löschen. Die Warteschlangen werden gelöscht.
Sie können sich nun von der Amazon-SQS-Konsole abmelden.
Herzlichen Glückwunsch!
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.