Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Struktur von Ereignismeldungen
Die Benachrichtigung, die Amazon S3 sendet, um ein Ereignis zu veröffentlichen, verwendet das JSON-Format.
Eine allgemeine Übersicht und Anweisungen zum Konfigurieren von Ereignisbenachrichtigungen finden Sie unter Amazon-S3-Ereignisbenachrichtigungen.
Dieses Beispiel veranschaulicht Version 2.2 der JSON-Struktur der Ereignisbenachrichtigung. Amazon S3 verwendet Versionen 2.1 und 2.2 und 2.3 dieser Ereignisstruktur. Amazon S3 verwendet Version 2.2 für regionsübergreifende Replikationsereignisbenachrichtigungen. Es verwendet Version 2.3 für S3 Lebenszyklus, S3 Intelligent-Tiering, Objekt-ACL, Objekt-Markierung und Objektwiederherstellungs-Löschereignisse. Diese Versionen enthalten zusätzliche Informationen, die für diese Vorgänge spezifisch sind. Die Versionen 2.2 und 2.3 sind ansonsten mit Version 2.1 kompatibel, die Amazon S3 derzeit für alle anderen Ereignisbenachrichtigungstypen verwendet.
{ "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
" } } } ] }
Beachten Sie im Zusammenhang mit der Ereignistachrichtenstruktur Folgendes:
-
Der
eventVersion
-Schlüsselwert enthält eine Haupt- und eine Nebenversion im Format
.major
.minor
Die Hauptversion wird erhöht, wenn Amazon S3 eine Änderung an der Ereignisstruktur vornimmt, die nicht abwärtskompatibel ist. Dies beinhaltet das Entfernen eines JSON-Feldes, das bereits vorhanden ist, oder das Ändern, wie die Inhalte eines Feldes dargestellt werden (Beispiel: ein Datumsformat).
Die Nebenversion wird erhöht, wenn Amazon S3 der Ereignisstruktur neue Felder hinzufügt. Dies kann auftreten, wenn neue Informationen für einige oder alle vorhandenen Ereignisse bereitgestellt werden. Dies kann auch der Fall sein, wenn neue Informationen nur für neu eingeführte Ereignistypen bereitgestellt werden. Um mit neuen Nebenversionen der Ereignisstruktur kompatibel zu bleiben, empfehlen wir, dass Ihre Anwendungen neue Felder ignorieren.
Wenn neue Ereignistypen eingeführt werden, die Struktur des Ereignisses aber ansonsten unverändert bleibt, ändert sich die Eventversion nicht.
Um sicherzustellen, dass Ihre Anwendungen die Ereignisstruktur ordnungsgemäß analysieren können, empfehlen wir, dass Sie einen Vergleich mit der Hauptversionsnummer durchführen. Um sicherzustellen, dass die Felder, die von Ihrer Anwendung erwartet werden, vorhanden sind, empfehlen wir außerdem, mit der greater-than-or-equal Nebenversion einen -to-Vergleich durchzuführen.
-
Der
eventName
Schlüsselwert verweist auf die Liste der Typen von Ereignisbenachrichtigungen, enthält jedoch nicht dass3:
Präfix. -
Der
userIdentity
Schlüsselwert bezieht sich auf die eindeutige ID der AWS Identity and Access Management (IAM-) Ressource (Benutzer, Rolle, Gruppe usw.), die das Ereignis verursacht hat. Eine Definition der einzelnen IAM-Identifikationspräfixe (z. B. AIDA, AROA, AGPA) und Informationen zum Abrufen der eindeutigen Kennung finden Sie unter Eindeutige Identifikatoren im IAM-Benutzerhandbuch. -
Der
responseElements
Schlüsselwert ist nützlich, wenn Sie eine Anfrage nachverfolgen möchten, indem Sie mit nachverfolgen. AWS -Supportx-amz-request-id
undx-amz-id-2
helfen Amazon S3, eine einzelne Anfrage nachzuverfolgen. Diese Werte sind dieselben, die Amazon S3 in der Antwort auf die Anforderung zurückgibt, die die Ereignisse initiiert. Daher können Sie diese Werte verwenden, um das Ereignis der Anfrage zuzuordnen. -
Der
s3
Schlüsselwert enthält Informationen über den Bucket und das Objekt, die an dem Ereignis beteiligt sind. Der Wert des Objektschlüsselnamens ist URL-kodiert. Beispielsweise wirdred flower.jpg
zured+flower.jpg
. (Amazon S3 gibt "application/x-www-form-urlencoded
" als Inhaltstyp in der Antwort zurück.)Der
ownerIdentity
Schlüsselwert entspricht der Amazon-Einzelhandelskundennummer des Bucket-Besitzers. Dieser ID-Wert wird nicht mehr verwendet und nur aus Gründen der Abwärtskompatibilität beibehalten. -
Der
sequencer
Schlüsselwert bietet eine Möglichkeit, die Reihenfolge der Ereignisse zu bestimmen. Ereignis-Benachrichtigungen kommen nicht garantiert in der Reihenfolge an, in der die Ereignisse aufgetreten sind. Benachrichtigungen über Ereignisse, die Objekte (PUT
Anfragen) erstellen und Objekte löschen, enthalten jedoch einesequencer
. Sie können diesen Wert verwenden, um die Reihenfolge der Ereignisse für einen bestimmten Objektschlüssel zu bestimmen.Wenn Sie die
sequencer
-Zeichenfolgen von zwei Ereignisbenachrichtigungen für denselben Objektschlüssel vergleichen, ist die Ereignisbenachrichtigung mit dem größeren hexadezimalen Wert vonsequencer
das später aufgetretene Ereignis. Wenn Sie Ereignisbenachrichtigungen verwenden, um eine separate Datenbank oder einen separaten Index Ihrer Amazon-S3-Objekte zu verwalten, empfehlen wir Ihnen, diesequencer
-Werte während der Verarbeitung jeder Ereignisbenachrichtigung zu vergleichen und zu speichern.Beachten Sie Folgendes:
-
Sie können den
sequencer
Schlüsselwert nicht verwenden, um die Reihenfolge von Ereignissen auf verschiedenen Objektschlüsseln zu bestimmen. -
Die
sequencer
Zeichenketten können unterschiedlich lang sein. Um diese Werte zu vergleichen, füllen Sie also zuerst den kürzeren Wert mit Nullen mit der linken Maustaste auf und führen Sie dann einen lexikografischen Vergleich durch.
-
-
Der
glacierEventData
Schlüsselwert ist nur für Ereignisse sichtbar.s3:ObjectRestore:Completed
-
Der
restoreEventData
Schlüsselwert enthält Attribute, die sich auf Ihre Wiederherstellungsanforderung beziehen. -
Der
replicationEventData
Schlüsselwert ist nur für Replikationsereignisse sichtbar. -
Der
intelligentTieringEventData
Schlüsselwert ist nur für S3 Intelligent-Tiering-Ereignisse sichtbar. -
Der
lifecycleEventData
Schlüsselwert ist nur für S3 Lifecycle-Übergangsereignisse sichtbar.
Beispielnachrichten
Im Folgenden finden Sie Beispiele für Amazon-S3-Ereignis-Benachrichtigungen.
Amazon-S3-Testnachricht
Nachdem Sie eine Ereignis-Benachrichtigung für einen Bucket konfigurieren, sendet Amazon S3 die folgende Testnachricht.
{ "Service":"Amazon S3", "Event":"s3:TestEvent", "Time":"2014-10-13T15:57:02.089Z", "Bucket":"
", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
amzn-s3-demo-bucket
Anmerkung
Die s3:TestEvent
Nachricht verwendet ein anderes Format als reguläre S3-Ereignisbenachrichtigungen. Im Gegensatz zu anderen Ereignisbenachrichtigungen, die die zuvor gezeigte Records
Array-Struktur verwenden, verwendet das Testereignis ein vereinfachtes Format mit direkten Feldern. Stellen Sie bei der Implementierung der Ereignisbehandlung sicher, dass Ihr Code zwischen beiden Nachrichtenformaten unterscheiden und diese ordnungsgemäß verarbeiten kann.
Beispielnachricht, wenn ein Objekt mithilfe einer PUT
Anfrage erstellt wird
Das Folgende ist ein Beispiel für eine Nachricht, die Amazon S3 sendet, um ein s3:ObjectCreated:Put
-Ereignis zu veröffentlichen.
{ "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" } } } ] }