Ereignis-Benachrichtigungstypen und -ziele
Amazon S3 unterstützt verschiedene Arten von Ereignis-Benachrichtigungen und Ziele, wo die Benachrichtigungen veröffentlicht werden können. Sie können den Ereignistyp und das Ziel angeben, wenn Sie Ihre Ereignis-Benachrichtigungen konfigurieren. Für jede Ereignisbenachrichtigung kann nur ein Ziel angegeben werden. Amazon-S3-Ereignisbenachrichtigungen senden für jede Benachrichtigungsmeldung einen Ereigniseintrag.
Themen
Unterstützte Ereignisziele
Amazon S3 kann Ereignis-Benachrichtigungsmeldungen an die folgenden Ziele senden.
-
Amazon Simple Notification Service (Amazon SNS)-Themen
-
Amazon Simple Queue Service (Amazon SQS)-Warteschlangen
-
AWS Lambda
-
Amazon EventBridge
Für jede Ereignisbenachrichtigung kann jedoch nur ein Zieltyp angegeben werden.
Anmerkung
Sie müssen Amazon S3 die Berechtigungen erteilen, Meldungen in einem Amazon SNS-Thema oder einer Amazon SQS-Warteschlange zu veröffentlichen. Außerdem müssen Sie Amazon S3 die Berechtigung erteilen, eine AWS Lambda-Lambda-Funktion für Sie aufzurufen. Anweisungen zum Erteilen dieser Berechtigungen finden Sie unter Erteilen von Berechtigungen zur Veröffentlichung von Ereignis-Benachrichtigungsmeldungen an einem Ziel.
Amazon SNS-Thema
Amazon SNS ist ein flexibler, vollständig verwalteter Push-Messaging-Service. Sie können diesen Dienst verwenden, um Nachrichten an mobile Geräte oder verteilte Services zu senden. Mit SNS , können Sie eine Nachricht einmal veröffentlichen und ein- oder mehrmals übermitteln. Derzeit ist nur ,Standard-SNS als S3-Ereignis-Benachrichtigungsziel zulässig, während SNS FIFO nicht zulässig ist.
Amazon SNS koordiniert und verwaltet das Senden und Zustellen von Nachrichten an abonnierte Endpunkte oder Clients. Sie können mit der Amazon SNS-Konsole ein Amazon SNS-Thema erstellen, an das Ihre Benachrichtigungen gesendet werden können.
Das Thema muss sich in der gleichen AWS-Region wie Ihr Amazon-S3-Bucket befinden. Anweisungen zum Erstellen eines Amazon-SNS-Themas finden Sie unter Erste Schritte mit Amazon SNS im Entwicklerhandbuch zu Amazon Simple Notification Service und in den Häufig gestellten Fragen zu Amazon SNS
Damit Sie das Amazon SNS-Thema nutzen können, das Sie als Ereignis-Benachrichtigungsziel erstellen, brauchen Sie Folgendes:
-
Den Amazon-Ressourcennamen (ARN) für das Amazon SNS-Thema
-
Ein gültiges Amazon-SNS-Themen-Abonnement. Damit werden Themenabonnenten benachrichtigt, wenn eine Nachricht zu Ihrem Amazon-SNS-Thema veröffentlicht wird.
Amazon SQS-Warteschlange
Amazon SQS bietet zuverlässige und skalierbare gehostete Warteschlangen zum Speichern von Nachrichten, die zwischen den Computern gesendet werden. Mit Amazon SQS können Sie beliebige Datenvolumen übertragen, ohne dass andere Services stets verfügbar sein müssen. Sie können mit der Amazon SQS-Konsole eine Amazon SQS-Warteschlange erstellen, an die Ihre Benachrichtigungen gesendet werden können.
Die Amazon SQS Warteschlange muss sich in derselben AWS-Region wie Ihr Amazon-S3-Bucket befinden. Anweisungen zum Erstellen einer Amazon-SQS-Warteschlange finden Sie unter Was ist Amazon Simple Queue Service und Erste Schritte mit Amazon SQS im Entwicklerhandbuch für Amazon Simple Queue Service.
Damit Sie die Amazon SQS-Warteschlange als Ereignis-Benachrichtigungsziel nutzen können, brauchen Sie Folgendes:
-
Der Amazon-Ressourcennamen (ARN) für die Amazon-SQS-Warteschlange
Anmerkung
FIFO-Warteschlangen (First-In-First-Out) von Amazon Simple Queue Service werden nicht als Ziel für Amazon-S3-Ereignisbenachrichtigungen unterstützt. Zum Senden einer Benachrichtigung für ein Amazon-S3-Ereignis an eine Amazon-SQS-FIFO-Warteschlange können Sie Amazon EventBridge verwenden. Weitere Informationen finden Sie unter Aktivieren von Amazon EventBridge.
Lambda-Funktion
Sie können AWS Lambda verwenden, um andere AWS-Dienste mit benutzerdefinierter Logik zu erweitern oder ein eigenes Backend zu erstellen, das mit AWS Skalierung, Leistung und Sicherheit arbeitet. Mit Lambda können Sie diskrete ereignisabhängige Anwendungen erstellen, die nur ausgeführt werden, wenn sie benötigt werden. Sie können damit auch diese Anwendungen automatisch von ein paar Anfragen pro Tag auf Tausende pro Sekunde skalieren.
Lambda kann benutzerdefinierten Code in Reaktion auf Amazon-S3-Bucket-Ereignisse ausführen. Sie laden Ihren benutzerdefinierten Code auf Lambda hoch und erstellen eine sogenannte Lambda-Funktion. Wenn Amazon S3 ein Ereignis eines bestimmten Typs erkennt, kann es das Ereignis in AWS Lambda veröffentlichen und Ihre Funktion in Lambda aufrufen. Lambda führt als Antwort Ihre Funktion aus. Ein Ereignistyp, den er möglicherweise erkennt, ist beispielsweise ein objekterstelltes Ereignis.
Sie können die AWS Lambda-Lambda-Konsole verwenden, um eine Lambda-Funktion zu erstellen, die die AWS-Infrastruktur verwendet, um den Code in Ihrem Namen auszuführen. Die Lambda-Funktion muss sich in derselben Region wie Ihr S3-Bucket befinden. Sie müssen auch den Namen oder den ARN einer Lambda-Funktion haben, um die Lambda-Funktion als Ziel für Ereignis-Benachrichtigungen einzurichten.
Warnung
Wenn Ihre Benachrichtigung in den selben Bucket schreibt, der die Benachrichtigung auslöst, kann dies zu einer Ausführungsschleife führen. Wenn der Bucket z. B. eine Lambda-Funktion immer dann auslöst, wenn ein Objekt hochgeladen wird, und die Funktion ein Objekt in den Bucket hochlädt, löst sich die Funktion indirekt selbst aus. Um dies zu vermeiden, verwenden Sie zwei Buckets oder konfigurieren Sie den Auslöser so, dass er nur für einen Präfix gilt, der für eingehende Objekte verwendet wird.
Weitere Informationen und ein Beispiel für die Verwendung von Amazon-S3-Benachrichtigungen mit AWS Lambda finden Sie unter Using AWS Lambda with Amazon S3 im AWS Lambda-Entwicklerhandbuch.
Amazon EventBridge
Amazon EventBridge ist ein Serverless-Ereignisbus, der Ereignisse von AWS-Services empfängt. Sie können Regeln einrichten, um Ereignisse abzugleichen und sie an Ziele wie einen AWS-Service oder einen HTTP-Endpunkt zu übermitteln. Weitere Informationen finden Sie unter Was ist EventBridge? im Amazon-EventBridge-Benutzerhandbuch.
Im Gegensatz zu anderen Zielen können Sie Ereignisse aktivieren oder deaktivieren, die für einen Bucket an EventBridge gesendet werden sollen. Wenn Sie die Bereitstellung aktivieren, werden alle Ereignisse an EventBridge gesendet. Darüber hinaus können Sie EventBridge-Regeln verwenden, um Ereignisse an zusätzliche Ziele weiterzuleiten.
Unterstützte Ereignistypen für SQS, SNS und Lambda
Amazon S3 kann Ereignisse der folgenden Typen veröffentlichen. Sie spezifizieren diese Ereignistypen in der Benachrichtigungskonfiguration.
Ereignistypen | Beschreibung |
---|---|
|
Wenn eine Benachrichtigung aktiviert ist, veröffentlicht Amazon S3 eine Testbenachrichtigung. Damit soll sichergestellt werden, dass das Thema vorhanden ist und dass der Bucket-Eigentümer über die Berechtigung verfügt, das angegebene Thema zu veröffentlichen. Wenn das Aktivieren der Benachrichtigung fehlschlägt, erhalten Sie keine Testbenachrichtigung. |
|
Amazon-S3-API-Operationen wie
|
|
Durch Verwendung der Sie können eine Benachrichtigung anfordern, wenn ein Objekt gelöscht wird, oder wenn ein versionsfähiges Objekt permanent gelöscht wird. Dazu wird der Ereignistyp Diese Ereignisbenachrichtigungen warnen Sie nicht vor automatischen Löschungen aufgrund von Lebenszykluskonfigurationen oder fehlgeschlagenen Operationen. |
|
Durch die Verwendung der Der |
s3:ReducedRedundancyLostObject |
Sie erhalten dieses Benachrichtigungsereignis, wenn Amazon S3 erkennt, dass ein Objekt der RRS-Speicherklasse verloren geht. |
|
Mithilfe der
|
|
Durch die Verwendung der Der Ereignistyp |
s3:LifecycleTransition |
Sie erhalten dieses Benachrichtigungsereignis, wenn ein Objekt von einer S3-Lebenszykluskonfiguration in eine andere Amazon-S3-Speicherklasse überführt wird. |
s3:IntelligentTiering |
Sie erhalten dieses Benachrichtigungsereignis, wenn ein Objekt innerhalb der Speicherklasse S3 Intelligent-Tiering in die Stufe Archive Access oder Deep Archive Access verschoben wird. |
|
Durch die Verwendung der Der |
s3:ObjectAcl:Put |
Sie erhalten dieses Benachrichtigungsereignis, wenn eine ACL für ein Objekt PUT ist oder wenn eine vorhandene ACL geändert wird. Ein Ereignis wird nicht generiert, wenn eine Anforderung keine Änderung an der ACL eines Objekts zur Folge hat. |
Unterstützte Ereignistypen für Amazon EventBridge
Eine Liste der Ereignistypen, die Amazon S3 an Amazon EventBridge senden wird, finden Sie unter Verwenden von EventBridge.
Ereignisreihenfolge und doppelte Ereignisse
Amazon S3 Event Notifications ist so konzipiert, dass Benachrichtigungen mindestens einmal zugestellt werden. Es kann jedoch nicht garantiert werden, dass die Benachrichtigungen in der Reihenfolge ankommen, in der die Ereignisse aufgetreten sind. In seltenen Fällen kann der Wiederholungsmechanismus von Amazon S3 zu doppelten S3-Ereignisbenachrichtigungen für dasselbe Objektereignis führen. Weitere Informationen zum Umgang mit doppelten oder nicht in der richtigen Reihenfolge befindlichen Ereignissen finden Sie unter Manage event ordering and duplicate events with Amazon S3 Event Notifications