So erstellen Sie ein Abonnement zwischen einer SQS-Warteschlange und einem SNS-Thema auf AWS
Die Idee hinter dem Abonnieren von SQS in SNS ist es, Nachrichten von SNS an SQS zu senden. Man kann sowohl rohe Nachrichten als auch alle anderen in der SNS-Nachricht enthaltenen Nachrichtenattribute senden. Bevor Sie mit diesem Artikel fortfahren, wird vorausgesetzt, dass Sie ein SNS und SQS im Konto haben. Das Anlegen von SNS und SQS gehört nicht zum Umfang dieses Artikels.
SNS kann mehrere SQS-Warteschlangen abonniert haben und SNS wird dieselbe Nachricht an alle seine Abonnements veröffentlichen.
Gehen Sie auf die offizielle Seite von AWS, um die Preise für SNS und SQS zu erfahren.
Vorraussetzungen
- AWS-Konto (Erstellen Sie es, wenn Sie noch keines haben).
- SNS-Thema (Klicken Sie hier, um zu erfahren, wie Sie ein SNS-Thema erstellen)
- SQS-Thema
Was müssen wir tun?
- Anmeldung bei AWS.
- Überprüfen Sie SNS.
- Überprüfen Sie SQS und ändern Sie dessen Zugriffsrichtlinie.
- Erstellen Sie eine Subscription von SNS zu SQS.
- Rufen Sie Nachrichten auf SQS ab und senden Sie eine Nachricht von SNS.
- Löschen Sie das Abonnement.
Anmeldung bei AWS
Um sich bei Ihrem AWS-Konto anzumelden, klicken Sie hier und geben Sie Ihre Anmeldedaten ein
Sobald Sie sich erfolgreich in Ihr Konto eingeloggt haben, sehen Sie die Hauptverwaltungskonsole von AWS wie folgt.
SNS prüfen
Suchen Sie im Suchfeld oben auf dem Bildschirm nach SNS.
Sie sehen das SNS-Dashboard wie folgt. Klicken Sie im linken Bereich auf „Topics“.
Hier sehen Sie die vorhandenen SNS-Themen in Ihrem Konto unter der ausgewählten Region. Ich werde das SNS-Thema „sns-test“ verwenden. Klicken Sie auf das gewünschte Thema, um dessen Details zu sehen.
Hier hat das Thema kein Abonnement.
Überprüfen Sie SQS und ändern Sie seine Zugriffsrichtlinie
Suchen Sie im Suchfeld am oberen Rand des Bildschirms nach SQS.
Sie sehen das Haupt-Dashboard wie folgt für SQS mit einer Liste von SQS-Warteschlangen, die unter der ausgewählten Region in Ihrem AWS-Konto verfügbar sind. Hier werde ich die „sqs-test“-Warteschlange verwenden. Klicken Sie auf das SQS-Thema, um seine Details zu überprüfen und die Zugriffsrichtlinie zu ändern.
Gehen Sie auf die Registerkarte „Access policy“, um die Standard-/vorhandene Richtlinie zu ändern, und klicken Sie auf die Schaltfläche „Edit“.
Ersetzen Sie in der Zugriffsrichtlinie unter „Principal block“ das Konto arn durch *, um mögliche Zugriffsprobleme zu vermeiden, und speichern Sie die Änderungen. Dies wird für die Produktionskonten nicht empfohlen.
Erstellen einer Subscription von SNS zu SQS
Gehen Sie zum Thema SNS und klicken Sie auf die Schaltfläche „Create subscription“, um ein Abonnement zu erstellen.
Ändern Sie hier das Protokoll auf Amazon SQS und geben Sie die ARN des SQS-Topics im Feld „Endpoint“ an. Aktivieren Sie das Kontrollkästchen „Enable raw message delivery“ und klicken Sie dann auf die Schaltfläche „Create subscription“.
Wenn Sie nun zum SNS-Topic gehen, sehen Sie, dass das Abonnement erfolgreich erstellt wurde und der Status bestätigt ist.
Pollen Sie Nachrichten auf SQS und senden Sie eine Nachricht von SNS.
Wir können testen, ob die Nachrichten in SQS ankommen, wenn sie vom SNS-Topic gesendet werden. Um dies zu testen, gehen Sie in das SQS-Topic und klicken Sie auf die Schaltfläche „Nachrichten senden und empfangen“.
Hier klicken Sie auf die Schaltfläche „Pool für Nachrichten“.
Sobald Sie auf die Schaltfläche „Für Nachrichten abfragen“ klicken, gehen Sie in das SNS-Topic und klicken auf die Schaltfläche „Nachricht veröffentlichen“.
Fügen Sie hier der Nachricht einen Betreff hinzu und wählen Sie die Option „Benutzerdefinierte Nutzdaten für jedes Zustellprotokoll“.
Scrollen Sie ein Stück nach unten und klicken Sie auf die Schaltfläche „Nachricht veröffentlichen“.
Wenn Sie nun auf die SQS-Seite zurückkehren, sehen Sie, dass die Nachricht von SQS empfangen wurde.
Klicken Sie auf die Nachrichten-ID, um zu sehen, was von SNS gesendet wurde.
Im Body-Bereich können Sie sehen, dass die von SNS gesendete Nachricht erfolgreich von der SQS empfangen wurde.
Löschen des Abonnements
Wenn Sie das Abonnement nicht mehr benötigen, können Sie es einfach aus dem SNS-Thema selbst löschen. Wählen Sie das Abonnement aus und klicken Sie auf die Schaltfläche „Löschen“.
Sie erhalten ein Pop-up-Fenster, in dem Sie den Löschvorgang bestätigen müssen. Sobald das Abonnement gelöscht ist, können Sie es nicht wiederherstellen. Seien Sie vorsichtig, wenn Sie Löschvorgänge in Ihren Produktionskonten durchführen.
Fazit
In diesem Artikel haben wir die Schritte zum Erstellen eines Abonnements vom SNS-Topic zum SQS-Topic gesehen. Wir haben eine Beispielnachricht von SNS gesendet, die in der SQS abgefragt wurde. Wir haben auch gesehen, wie einfach ein Abonnement aus der SNS gelöscht werden kann.