Configuration des notifications d'événement à l'aide du filtrage des noms de clé d'objet - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des notifications d'événement à l'aide du filtrage des noms de clé d'objet

Lorsque vous configurez une notification d'événements Amazon S3, vous devez spécifier quels types d'événements Amazon S3 pris en charge entraînent l'envoi de la notification par Amazon S3. Si un type d'événement que vous n'avez pas spécifié se produit dans votre compartiment S3, Amazon S3 n'envoie pas de notification.

Vous pouvez configurer les notifications pour qu'elles soient filtrées en fonction du préfixe et du suffixe du nom de clé des objets. Par exemple, vous pouvez définir une configuration afin de ne recevoir une notification uniquement lorsque des fichiers image comportant l'extension de nom de fichier « .jpg » sont ajoutés à un compartiment. Vous pouvez également avoir une configuration qui envoie une notification à un SNS sujet Amazon lorsqu'un objet avec le préfixe « images/ » est ajouté au compartiment, tandis que des notifications pour les objets avec un préfixe « logs/ » dans le même compartiment sont envoyées à une AWS Lambda fonction.

Note

Les filtres n'acceptent pas de caractère générique (« * ») comme préfixe ou suffixe. Si votre préfixe ou suffixe contient un espace, vous devez le remplacer par le caractère « + ». Si vous utilisez d'autres caractères spéciaux dans la valeur du préfixe ou du suffixe, vous devez les saisir au URLformat codé (codé en pourcentage). Pour obtenir la liste complète des caractères spéciaux qui doivent être convertis au format URL codé lorsqu'ils sont utilisés dans un préfixe ou un suffixe pour les notifications d'événements, voir. Caractères adaptés

Ces configurations de notifications en fonction du nom de clé d'objet peuvent être définies dans la console Amazon S3. Vous pouvez le faire en utilisant Amazon S3 APIs via le AWS SDKs ou REST APIs directement. Pour en savoir plus sur l'utilisation de l'interface utilisateur de la console pour définir une configuration de notification pour un compartiment, veuillez consulter Activation et configuration des notifications d'événements à l'aide de la console Amazon S3.

Amazon S3 stocke la configuration des notifications comme XML dans la sous-ressource de notification associée à un compartiment, comme décrit dansUtilisation d'Amazon SQSSNS, Amazon et Lambda. Vous utilisez la Filter XML structure pour définir les règles relatives au filtrage des notifications en fonction du préfixe ou du suffixe du nom de clé d'un objet. Pour plus d'informations sur la Filter XML structure, consultez la section Notification du PUT bucket dans le manuel Amazon Simple Storage Service API Reference.

Lorsque les configurations de notifications utilisent Filter, les règles de filtrage ne doivent pas contenir de préfixes qui se chevauchent, de suffixes qui se chevauchent, ni de préfixes et suffixes qui se chevauchent. Les sections suivantes contiennent des exemples de configurations de notification valides avec filtrage des noms de clé d'objet. Elles proposent également des exemples de configurations de notification non valides en raison du chevauchement des préfixes et des suffixes.

Exemples corrects de configurations des notifications avec filtrage par nom de clé d'objet

La configuration de notification suivante contient une configuration de file d'attente identifiant une SQS file d'attente Amazon dans laquelle Amazon S3 doit publier des événements de s3:ObjectCreated:Put ce type. Les événements sont publiés chaque fois qu'un objet comportant un préfixe images/ et un jpg suffixe appartient PUT à un bucket.

<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>

La configuration de notifications ci-dessous comporte plusieurs préfixes qui ne se chevauchent pas. La configuration définit que les notifications relatives PUT aux demandes du images/ dossier sont envoyées à la file d'attente A, tandis que les notifications relatives aux PUT demandes du logs/ dossier sont envoyées à la file d'attente B.

<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>

La configuration de notifications ci-dessous comporte plusieurs suffixes qui ne se chevauchent pas. La configuration indique que toutes les images .jpg nouvellement ajoutées au compartiment sont traitées par la fonction Lambda cloud-function-A, et que toutes les images .png nouvellement ajoutées sont traitées par la fonction cloud-function-B. Les suffixes .png et .jpg ne se chevauchent pas, même si leur dernière lettre est identique. Si une chaîne donnée peut se terminer par deux suffixes, on considère que les deux suffixes se chevauchent. Une chaîne ne pouvant se terminer par .png et .jpg, les suffixes de cet exemple de configuration ne se chevauchent pas.

<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>

Lorsque vos configurations de notifications utilisent Filter, les règles de filtrage associées à des types d'événements identiques ne doivent pas contenir de préfixes qui se chevauchent. Ils ne peuvent le faire que si les préfixes qui se chevauchent sont utilisés avec des suffixes qui ne se chevauchent pas. Dans l'exemple de configuration ci-dessous, nous voyons que des objets créés avec un préfixe commun, mais dont les suffixes ne se chevauchent pas, peuvent être envoyés vers différentes destinations.

<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>

Exemples de configurations des notifications avec chevauchement incorrect des préfixes et des suffixes

Lorsque vos configurations de notifications utilisent Filter, dans la majorité des cas, les règles de filtrage associées à des types d'événements identiques ne doivent pas contenir de préfixes qui se chevauchent, de suffixes qui se chevauchent, ni de combinaisons de préfixes et de suffixes qui se chevauchent. Elles peuvent toutefois comporter des préfixes qui se chevauchent, à condition que les suffixes ne se chevauchent pas. Pour obtenir un exemple, consultez Configuration des notifications d'événement à l'aide du filtrage des noms de clé d'objet.

En revanche, il est possible d'utiliser des filtres par nom de clé d'objet qui se chevauchent lorsque les types d'événements sont différents. Par exemple, vous pouvez créer une configuration de notifications qui utilise le préfixe image/ pour le type d'événement ObjectCreated:Put et le préfixe image/ pour le type d'événement ObjectRemoved:*.

Vous obtenez un message d'erreur si vous essayez d'enregistrer une configuration de notification dont les filtres de noms se chevauchent non valides pour les mêmes types d'événements lorsque vous utilisez la console Amazon S3 ouAPI. Cette section présente des exemples de configurations des notifications incorrectes, en raison du chevauchement des filtres de nom.

Toute règle de configuration des notifications existante est supposée comporter un préfixe et un suffixe par défaut qui correspondent respectivement à n'importe quel autre préfixe et suffixe. La configuration des notifications ci-dessous est incorrecte, car elle comporte des préfixes qui se chevauchent. Plus précisément, le préfixe racine chevauche n'importe quel autre préfixe. Cela est également vrai si, dans cet exemple, vous utilisiez un suffixe en lieu et place d'un préfixe. Le suffixe racine chevaucherait également n'importe quel autre suffixe.

<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>

La configuration des notifications ci-dessous est incorrecte, car elle comporte des suffixes qui se chevauchent. Si une chaîne donnée peut se terminer par deux suffixes, on considère que les deux suffixes se chevauchent. Une chaîne peut se terminer par jpg et pg. Ainsi, les suffixes se chevauchent. Il en va de même pour les préfixes. Si une chaîne donnée peut commencer par deux préfixes, on considère que les deux préfixes se chevauchent.

<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

La configuration des notifications ci-dessous est incorrecte, car elle comporte des préfixes et des suffixes qui se chevauchent.

<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>