Konfigurieren von Ereignis-Benachrichtigungen mithilfe der Namensfilterung - Amazon Simple Storage 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.

Konfigurieren von Ereignis-Benachrichtigungen mithilfe der Namensfilterung

Bei der Konfiguration einer Amazon-S3-Ereignis-Benachrichtigung müssen Sie angeben, welche unterstützten Amazon-S3-Ereignistypen das Senden der Benachrichtigung durch Amazon S3 veranlassen. Wenn ein Ereignistyp, den Sie nicht angegeben haben, in Ihrem S3-Bucket auftritt, sendet Amazon S3 die Benachrichtigung nicht.

Sie können Benachrichtigungen konfigurieren, die nach dem Präfix und dem Suffix des Objektschlüsselnamens gefiltert werden. Sie können beispielsweise eine Konfiguration so einrichten, dass Sie nur eine Benachrichtigung erhalten, wenn einem Bucket Bilddateien mit der Erweiterung „.jpg“ hinzugefügt werden. Oder Sie können eine Konfiguration einrichten, die eine Benachrichtigung an ein Amazon SNS SNS-Thema sendet, wenn ein Objekt mit dem Präfix images/ "" zum Bucket hinzugefügt wird, und gleichzeitig Benachrichtigungen für Objekte mit dem Präfix "logs/" im selben Bucket an eine AWS Lambda Funktion gesendet werden.

Anmerkung

Ein Platzhalterzeichen (*) kann in Filtern nicht als Präfix oder Suffix verwendet werden. Wenn Ihr Präfix oder Suffix ein Leerzeichen enthält, müssen Sie es durch das Zeichen „+“ ersetzen. Wenn Sie andere Sonderzeichen in dem Wert des Präfixes oder Suffixes verwenden, müssen Sie diese im URL-kodierten (Prozent-kodierten) Format angeben. Eine vollständige Liste der Sonderzeichen, die in ein URL-kodiertes Format umgewandelt werden müssen, wenn sie in einem Präfix oder Suffix für Ereignisbenachrichtigungen verwendet werden, finden Sie unter Sichere Zeichen.

Sie können Benachrichtigungskonfigurationen einrichten, die die Filterung von Objektschlüsselnamen in der Amazon-S3-Konsole verwenden. Sie können dies tun, indem Sie Amazon S3 S3-APIs direkt über die AWS SDKs oder die REST-APIs verwenden. Informationen zur Verwendung der Konsolen-Benutzeroberfläche zum Festlegen einer Benachrichtigungskonfiguration für einen Bucket finden Sie unter Aktivieren und Konfigurieren von Ereignis-Benachrichtigungen mit der Amazon-S3-Konsole.

Amazon S3 speichert die Benachrichtigungskonfiguration als XML in der einem Bucket zugeordneten notification-Subressource, wie in Verwenden von Amazon SQS, Amazon SNS und Lambda beschrieben. Sie können die Filter XML-Struktur verwenden, um Regeln für die nach dem Präfix oder dem Suffix eines Objektschlüsselnamens gefilterten Benachrichtigungen zu definieren. Weitere Informationen zu der Filter-XML-Struktur finden Sie unter PUT-Bucket-Benachrichtigung in der API-Referenz zu Amazon Simple Storage Service.

Benachrichtigungskonfigurationen, die Filter verwenden, können keine Filterregeln mit überlappenden Präfixen, überlappenden Suffixen oder Präfix- und Suffix-Überlappung definieren. Die folgenden Abschnitte enthalten Beispiele für gültige Benachrichtigungskonfigurationen mit Objektschlüssel-Namensfilterung. Sie enthalten auch Beispiele für Benachrichtigungskonfigurationen, die wegen der Überlappung von Präfix und Suffix ungültig sind.

Beispiele für gültige Benachrichtigungskonfigurationen mit Filterung nach dem Objektschlüsselnamen

Die folgende Benachrichtigungskonfiguration enthält eine Warteschlangekonfiguration, die eine Amazon SQS-Warteschlange für Amazon S3 identifiziert, in der Ereignisse des Typs s3:ObjectCreated:Put gespeichert werden sollen. Die Ereignisse werden veröffentlicht, wenn ein Objekt mit dem Präfix images/ und dem Suffix jpg mit PUT in einen Bucket geschrieben wird.

<NotificationConfiguration> <QueueConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images/</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:s3notificationqueue</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> </NotificationConfiguration>

Die folgende Benachrichtigungskonfigurationen hat mehrere nicht überlappende Präfixe. Die Konfiguration definiert, dass Benachrichtigungen für PUT-Anforderungen im Ordner images/ in queue-A geschrieben werden, während Benachrichtigungen für PUT-Anforderungen im Ordner logs/ in queue-B geschrieben werden.

<NotificationConfiguration> <QueueConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images/</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-A</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> <QueueConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>logs/</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-B</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> </NotificationConfiguration>

Die folgende Benachrichtigungskonfigurationen hat mehrere nicht überlappende Suffixe. Die Konfiguration definiert, dass alle dem Bucket neu hinzugefügten .jpg-Bilder über Lambda cloud-function-A und alle neu hinzugefügten .png-Bilder über cloud-function-B verarbeitet werden. Die .png und .jpg Suffixe überschneiden sich nicht, obwohl sie den gleichen Endbuchstaben haben. Wenn eine bestimmte Zeichenfolge mit beiden Suffixen enden kann, werden die beiden Suffixe als überlappend betrachtet. Da eine Zeichenfolge nicht mit .png und .jpg gleichzeitig enden kann, sind die Suffixe in der Beispielkonfiguration keine überlappenden Suffixe.

<NotificationConfiguration> <CloudFunctionConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>.jpg</Value> </FilterRule> </S3Key> </Filter> <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</CloudFunction> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> <CloudFunctionConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>.png</Value> </FilterRule> </S3Key> </Filter> <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</CloudFunction> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> </NotificationConfiguration>

Ihre Benachrichtigungskonfigurationen, die Filter verwenden, können keine Filterregeln mit überlappenden Präfixen für dieselben Ereignistypen definieren. Sie können dies nur tun, wenn die sich überlappenden Präfixe, die mit Suffixen verwendet werden, die sich nicht überlappen. Die folgende Beispielkonfiguration zeigt, wie Objekte, die mit einem gemeinsamen Präfix, aber nicht überlappenden Suffixen erstellt werden, an unterschiedliche Ziele geliefert werden können.

<NotificationConfiguration> <CloudFunctionConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>.jpg</Value> </FilterRule> </S3Key> </Filter> <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</CloudFunction> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> <CloudFunctionConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>.png</Value> </FilterRule> </S3Key> </Filter> <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</CloudFunction> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> </NotificationConfiguration>

Beispiele für Benachrichtigungskonfigurationen mit ungültiger Präfix- und Suffix-Überlappung

Ihre Benachrichtigungskonfigurationen, die Filter verwenden, können größtenteils keine Filterregeln mit überlappenden Präfixen, überlappenden Suffixen oder überlappenden Präfix- und Suffix-Kombinationen für dieselben Ereignistypen definieren. Überlappende Präfixe sind möglich, solange sich die Suffixe nicht überlappen. Ein Beispiel finden Sie unter Konfigurieren von Ereignis-Benachrichtigungen mithilfe der Namensfilterung.

Sie können überlappende Objektschlüsselnamensfilter mit unterschiedlichen Ereignistypen verwenden. Beispielsweise könnten sie eine Benachrichtigungskonfiguration erstellen, die das Präfix image/ für den Ereignistyp ObjectCreated:Put und das Präfix image/ für den Ereignistyp ObjectRemoved:* verwendet.

Sie erhalten einen Fehler, wenn Sie versuchen, eine Benachrichtigungskonfiguration mit ungültigen, sich überschneidenden Namensfiltern für dieselben Ereignistypen zu speichern, wenn Sie die Amazon-S3-Konsole oder -API verwenden. Dieser Abschnitt zeigt Beispiele für Benachrichtigungskonfigurationen, die aufgrund überlappender Namensfilter ungültig sind.

Es wird angenommen, dass eine vorhandene Benachrichtigungskonfigurationsregel ein Standardpräfix und -suffix hat, die mit allen anderen Präfixen bzw. Suffixen übereinstimmen. Die folgende Benachrichtigungskonfiguration ist ungültig, weil sie überlappende Präfixe hat. Insbesondere überlappt sich das Root-Präfix mit allen anderen Präfixen. Das gleiche gilt, wenn Sie in diesem Beispiel ein Suffix anstelle eines Präfixes verwenden. Das Root-Suffix überlappt mit allen anderen Suffixen.

<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-one</Topic> <Event>s3:ObjectCreated:*</Event> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-two</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration>

Die folgende Benachrichtigungskonfiguration ist ungültig, weil sie überlappende Suffixe hat. Wenn eine bestimmte Zeichenfolge mit beiden Suffixen enden kann, werden die beiden Suffixe als überlappend betrachtet. Eine Zeichenfolge kann mit jpg und pg enden. Die Suffixe überschneiden sich also. Gleiches gilt für Präfixe. Wenn eine bestimmte Zeichenfolge mit beiden Präfixen beginnen kann, werden die beiden Präfixe als überlappend betrachtet.

<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-two</Topic> <Event>s3:ObjectCreated:Put</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>pg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration

Die folgende Benachrichtigungskonfiguration ist ungültig, weil sie überlappende Präfixe und Suffixe hat.

<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-two</Topic> <Event>s3:ObjectCreated:Put</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration>