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 Benachrichtigungsnachricht, die Amazon S3 zur Veröffentlichung eines Ereignisses sendet, hat das folgende JSON Format.
Eine allgemeine Übersicht und Anweisungen zum Konfigurieren von Ereignisbenachrichtigungen finden Sie unter Amazon-S3-Ereignis-Benachrichtigungen.
Dieses Beispiel zeigt 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 Ereignisse wie S3 Lifecycle, S3 Intelligent-TieringACL, Objekt- und Objekt-Tagging und Objektwiederherstellung zum Löschen von Objekten. 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":"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
" } } } ] }
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. Dazu gehört das Entfernen eines bereits vorhandenen JSON Felds oder das Ändern der Darstellung des Feldinhalts (z. B. 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 geschehen, wenn neue Informationen nur zu neu eingeführten Ereignistypen bereitgestellt werden. Anwendungen sollten neue Felder ignorieren, um weiter aufwärtskompatibel mit neuen Nebenversionen der Ereignisstruktur zu sein.
Falls neue Ereignistypen eingeführt werden, aber die Struktur des Ereignisses anderweitig unmodifiziert ist, ändert sich die Ereignisversion 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 Nebenversion einen greater-than-or-equal -to-Vergleich durchzuführen.
-
Die
eventName
verweist auf die Liste der Typen der Ereignisbenachrichtigung, enthält aber nicht dies3:
-Präfix. -
Der
responseElements
Schlüsselwert ist nützlich, wenn Sie eine Anfrage nachverfolgen möchten, indem Sie mit AWS Support nachverfolgen.x-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. Auf diese Weise können sie verwendet werden, um das Ereignis der Anfrage zuzuordnen. -
Der
s3
-Schlüssel bietet Informationen über den Bucket und das Objekt, die an dem Ereignis beteiligt sind. Der Wert des Objektschlüsselnamens ist URL codiert. Beispielsweise wird "red flower.jpg" zu "red+flower.jpg" (Amazon S3 gibt als Inhaltstyp in der Antwort "application/x-www-form-urlencoded
" zurück). -
Der
sequencer
-Schlüssel bietet eine Möglichkeit, die Reihenfolge von Ereignissen zu bestimmen. Ereignis-Benachrichtigungen kommen nicht garantiert in der Reihenfolge an, in der die Ereignisse aufgetreten sind. Benachrichtigungen von Ereignissen, die Objekte erstellen (PUT
) und Objekte löschen, enthalten jedoch einsequencer
. Es kann verwendet werden, 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
sequencer
nicht verwenden, um die Reihenfolge von Ereignissen für unterschiedliche Objektschlüssel zu bestimmen. -
Die Sequenzer können unterschiedliche Längen haben. Um diese Werte zu vergleichen, füllen Sie zuerst den kürzeren Wert links mit Nullen auf und führen dann einen alphabetischen Vergleich durch.
-
-
Der
glacierEventData
-Schlüssel ist nur fürs3:ObjectRestore:Completed
-Ereignisse sichtbar. -
Der
restoreEventData
-Schlüssel enthält Attribute, die sich auf Ihre Wiederherstellungsanfrage beziehen. -
Der Schlüssel
replicationEventData
ist nur für Replikationsereignisse sichtbar. -
Der
intelligentTieringEventData
-Schlüssel ist nur für Ereignisse von S3 Intelligent Tiering sichtbar. -
Der
lifecycleEventData
-Schlüssel ist nur für S3-Lebenszyklus-Ü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
Beispielnachricht, wenn ein Objekt mithilfe einer PUT Anfrage erstellt wird
Die folgende Nachricht ist ein Beispiel für eine Nachricht, die Amazon S3 zum Veröffentlichen eines s3:ObjectCreated:Put
-Ereignisses sendet.
{ "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" } } } ] }
Eine Definition der einzelnen IAM Identifikationspräfixe (z. B.AIDA,AROA,AGPA) finden Sie im IAMBenutzerhandbuch unter IAMIdentifikatoren.