Configurazione delle notifiche di eventi mediante il filtro dei nomi delle chiavi oggetto - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle notifiche di eventi mediante il filtro dei nomi delle chiavi oggetto

Quando configuri una notifica di eventi di Amazon S3, devi specificare quali tipi di eventi di Amazon S3 supportati fanno sì che Amazon S3 invii la notifica. Se nel bucket S3 si verifica un tipo di evento che non hai specificato, Amazon S3 non invia la notifica.

È possibile configurare le notifiche in modo da essere filtrate in base al prefisso e al suffisso del nome della chiave degli oggetti, Ad esempio, è possibile impostare una configurazione per ricevere una notifica solo quando i file di immagini con l'estensione del nome file ".jpg" vengono aggiunti a un bucket. In alternativa, puoi avere una configurazione che invia una notifica a un argomento di Amazon SNS quando un oggetto con il prefisso "images/" viene aggiunto al bucket, mentre le notifiche per gli oggetti con un prefisso "logs/" nello stesso bucket vengono inviate a una funzione. AWS Lambda

Nota

Un carattere jolly ("*") non può essere utilizzato nei filtri come prefisso o suffisso. Se il prefisso o il suffisso contiene uno spazio, è necessario sostituirlo con il carattere "+". Se utilizzi altri caratteri speciali nel valore del prefisso o del suffisso, dovrai immetterli nel formato con codifica URL (codificato in percentuale). Per un elenco completo dei caratteri speciali che devono essere convertiti in formato con codifica URL se utilizzati in un prefisso o in un suffisso per le notifiche di eventi, consulta Caratteri sicuri.

È possibile impostare configurazioni delle notifiche che utilizzano il filtraggio del nome della chiave oggetto nella console di Amazon S3. Puoi farlo utilizzando le API di Amazon S3 tramite gli AWS SDK o le API REST direttamente. Per informazioni sull'utilizzo dell'interfaccia utente della console per impostare una configurazione di notifica in un bucket, consulta la sezione Attivazione e configurazione delle notifiche di eventi tramite la console di Amazon S3.

Amazon S3 archivia la configurazione delle notifiche in formato XML nella risorsa secondaria notification associata a un bucket, come descritto in Utilizzo di Amazon SQS, Amazon SNS e Lambda. Si utilizza la struttura XML Filter per definire le regole per filtrare le notifiche in base al prefisso o al suffisso del nome della chiave oggetto. Per informazioni sulla struttura XML Filter, consulta notifica PUT Bucket nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

Le configurazioni delle notifiche che utilizzano Filter non possono definire regole di filtri con prefissi che si sovrappongono, suffissi che si sovrappongono o prefisso e suffisso che si sovrappongono. Nelle sezioni seguenti sono riportati esempi di configurazioni delle notifiche valide con il filtro del nome della chiave dell'oggetto. Contengono anche esempi di configurazioni delle notifiche non valide a causa della sovrapposizione di prefisso/suffisso.

Esempi di configurazioni di notifiche valide con il filtro del nome della chiave dell'oggetto

La configurazione delle notifiche seguente contiene una configurazione della coda che identifica una coda Amazon SQS dove Amazon S3 deve pubblicare gli eventi di tipo s3:ObjectCreated:Put. Gli eventi vengono pubblicati ogni volta che un oggetto con prefisso images/ e suffisso jpg viene aggiunto a un bucket tramite richiesta PUT.

<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 configurazione delle notifiche riportata di seguito include diversi prefissi che non si sovrappongono. La configurazione stabilisce che le notifiche delle richieste PUT nella cartella images/ vanno nella coda A (queue-A) mentre le notifiche delle richieste PUT nella cartella logs/ vanno nella coda B (queue-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 configurazione delle notifiche riportata di seguito include diversi suffissi che non si sovrappongono. La configurazione stabilisce che tutte le nuove immagini .jpg aggiunte al bucket verranno elaborate dalla funzione Lambda cloud-function-A, mentre tutte le nuove immagini .png verranno elaborate dalla funzione cloud-function-B. I suffissi .png e .jpg non si sovrappongono anche se hanno la stessa lettera finale. I due suffissi si considerano sovrapposti se una determinata stringa può terminare con entrambi. Una stringa non può terminare sia con .png che con .jpg, pertanto i suffissi nella configurazione di esempio non si sovrappongono.

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

Le configurazioni delle notifiche che utilizzano Filter non possono definire regole per filtrare i prefissi che si sovrappongono nello stesso tipo di evento. Possono farlo solo se i prefissi sovrapposti sono utilizzati con suffissi che non si sovrappongono. L'esempio di configurazione seguente mostra in che modo gli oggetti creati con un prefisso comune ma con suffissi che non si sovrappongono possono essere distribuiti in diverse destinazioni.

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

Esempi di configurazioni di notifiche con sovrapposizione di prefisso/suffisso non valida

La maggior parte delle configurazioni delle notifiche che utilizzano Filter non possono definire regole per filtrare i prefissi che si sovrappongono, i suffissi che si sovrappongono o le combinazioni di prefissi e suffissi che si sovrappongono per gli stessi tipi di eventi. È possibile avere prefissi che si sovrappongono a condizione che non si sovrappongano i suffissi. Per vedere un esempio, consulta Configurazione delle notifiche di eventi mediante il filtro dei nomi delle chiavi oggetto.

È possibile utilizzare filtri di nomi delle chiavi degli oggetti che si sovrappongono con diversi tipi di eventi. Ad esempio, si potrebbe creare una configurazione delle notifiche che utilizza il prefisso image/ per il tipo di evento ObjectCreated:Put e il prefisso image/ per il tipo di evento ObjectRemoved:*.

Se cerchi di salvare una configurazione delle notifiche con filtri di nomi non validi che si sovrappongono per gli stessi tipi di eventi, durante l'utilizzo dell'API o della console di Amazon S3, si verifica un errore. Questa sezione mostra esempi di configurazioni delle notifiche non valide a causa della sovrapposizione dei filtri dei nomi.

Si presuppone che qualsiasi regola di configurazione delle notifiche esistente abbia prefisso e suffisso predefiniti che corrispondano rispettivamente a qualsiasi altro prefisso e suffisso. La configurazione delle notifiche riportata di seguito non è valida poiché include prefissi che si sovrappongono. In particolare, il prefisso root si sovrappone con qualsiasi altro prefisso. Lo stesso vale nel caso in cui in questo esempio si utilizzi un suffisso anziché il prefisso. Il suffisso root si sovrappone a qualsiasi altro suffisso.

<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 configurazione delle notifiche riportata di seguito non è valida in quanto include suffissi che si sovrappongono. I due suffissi si considerano sovrapposti se una determinata stringa può terminare con entrambi. Una stringa può terminare con jpg e pg. Quindi, i suffissi si sovrappongono. Lo stesso vale per i prefissi. Due prefissi sono considerati sovrapposti se una determinata stringa può iniziare con entrambi i prefissi.

<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 configurazione delle notifiche riportata di seguito non è valida poiché include prefissi e suffissi che si sovrappongono.

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