Fanout zu AWS Event Fork Pipelines - Amazon Simple Notification Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fanout zu AWS Event Fork Pipelines

Für die Ereignisarchivierung und -analyse empfiehlt Amazon SNS jetzt, seine native Integration mit Amazon Data Firehose zu verwenden. Sie können Firehose-Bereitstellungsdatenströme für SNS-Themen abonnieren, mit denen Sie Benachrichtigungen an Archivierungs- und Analyseendpunkte wie Amazon Simple Storage Service (Amazon S3)-Buckets, Amazon-Redshift-Tabellen, Amazon OpenSearch Service (OpenSearch Service) und mehr senden können. Die Verwendung von Amazon SNS mit Firehose-Bereitstellungsdatenströmen ist eine vollständig verwaltete und Codeless-Lösung, für die Sie keine -AWS LambdaFunktionen verwenden müssen. Weitere Informationen finden Sie unter Fanout zu Firehose-Bereitstellungsdatenströmen.

Sie können Amazon SNS zum Entwickeln ereignisgesteuerter Anwendungen verwenden, die Abonnenten-Services für die automatische Ausführung von Aufgaben als Antwort auf von Herausgeber-Services ausgelöste Ereignisse verwenden. Dieses Architekturmuster kann eine bessere Wiederverwendbarkeit, Interoperabilität und Skalierbarkeit von Services unterstützen. Es kann jedoch arbeitsaufwändig sein, die Verarbeitung von Ereignissen auf Pipelines aufzuteilen, die gemeinsame Anforderungen an die Ereignisbehandlung erfüllen, wie Speicherung, Backup, Suche, Analytik und Replay von Events.

Um die Entwicklung Ihrer ereignisgesteuerten Anwendungen zu beschleunigen, können Sie Pipelines für die Ereignisbehandlung abonnieren, die von AWS Event Fork Pipelines zu Amazon SNS-Themen unterstützt werden. AWS Event Fork Pipelines ist eine Suite von verschachtelten Open-Source-Anwendungen, basierend auf einem AWS Serverless Application Model (AWS-SAM), die Sie direkt in der AWS Event Fork Pipelines Suite (wählen Sie Anzeigen von Apps, die benutzerdefinierte IAM-Rollen oder Ressourcenrichtlinien erstellen) in Ihrem AWS-Konto verfügbar machen können.

Einen AWS Anwendungsfall für Event Fork Pipelines finden Sie unter Bereitstellen und Testen der AWS Event Fork Pipelines – Beispielanwendung.

Wie AWS Event Fork Pipelines funktionieren

AWS Event Fork Pipelines haben ein Serverless Design. Es stellt jedoch auch eine Suite verschachtelter Serverless Anwendungen auf der Basis von AWS SAM dar (die Sie direkt aus AWS Serverless Application Repository (AWS SAR) Ihrem AWS-Konto bereitstellen können, um Ihre ereignisgesteuerten Plattformen zu ergänzen). Sie können diese verschachtelten Anwendungen einzeln bereitstellen wie von Ihrer Architektur gefordert.

Das folgende Diagramm zeigt eine AWS-Anwendung der Event Fork Pipelines, die von drei verschachtelten Anwendungen ergänzt wird. Sie können jede Pipeline aus der AWS Event Fork Pipelines Suite unabhängig voneinander in AWS SAR bereitstellen, wie von Ihrer Architektur gefordert.

Jede Pipeline hat dasselbe Amazon SNS-Thema abonniert, um Ereignisse parallel verarbeiten zu können, wenn diese Ereignisse zum Thema veröffentlicht werden. Jede Pipeline ist unabhängig und Sie können eine eigene Abonnementfilterrichtlinie festlegen. So ist es möglich, dass eine Pipeline nur eine Teilmenge der Ereignisse verarbeitet - die von Interesse (anstelle aller zum Thema veröffentlichter Ereignisse).

Anmerkung

Da Sie die drei AWS Event Fork Pipelines neben Ihren regulären Pipelines für die Ereignisverarbeitung platzieren (die Ihr Amazon SNS-Thema möglicherweise bereits abonniert haben), müssen Sie keinen Abschnitt Ihres aktuellen Nachrichtenherausgebers ändern, um in Ihren vorhandenen Workloads AWS Event Fork Pipelines nutzen zu können.

Die Pipeline für die Speicherung und Sicherung von Ereignissen

Das folgende Diagramm zeigt die Pipeline für die Speicherung und Sicherung von Ereignissen. Sie können für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen, um die Ereignisse in Ihrem System automatisch zu sichern.

Diese Pipeline besteht aus einer Amazon SQS-Warteschlange, die die vom Amazon SNS-Thema bereitgestellten Ereignisse puffert, einer -AWS LambdaFunktion, die diese Ereignisse automatisch in der Warteschlange abfragt und sie in einen Amazon-Data-Firehose-Stream überträgt, und einem Amazon S3-Bucket, der die vom Stream geladenen Ereignisse dauerhaft sichert.

Um das Verhalten Ihres Firehose-Streams zu optimieren, können Sie ihn so konfigurieren, dass Ihre Ereignisse gepuffert, transformiert und komprimiert werden, bevor sie in den Bucket geladen werden. Während die Ereignisse geladen werden, können Sie Amazon Athena verwenden, um im Bucket SQL-Standardabfragen zu stellen. Sie können die Pipeline auch für die Wiederverwendung eines vorhandenen Amazon S3-Buckets konfigurieren oder einen neuen Bucket erstellen.

Die Pipeline für die Suche und Analyse von Ereignissen

Das folgende Diagramm zeigt die Pipeline für die Suche und Analyse von Ereignissen. Sie können für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen, um die Ereignisse in Ihrem System in einer Suchdomäne zu indizieren und anschließend zu analysieren.

Diese Pipeline besteht aus einer Amazon SQS-Warteschlange, die die vom Amazon SNSThema bereitgestellten Ereignisse puffert, einer -AWS LambdaFunktion, die Ereignisse aus der Warteschlange abfragt und sie in einen Amazon-Data-Firehose-Stream überträgt, einer Amazon- OpenSearch Service-Domain, die die vom Firehose-Stream geladenen Ereignisse indiziert, und einem Amazon S3-Bucket, in dem die Ereignisse für unzustellbare Nachrichten gespeichert werden, die nicht in der Suchdomain indiziert werden können.

Um Ihren Firehose-Stream in Bezug auf die Pufferung, Transformierung und Komprimierung von Ereignissen zu optimieren, können Sie diese Pipeline konfigurieren.

Sie können auch konfigurieren, ob die Pipeline eine vorhandene OpenSearch Domain in Ihrem wiederverwenden AWS-Konto oder eine neue für Sie erstellen soll. Während der Indizierung von Ereignissen in der Suchdomäne können Sie mit Kibana Analysen für Ihre Ereignisse ausführen und visuelle Dashboards in Echtzeit aktualisieren.

Die Pipeline für das Replay von Events

Das folgende Diagramm zeigt die Pipeline für das Replay von Events. Um die Ereignisse aufzuzeichnen, die von Ihrem System in den letzten 14 Tagen verarbeitet wurden (beispielsweise für den Fall, dass Ihre Plattform nach einem Fehler wiederhergestellt werden muss), können Sie für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen und anschließend die Ereignisse neu verarbeiten.

Diese Pipeline besteht aus einer Amazon SQS-Warteschlange, die die vom Amazon SNS-Thema bereitgestellten Ereignisse puffert, und einer AWS Lambda-Funktion, die Abrufe für diese Ereignisse aus der Warteschlange ausführt und sie erneut in die reguläre Pipeline für die Ereignisverarbeitung schiebt, die Ihr Thema abonniert hat.

Anmerkung

Standardmäßig ist die Funktion für das erneute Abspielen deaktiviert und schiebt Ihre Ereignisse nicht erneut in die reguläre Pipeline. Wenn Sie Ereignisse erneut verarbeiten müssen, müssen Sie die Amazon-SQS-Warteschlange für das erneute Abspielen als Ereignisquelle für die AWS Lambda-Funktion für das erneute Abspielen aktivieren.

AWS Event Fork Pipelines bereitstellen

Die AWSEvent Fork Pipelines Suite (verfügbar unter Show apps that create custom IAM roles or resource policies (Apps anzeigen, die angepasste IAM-Rollen oder Ressourcenrichtlinien erstellen)) ist als Gruppe öffentlicher Anwendungen in AWS Serverless Application Repositoryverfügbar. Sie können sie von hier über die AWS Lambda-Konsole bereitstellen und manuell testen. Informationen zum Bereitstellen von Pipelines über die AWS Lambda-Konsole finden Sie unter Abonnieren eine AWS Event Fork Pipeline für ein Amazon SNS-Thema.

In einem Produktionsszenario empfehlen wir die Einbettung von AWS Event Fork Pipelines innerhalb der allgemeinen AWSSAM-Vorlage Ihrer Anwendung. Sie können dies mittels der Funktion „nested-application“ ausführen, indem Sie die Ressource AWS::Serverless::Application Ihrer AWSSAM-Vorlage hinzufügen, wobei sie auf die AWS SAR-ApplicationId und die SemanticVersion der verschachtelten Anwendung verweisen.

Sie können beispielsweise die Event Storage and Backup Pipeline für die Speicherung und Sicherung von Ereignissen als eine verschachtelte Anwendung verwenden, indem Sie den folgenden YAML-Codeausschnitt zum Abschnitt Resources Ihrer AWS SAM-Vorlage hinzufügen.

Backup: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline SemanticVersion: 1.0.0 Parameters: #The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket. TopicArn: !Ref MySNSTopic

Wenn Sie Parameterwerte angeben, können Sie intrinsische AWS CloudFormation-Funktionen verwenden, um auf andere Ressourcen in Ihrer Vorlage zu verweisen. Im oben gezeigten YAML-Codeauszug verweist der Parameter TopicArnbeispielsweise auf die AWS::SNS::Topic-Ressourcen-MySNSTopic, die an anderer Stelle in der AWS SAM-Vorlage definiert wird. Weitere Informationen finden Sie in der Referenz für intrinsische Funktion im AWS CloudFormation-Benutzerhandbuch.

Anmerkung

Die AWS Lambda-Konsolenseite für Ihre AWS-SAR-Anwendung enthält die Schaltfläche Copy as SAM Resource (Als SAM-Ressource kopieren), die den für die Verschachtelung einer AWS-SAR-App notwendigen YAML-Code in die Zwischenablage kopiert.