Ereignis-Benachrichtigungstypen und -ziele - Amazon Simple Storage Service

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.

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

s3:TestEvent

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.

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

Amazon-S3-API-Operationen wie PUT, POST und COPY können ein Objekt erstellen. Mit diesen Ereignistypen können Sie Benachrichtigungen aktivieren, wenn ein Objekt mit einer bestimmten API-Operation erstellt wird. Sie können auch den s3:ObjectCreated:* Ereignistyp verwenden, um eine Benachrichtigung unabhängig von der API anfordern, die zum Erstellen eines Objekts verwendet wurde.

s3:ObjectCreated:CompleteMultipartUpload enthält Objekte, die mithilfe von UploadPartCopy für Kopiervorgänge erstellt werden.

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

Durch Verwendung der ObjectRemoved-Ereignistypen können Sie eine Benachrichtigung aktivieren, wenn ein Objekt oder mehrere Objekte aus einem Bucket entfernt werden.

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 s3:ObjectRemoved:Delete verwendet. Alternativ können Sie eine Benachrichtigung anfordern, wenn eine Löschmarkierung für ein versioniertes Objekt mit s3:ObjectRemoved:DeleteMarkerCreated erstellt wird. Eine entsprechende Anleitung zum Löschen von versionierten Objekten finden Sie unter Löschen von Objekten aus einem versioning-fähigen Bucket. Sie können auch eine Wildcard s3:ObjectRemoved:* verwenden, um bei jedem Löschen eines Objekts eine Benachrichtigung anzufordern.

Diese Ereignisbenachrichtigungen warnen Sie nicht vor automatischen Löschungen aufgrund von Lebenszykluskonfigurationen oder fehlgeschlagenen Operationen.

s3:ObjectRestore:*

s3:ObjectRestore:Post

s3:ObjectRestore:Completed

s3:ObjectRestore:Delete

Durch die Verwendung der ObjectRestore-Ereignistypen können Sie beim Wiederherstellen von Objekten aus den Speicherklassen S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive sowie aus den Zugriffsebenen S3 Intelligent-Tiering Archive Access und S3 Intelligent-Tiering Deep Archive Access Benachrichtigungen zur Ereignisauslösung und zum Abschluss erhalten. Sie können auch Benachrichtigungen erhalten, wann die wiederhergestellte Kopie eines Objekts abläuft.

Der s3:ObjectRestore:Post-Ereignistyp informiert Sie über die Initiierung von Objektwiederherstellungen. Der s3:ObjectRestore:Completed-Ereignistyp informiert Sie über den Abschluss von Wiederherstellungen. Der s3:ObjectRestore:Delete-Ereignistyp benachrichtigt Sie, wenn die temporäre Kopie eines wiederhergestellten Objekts abläuft.

s3:ReducedRedundancyLostObject Sie erhalten dieses Benachrichtigungsereignis, wenn Amazon S3 erkennt, dass ein Objekt der RRS-Speicherklasse verloren geht.

s3:Replication:*

s3:Replication:OperationFailedReplication

s3:Replication:OperationMissedThreshold

s3:Replication:OperationReplicatedAfterThreshold

s3:Replication:OperationNotTracked

Mithilfe der Replication-Ereignistypen können Sie Benachrichtigungen für Replikationskonfigurationen erhalten, bei denen S3-Replikationsmetriken oder eine Begrenzung der S3-Replikationszeit (S3 RTC) aktiviert sind. Sie können den Fortschritt der Replikationsereignisse von Minute zu Minute überwachen, indem Sie ausstehende Bytes, ausstehende Vorgänge und die Replikationslatenz nachverfolgen. Informationen zu Replikationsmetriken finden Sie unter Überwachen der Replikation mit Metriken, Ereignisbenachrichtigungen und Status.

  • Der s3:Replication:OperationFailedReplication-Ereignistyp benachrichtigt Sie, wenn ein Objekt, das für die Replikation berechtigt war, nicht repliziert werden konnte.

  • Der s3:Replication:OperationMissedThreshold-Ereignistyp benachrichtigt Sie, wenn ein Objekt, das für die Replikation mit S3 RTC berechtigt war, den 15-minütigen Schwellenwert für die Replikation überschreitet.

  • Der s3:Replication:OperationReplicatedAfterThreshold-Ereignistyp benachrichtigt Sie, wenn ein Objekt, das für die Replikation mit S3 RTC in Frage kommt, nach dem 15-Minuten-Schwellenwert repliziert wird.

  • Der s3:Replication:OperationNotTracked-Ereignistyp benachrichtigt Sie, wenn ein Objekt, das für die Live-Replikation geeignet war (entweder Same-Region Replication [SRR] oder Cross-Region Replication [CRR]), nicht mehr von Replikationsmetriken verfolgt wird.

s3:LifecycleExpiration:*

s3:LifecycleExpiration:Delete

s3:LifecycleExpiration:DeleteMarkerCreated

Durch die Verwendung der LifecycleExpiration-Ereignistypen können Sie eine Benachrichtigung erhalten, wenn Amazon S3 ein Objekt basierend auf Ihrer S3-Lebenszyklus-Konfiguration löscht.

Der Ereignistyp s3:LifecycleExpiration:Delete benachrichtigt Sie, wenn ein Objekt in einem unversionierten Bucket gelöscht wird. Es benachrichtigt Sie auch, wenn eine Objektversion durch eine S3-Lebenszyklus-Konfiguration dauerhaft gelöscht wird. Der Ereignistyp s3:LifecycleExpiration:DeleteMarkerCreated benachrichtigt Sie, wenn S3 Lebenszyklus eine Löschmarke erstellt, wenn eine aktuelle Version eines Objekts im versionierten Bucket gelöscht wird.

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.

s3:ObjectTagging:*

s3:ObjectTagging:Put

s3:ObjectTagging:Delete

Durch die Verwendung der ObjectTagging-Ereignistypen können Sie die Benachrichtigung aktivieren, wenn ein Objekt-Tag zu einem Objekt hinzugefügt oder daraus gelöscht wird.

Der s3:ObjectTagging:Put-Ereignistyp benachrichtigt Sie, wenn ein Tag für ein Objekt PUT ist oder ein vorhandenes Tag aktualisiert wird. Der s3:ObjectTagging:Delete-Ereignistyp benachrichtigt Sie, wenn ein Tag aus einem Objekt entfernt wird.

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 im AWS Storage Blog.