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.
Structure des messages d'événements
Le message de notification envoyé par Amazon S3 pour publier un événement est au JSON format suivant.
Pour obtenir une présentation générale et des instructions sur la configuration des notifications d'événement, veuillez consulter Notifications d'événements Amazon S3.
Cet exemple montre la version 2.2 de la JSON structure de notification d'événements. Amazon S3 utilise les versions 2.1, 2.2 et 2.3 de cette structure d'événement. Amazon S3 utilise la version 2.2 pour les notifications d'événements de réplication entre Régions. Il utilise la version 2.3 pour les événements S3 Lifecycle, S3 Intelligent-Tiering, les objetsACL, le balisage d'objets et les événements de suppression liés à la restauration d'objets. Ces versions contiennent des informations supplémentaires spécifiques à ces opérations. Les versions 2.2 et 2.3 sont par ailleurs compatibles avec la version 2.1, qu'Amazon S3 utilise actuellement pour tous les autres types de notifications d'événements.
{ "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
" } } } ] }
Notez les éléments suivants à propos de la structure des messages d'événement :
-
La valeur de clé
eventVersion
contient une version majeure et une version mineure au format<major>
.<minor>
.La version majeure est incrémentée si Amazon S3 apporte à la structure de l'événement une modification qui n'est pas rétrocompatible. Cela inclut la suppression d'un JSON champ déjà présent ou la modification de la façon dont le contenu d'un champ est représenté (par exemple, un format de date).
La version mineure est incrémentée si Amazon S3 ajoute de nouveaux champs à la structure de l'événement. Cela peut se produire si de nouvelles informations sont fournies pour certains ou tous les événements existants. Cela peut également se produire si de nouvelles informations sont fournies sur les types d'événements nouvellement introduits. Les applications doivent ignorer les nouveaux champs pour être compatibles avec de nouvelles versions mineures de la structure de l'événement.
Si de nouveaux types d'événement sont introduits mais que la structure de l'événement n'est pas modifiée, la version de l'événement ne change pas.
Pour vous assurer que vos applications puissent analyser correctement la structure de l'événement, nous vous recommandons d'effectuer une comparaison égal à sur le numéro de version majeure. Pour vous assurer que les champs attendus par votre application sont présents, nous vous recommandons également d'effectuer une comparaison « greater-than-or-equal -to » sur la version mineure.
-
Le
eventName
fait référence à la liste des types de notifications d'événements, mais ne contient pas le préfixes3:
. -
La valeur
responseElements
clé est utile si vous souhaitez suivre une demande en effectuant un suivi avec AWS Support. Les deux élémentsx-amz-request-id
etx-amz-id-2
aident Amazon S3 à suivre une demande individuelle. Ces valeurs sont identiques à celles renvoyées par Amazon S3 dans la réponse à la demande qui initie les événements. Ainsi, ils peuvent être utilisés pour faire correspondre l'événement à la demande. -
La clé
s3
fournit les informations relatives à l'objet et au compartiment concernés par l'événement. La valeur du nom de la clé de l'objet est URL codée. Par exemple, « fleur rouge.jpg » devient « fleur+rouge.jpg » (Amazon S3 renvoie «application/x-www-form-urlencoded
» comme type de contenu dans la réponse). -
La clé
sequencer
permet de déterminer la séquence des événements. Les notifications d'événements n'arrivent pas nécessairement dans le même ordre dans lequel les événement se sont produits. Toutefois, les notifications provenant d'événements qui créent des objets (PUT
s) et supprimer des objets qui contiennent unsequencer
. Il peut être utilisé pour déterminer l'ordre dans lequel se sont produits les événements pour une clé d'objet donnée.Si vous comparez les chaînes
sequencer
provenant de deux notifications d'événements associées à la même clé d'objet, la notification d'événement qui présente la plus grande valeursequencer
hexadécimale correspond à l'événement le plus récent. Si vous utilisez des notifications d'événement pour gérer une base de données ou un index distincts de vos objets Amazon S3, nous vous recommandons de comparer et de stocker les valeurssequencer
à mesure que vous traitez les notifications associées à chaque événement.Notez ce qui suit :
-
Vous ne pouvez pas utiliser
sequencer
pour déterminer l'ordre des événements associés à différentes clés d'objet. -
La longueur des valeurs de séquenceur est variable. Pour comparer ces valeurs, complétez d'abord à droite la valeur la plus courte à l'aide de zéros, puis effectuer une comparaison lexicographique.
-
-
Seule la clé
glacierEventData
est visible pour les événementss3:ObjectRestore:Completed
. -
La clé
restoreEventData
contient des attributs qui sont liés à votre demande de restauration. -
La clé
replicationEventData
n'est visible que pour les événements de réplication. -
La clé
intelligentTieringEventData
n'est visible que pour les événements S3 Intelligent-Tiering. -
La clé
lifecycleEventData
n'est visible que pour les événements de transition du cycle de vie S3.
Exemples de messages
Voici des exemples de messages de notification d'événement Amazon S3.
Message de test Amazon S3
Une fois que vous avez configuré une notification d'événement pour un compartiment, Amazon S3 envoie le message de test suivant.
{ "Service":"Amazon S3", "Event":"s3:TestEvent", "Time":"2014-10-13T15:57:02.089Z", "Bucket":"
", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
amzn-s3-demo-bucket
Exemple de message lorsqu'un objet est créé à l'aide d'une PUT demande
Le message suivant est un exemple de message envoyé par Amazon S3 pour publier un événement 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" } } } ] }
Pour une définition de chaque préfixe IAM d'identification (par exemple,,AGPA) AIDAAROA, voir les IAMidentifiants dans le guide de l'IAMutilisateur.