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":"The event type
", "userIdentity":{ "principalId":"The unique ID of the IAM resource that caused the event
" }, "requestParameters":{ "sourceIPAddress":"The IP address where the request came from
" }, "responseElements":{ "x-amz-request-id":"The Amazon S3 generated request ID
", "x-amz-id-2":"The Amazon S3 host that processed the request
" }, "s3":{ "s3SchemaVersion":"1.0", "configurationId":"The ID found in the bucket notification configuration
", "bucket":{ "name":"The name of the bucket, for example,
", "ownerIdentity":{ "principalId":"
amzn-s3-demo-bucket
The Amazon retail customer ID of the bucket owner
" }, "arn":"The bucket Amazon Resource Name (ARN)
" }, "object":{ "key":"The object key name
", "size":"The object size in bytes (as a number)
", "eTag":"The object entity tag (ETag)
", "versionId":"The object version if the bucket is versioning-enabled; null or not present if the bucket isn't versioning-enabled
", "sequencer": "A string representation of a hexadecimal value used to determine event sequence; only used with PUT and DELETE requests
" } }, "glacierEventData": { "restoreEventData": { "lifecycleRestorationExpiryTime": "The time, in ISO-8601 format (for example, 1970-01-01T00:00:00.000Z), when the temporary copy of the restored object expires
", "lifecycleRestoreStorageClass": "The source storage class for restored objects
" } } } ] }
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. Ciò potrebbe verificarsi anche se vengono fornite nuove informazioni solo per i tipi di eventi appena introdotti. Per rimanere compatibili con le nuove versioni minori della struttura degli eventi, consigliamo che le applicazioni ignorino i nuovi campi.
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.
-
Il valore
eventName
chiave fa riferimento all'elenco dei tipi di notifica degli eventi ma non contiene ils3:
prefisso. -
Il valore
userIdentity
chiave fa riferimento all'ID univoco della risorsa AWS Identity and Access Management (IAM) (utente, ruolo, gruppo e così via) che ha causato l'evento. Per una definizione di ogni prefisso di identificazione IAM (ad esempio, AIDA, AROA, AGPA) e informazioni su come ottenere l'identificatore univoco, consulta Identificatori univoci nella IAM User Guide. -
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. Pertanto, è possibile utilizzare questi valori per abbinare l'evento alla richiesta. -
Il valore
s3
chiave fornisce informazioni sul bucket e sull'oggetto coinvolti nell'evento. Il valore del nome della chiave dell'oggetto ha la codifica URL. Ad esempiored flower.jpg
diventared+flower.jpg
. (Amazon S3 restituisce "application/x-www-form-urlencoded
" come tipo di contenuto nella risposta.)Il valore
ownerIdentity
chiave corrisponde all'ID cliente Amazon Retail del proprietario del bucket. Questo valore ID non viene più utilizzato e viene mantenuto solo per la compatibilità con le versioni precedenti. -
Il valore
sequencer
chiave fornisce un modo per determinare la sequenza degli eventi. Non è garantito che le notifiche di eventi arrivino nello stesso ordine in cui avvengono gli eventi. Tuttavia, le notifiche relative agli eventi che creano oggetti (PUT
richieste) ed eliminano oggetti contengono unsequencer
. È possibile utilizzare questo valore per determinare l'ordine degli eventi per una determinata chiave dell'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:
-
Non è possibile utilizzare il valore della
sequencer
chiave per determinare l'ordine degli eventi su chiavi oggetto diverse. -
Le
sequencer
stringhe possono avere lunghezze diverse. Quindi, per confrontare questi valori, prima fai clic con il tasto sinistro del mouse sul valore più breve con zeri, quindi esegui un confronto lessicografico.
-
-
Il valore
glacierEventData
chiave è visibile solo per gli eventi.s3:ObjectRestore:Completed
-
Il valore
restoreEventData
chiave contiene attributi correlati alla richiesta di ripristino. -
Il valore
replicationEventData
chiave è visibile solo per gli eventi di replica. -
Il valore
intelligentTieringEventData
chiave è visibile solo per gli eventi S3 Intelligent-Tiering. -
Il valore
lifecycleEventData
chiave è visibile solo per gli eventi di transizione di S3 Lifecycle.
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
Nota
Il s3:TestEvent
messaggio utilizza un formato diverso rispetto alle normali notifiche degli eventi S3. A differenza di altre notifiche di eventi che utilizzano la struttura ad Records
array mostrata in precedenza, l'evento di test utilizza un formato semplificato con campi diretti. Quando implementate la gestione degli eventi, assicuratevi che il codice sia in grado di distinguere e gestire correttamente entrambi i formati di messaggi.
Messaggio di esempio quando un oggetto viene creato utilizzando una PUT
richiesta
Quello che segue è 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":"172.16.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" } } } ] }