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à.
Struttura del messaggio di evento
Il messaggio di notifica inviato da Amazon S3 per pubblicare un evento è in formato JSON.
Per una panoramica generale e istruzioni sulla configurazione delle notifiche degli eventi, consulta Notifiche di eventi Amazon S3.
Questo esempio mostra la versione 2.2della struttura JSON di notifica degli eventi. Amazon S3 utilizza le versioni 2.1, 2.2 e 2.3 di questa struttura di eventi. Amazon S3 utilizza la versione 2.2 per le notifiche di eventi di replica tra Regioni. Utilizza la versione 2.3 per S3 Lifecycle, S3 Intelligent-Tiering, ACL di oggetti, assegnazione di tag di oggetti e ripristino oggetti per gli eventi di eliminazione. Queste versioni contengono informazioni aggiuntive specifiche per queste operazioni. Le versioni 2.2 e 2.3 sono altrimenti compatibili con la versione 2.1 che Amazon S3 utilizza attualmente per altri tipi di notifiche di eventi.
{ "Records":[ { "eventVersion":"2.2", "eventSource":"aws:s3", "awsRegion":"us-west-2", "eventTime":"
The time, in ISO-8601 format, for example, 1970-01-01T00:00:00.000Z, when Amazon S3 finished processing the request
", "eventName":"event-type
", "userIdentity":{ "principalId":"Amazon-customer-ID-of-the-user-who-caused-the-event
" }, "requestParameters":{ "sourceIPAddress":"ip-address-where-request-came-from
" }, "responseElements":{ "x-amz-request-id":"Amazon S3 generated request ID
", "x-amz-id-2":"Amazon S3 host that processed the request
" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"ID found in the bucket notification configuration
", "bucket":{ "name":"", "ownerIdentity":{ "principalId":"
amzn-s3-demo-bucket
Amazon-customer-ID-of-the-bucket-owner
" }, "arn":"bucket-ARN
" }, "object":{ "key":"object-key
", "size":"object-size in bytes
", "eTag":"object eTag
", "versionId":"object version if bucket is versioning-enabled, otherwise null
", "sequencer": "a string representation of a hexadecimal value used to determine event sequence, only used with PUTs and DELETEs
" } }, "glacierEventData": { "restoreEventData": { "lifecycleRestorationExpiryTime": "The time, in ISO-8601 format, for example, 1970-01-01T00:00:00.000Z, of Restore Expiry
", "lifecycleRestoreStorageClass": "Source storage class for restore
" } } } ] }
Notare quanto segue sulla struttura dei messaggi di evento:
-
Il valore della chiave
eventVersion
contiene una versione maggiore e minore nel formato<major>
.<minor>
.La versione principale viene incrementata se Amazon S3 apporta una modifica alla struttura dell'evento che non è compatibile con le versioni precedenti. Questo include la rimozione di un campo JSON che è già presente o la modifica del modo in cui i contenuti di un campo vengono rappresentati (ad esempio, un formato di data).
La versione secondaria viene incrementata se Amazon S3 aggiunge nuovi campi alla struttura dell'evento. Questo può succedere se vengono fornite nuove informazioni per alcuni o tutti gli eventi esistenti. Questo può succedere anche se vengono fornite nuove informazioni solo sui tipi di eventi appena introdotti. Le applicazioni devono ignorare i nuovi campi per rimanere compatibili con le nuove versioni minori della struttura dell'evento.
Se vengono introdotti nuovi tipi di eventi ma la struttura dell'evento rimane invariata, la versione dell'evento non cambia.
Per fare in modo che le applicazioni analizzino correttamente la struttura dell'evento, è consigliabile eseguire un confronto "uguale a" sul numero della versione maggiore. Per garantire che i campi previsti dall'applicazione siano presenti, consigliamo anche di fare un confronto greater-than-or-equal -to sulla versione secondaria.
-
eventName
fa riferimento all'elenco dei tipi di notifiche di eventi ma non contiene il prefissos3:
. -
Il valore
responseElements
chiave è utile se si desidera tracciare una richiesta dando seguito a Supporto AWS. Siax-amz-request-id
siax-amz-id-2
aiutano Amazon S3 a tenere traccia di una singola richiesta. Questi valori corrispondono a quelli che Amazon S3 restituisce nella risposta alla richiesta che avvia gli eventi. In questo modo, possono essere utilizzati per mettere in corrispondenza l'evento alla richiesta. -
La chiave
s3
fornisce informazioni sul bucket e sugli oggetti coinvolti nell'evento. Il valore del nome della chiave dell'oggetto ha la codifica URL. Ad esempio, "red flower.jpg" diventa "red+flower.jpg" (Amazon S3 restituisce "application/x-www-form-urlencoded
" come tipo di contenuto nella risposta). -
La chiave
sequencer
fornisce un modo di stabilire la sequenza degli eventi. Non è garantito che le notifiche di eventi arrivino nello stesso ordine in cui avvengono gli eventi. Tuttavia, notifiche da eventi che creano oggetti (PUT
) ed eliminano oggetti contengono unsequencer
. Può essere utilizzato per determinare l'ordine degli eventi per una determinata chiave oggetto.Se si confrontano le stringhe
sequencer
da due notifiche eventi nella stessa chiave dell'oggetto, la notifica evento con il valore esadecimalesequencer
più elevato è l'evento che è avvenuto per ultimo. Se si utilizzano notifiche di eventi per mantenere un database o un indice separato degli oggetti Amazon S3, è consigliabile confrontare e archiviare i valorisequencer
man mano che la notifica di ciascun evento viene elaborata.Tieni presente quanto segue:
-
sequencer
non può essere utilizzato per determinare l'ordine degli eventi su diverse chiavi dell'oggetto. -
I sequencer possono essere di diversa lunghezza. Pertanto, per confrontare questi valori, occorre innanzitutto riempire il valore più corto con degli zeri, quindi eseguire un confronto lessicografico.
-
-
La chiave
glacierEventData
è visibile solo per gli eventis3:ObjectRestore:Completed
. -
La chiave
restoreEventData
contiene attributi correlati alla richiesta di ripristino. -
La chiave
replicationEventData
è visibile solo per gli eventi di replica. -
La chiave
intelligentTieringEventData
è visibile solo per gli eventi S3 Intelligent-Tiering. -
La chiave
lifecycleEventData
è visibile solo per gli eventi di transizione del ciclo di vita S3.
Messaggi di esempio
Di seguito sono riportati alcuni esempi di messaggi di notifica degli eventi Amazon S3.
Messaggio di prova Amazon S3
Quando configuri una notifica di eventi in un bucket, Amazon S3 invia il messaggio di prova riportato di seguito.
{ "Service":"Amazon S3", "Event":"s3:TestEvent", "Time":"2014-10-13T15:57:02.089Z", "Bucket":"
", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
amzn-s3-demo-bucket
Messaggio di esempio quando un oggetto viene creato utilizzando una richiesta PUT
Il seguente messaggio è un esempio di un messaggio inviato da Amazon S3 per pubblicare un evento s3:ObjectCreated:Put
.
{ "Records":[ { "eventVersion":"2.1", "eventSource":"aws:s3", "awsRegion":"us-west-2", "eventTime":"1970-01-01T00:00:00.000Z", "eventName":"ObjectCreated:Put", "userIdentity":{ "principalId":"AIDAJDPLRKLG7UEXAMPLE" }, "requestParameters":{ "sourceIPAddress":"127.0.0.1" }, "responseElements":{ "x-amz-request-id":"C3D13FE58DE4C810", "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"testConfigRule", "bucket":{ "name":"
amzn-s3-demo-bucket
", "ownerIdentity":{ "principalId":"A3NL1KOZZKExample" }, "arn":"arn:aws:s3:::amzn-s3-demo-bucket
" }, "object":{ "key":"HappyFace.jpg", "size":1024, "eTag":"d41d8cd98f00b204e9800998ecf8427e", "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko", "sequencer":"0055AED6DCD90281E5" } } } ] }
Per la definizione di ciascun prefisso di identificazione IAM (ad esempio AIDA, AROA, AGPA), consulta Identificatori IAM nella Guida per l'utente di IAM.