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 Regionen AWS
Erstellt von Suresh Konathala, Andrew Preston und Arindom Sarkar
Umwelt: Produktion | Technologien: Analytik | AWSDienste: AWS Lambda; Amazon S3; AmazonSNS; 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-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 verwendet ein Fanout-Szenario zur Verarbeitung von Amazon S3 S3-Benachrichtigungen aus regionsübergreifenden S3-Buckets mithilfe eines Amazon Simple Notification Service (AmazonSNS) -Themas für jede Region. Diese regionalen SNS Themen senden die Amazon S3 S3-Ereignisbenachrichtigungen an eine Amazon Simple Queue Service (AmazonSQS) -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 SQS Amazon-Warteschlange und der Lambda-Funktion.
AWSBefehlszeilenschnittstelle (AWSCLI), installiert und konfiguriert. Weitere Informationen dazu finden Sie AWS CLI in der AWS CLI Dokumentation unter Installation, Aktualisierung und Deinstallation von.
Vertrautheit mit dem Fanout-Szenario bei Amazon. SNS Weitere Informationen dazu finden Sie in der SNSAmazon-Dokumentation unter Allgemeine SNS Amazon-Szenarien.
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
AWSCLI— Die AWS Befehlszeilenschnittstelle (AWSCLI) ist ein Open-Source-Tool für die Interaktion mit AWS Diensten über Befehle in Ihrer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie AWS CLI Befehle, die Funktionen implementieren, die denen der browserbasierten AWS Managementkonsole entsprechen, 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 Stapel 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.
AWSLambda — AWS Lambda ist ein Rechendienst, 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 (AmazonSNS) 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 (AmazonSQS) 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 Management Console 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 in der SNS Amazon-Dokumentation unter SNSThema erstellen. Wichtig: Stellen Sie sicher, dass Sie den Amazon-Ressourcennamen Ihres SNS Themas (ARN) notieren. | AWS DevOps, Cloud-Architekt |
Abonnieren Sie das SNS Thema in der zentralen SQS Warteschlange. | Abonnieren Sie Ihr SNS Thema in der SQS Warteschlange, die von Ihrer zentralen Region bereitgestellt wird. Weitere Informationen dazu finden Sie in der SNS Amazon-Dokumentation unter Ein SNS Thema abonnieren. | 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 SNS das Thema aus und geben Sie das SNS Thema ARN an, das Sie zuvor erstellt haben. | AWS DevOps, Cloud-Architekt |
Wiederhole 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 (SQSAmazon-Dokumentation)
Konfiguration einer SQS Warteschlange als Ereignisquelle (AWSLambda-Dokumentation)
Konfiguration einer SQS Warteschlange zur Initiierung einer Lambda-Funktion (SQSAmazon-Dokumentation)
AWS: :Lambda: :Funktionsressource (Dokumentation) AWS CloudFormation