Struktur von Ereignismeldungen - Amazon Simple Storage Service

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":"amzn-s3-demo-bucket", "ownerIdentity":{ "principalId":"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 die s3:-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 und x-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 ein sequencer. 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 von sequencer 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, die sequencer-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ür s3: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":"amzn-s3-demo-bucket", "RequestId":"5582815E1AEA5ADF", "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE" }
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.