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.
Abonnieren Sie eine Lambda-Funktion für Ereignisbenachrichtigungen von S3-Buckets in verschiedenen AWS-Regionen
Erstellt von Suresh Konathala, Andrew Preston und Arindom Sarkar
Umwelt: Produktion | Technologien: Analytik | AWS-Dienste: AWS Lambda; Amazon S3; Amazon SNS; Amazon SQS |
Übersicht
Amazon Simple Storage Service (Amazon S3) Event Notifications veröffentlicht Benachrichtigungen für bestimmte Ereignisse in Ihrem S3-Bucket (z. B. Ereignisse, die durch Objekte erstellt wurden, Objekte entfernt oder Objekte wiederhergestellt). Sie können eine AWS Lambda Lambda-Funktion verwenden, um diese Benachrichtigungen gemäß den Anforderungen Ihrer Anwendung zu verarbeiten. Die Lambda-Funktion kann jedoch Benachrichtigungen von S3-Buckets, die in verschiedenen AWS-Regionen gehostet werden, nicht direkt abonnieren.
Der Ansatz dieses Musters stellt ein Fanout-Szenario zur Verarbeitung von Amazon S3 S3-Benachrichtigungen aus regionsübergreifenden S3-Buckets mithilfe eines Amazon Simple Notification Service (Amazon SNS) -Themas für jede Region bereit. Diese regionalen SNS-Themen senden die Amazon S3 S3-Ereignisbenachrichtigungen an eine Amazon Simple Queue Service (Amazon SQS) -Warteschlange in einer zentralen Region, die auch Ihre Lambda-Funktion enthält. Die Lambda-Funktion abonniert diese SQS-Warteschlange und verarbeitet die Ereignisbenachrichtigungen gemäß den Anforderungen Ihres Unternehmens.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
Bestehende S3-Buckets in mehreren Regionen, einschließlich einer zentralen Region zum Hosten der Amazon SQS SQS-Warteschlange und der Lambda-Funktion.
AWS-Befehlszeilenschnittstelle (AWS CLI), installiert und konfiguriert. Weitere Informationen dazu finden Sie unter Installation, Aktualisierung und Deinstallation der AWS-CLI in der AWS-CLI-Dokumentation.
Vertrautheit mit dem Fanout-Szenario in Amazon SNS. Weitere Informationen dazu finden Sie unter Allgemeine Amazon SNS SNS-Szenarien in der Amazon SNS SNS-Dokumentation.
Architektur
Das folgende Diagramm zeigt die Architektur für den Ansatz dieses Musters.
Das Diagramm zeigt den folgenden Workflow:
Amazon S3 sendet Ereignisbenachrichtigungen über S3-Buckets (z. B. erstelltes, entferntes Objekt oder wiederhergestelltes Objekt) an ein SNS-Thema in derselben Region.
Das SNS-Thema veröffentlicht das Ereignis in einer SQS-Warteschlange in der Zentralregion.
Die SQS-Warteschlange ist als Ereignisquelle für Ihre Lambda-Funktion konfiguriert und puffert die Ereignisnachrichten für die Lambda-Funktion.
Die Lambda-Funktion fragt die SQS-Warteschlange nach Nachrichten ab und verarbeitet die Amazon S3 S3-Ereignisbenachrichtigungen gemäß den Anforderungen Ihrer Anwendung.
Technologie-Stack
Lambda
Amazon SNS
Amazon SQS
Amazon S3
Tools
AWS CLI — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein Open-Source-Tool für die Interaktion mit AWS-Services über Befehle in Ihrer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie AWS-CLI-Befehle, die Funktionen implementieren, die denen entsprechen, die von der browserbasierten AWS-Managementkonsole bereitgestellt werden, von einer Befehlszeile aus ausführen.
AWS CloudFormation — AWS CloudFormation hilft Ihnen dabei, Ihre AWS-Ressourcen zu modellieren und einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus zu verwalten. Sie können eine Vorlage verwenden, um Ihre Ressourcen und ihre Abhängigkeiten zu beschreiben und sie zusammen als Stack zu starten und zu konfigurieren, anstatt Ressourcen einzeln zu verwalten. Sie können Stacks für mehrere AWS-Konten und AWS-Regionen verwalten und bereitstellen.
AWS Lambda — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.
Amazon SNS — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Abonnenten erhalten die veröffentlichten Mitteilungen zu den Themen, die sie abonniert haben. Alle Abonnenten eines Themas erhalten dieselben Mitteilungen.
Amazon SQS — Amazon Simple Queue Service (Amazon SQS) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können. Amazon SQS unterstützt sowohl Standard- als auch FIFO-Warteschlangen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine SQS-Warteschlange mit einem Lambda-Trigger. | Melden Sie sich bei der AWS-Managementkonsole an und verwenden Sie die Anweisungen aus dem Tutorial Using Lambda with Amazon SQS in der AWS Lambda-Dokumentation, um die folgenden Ressourcen in Ihrer zentralen Region zu erstellen:
Hinweis: Stellen Sie sicher, dass Sie die SQS-Warteschlange als Ereignisquelle für Ihre Lambda-Funktion konfigurieren. | AWS DevOps, Cloud-Architekt |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie ein SNS-Thema, um Amazon S3 S3-Ereignisbenachrichtigungen zu erhalten. | Erstellen Sie ein SNS-Thema in einer Region, von der Sie Amazon S3 S3-Ereignisbenachrichtigungen erhalten möchten. Weitere Informationen dazu finden Sie unter dem Thema Creating an SNS in der Amazon SNS SNS-Dokumentation. Wichtig: Stellen Sie sicher, dass Sie den Amazon-Ressourcennamen (ARN) Ihres SNS-Themas aufzeichnen. | AWS DevOps, Cloud-Architekt |
Abonnieren Sie das SNS-Thema für die zentrale SQS-Warteschlange. | Abonnieren Sie Ihr SNS-Thema für die SQS-Warteschlange, die von Ihrer zentralen Region gehostet wird. Weitere Informationen dazu finden Sie unter dem Thema Abonnieren eines SNS in der Amazon SNS SNS-Dokumentation. | AWS DevOps, Cloud-Architekt |
Aktualisieren Sie die Zugriffsrichtlinie des SNS-Themas. |
| AWS DevOps, Cloud-Architekt |
Richten Sie Benachrichtigungen für jeden S3-Bucket in der Region ein. | Richten Sie Ereignisbenachrichtigungen für jeden S3-Bucket in der Region ein. Weitere Informationen dazu finden Sie unter Aktivieren und Konfigurieren von Ereignisbenachrichtigungen mithilfe der Amazon S3 S3-Konsole in der Amazon S3 S3-Dokumentation. Hinweis: Wählen Sie im Abschnitt Ziel das SNS-Thema aus und geben Sie den ARN des SNS-Themas an, das Sie zuvor erstellt haben. | AWS DevOps, Cloud-Architekt |
Wiederholen Sie dieses Epos für alle erforderlichen Regionen. | Wichtig: Wiederholen Sie die Aufgaben in diesem Epos für jede Region, aus der Sie Amazon S3 S3-Ereignisbenachrichtigungen erhalten möchten, einschließlich Ihrer zentralen Region. | AWS DevOps, Cloud-Architekt |
Zugehörige Ressourcen
Konfiguration einer Zugriffsrichtlinie (Amazon SQS SQS-Dokumentation)
Konfiguration einer SQS-Warteschlange als Ereignisquelle (AWS Lambda Lambda-Dokumentation)
Konfiguration einer SQS-Warteschlange zur Initiierung einer Lambda-Funktion (Amazon SQS SQS-Dokumentation)
AWS::Lambda::Function Ressource ( CloudFormation AWS-Dokumentation)