EventBridge 事件消息结构 - Amazon Simple Storage Service

EventBridge 事件消息结构

Amazon S3 为发布事件而发送的通知消息采用 JSON 格式。当 Amazon S3 将事件发送到 Amazon EventBridge 时,会显示以下字段。

  • version(版本) — 目前所有活动均为 0(零)。

  • id:为每个事件生成的 UUID。

  • detail-type— 正在发送的事件类型。有关事件类型的列表,请参阅 使用 EventBridge

  • source(源)— 识别生成事件的服务。

  • account(账户)- 存储桶拥有者的 12 位 AWS 账户 ID。

  • time(时间)- 事件发生的时间。

  • region(区域)—识别存储桶的 AWS 区域。

  • resource(资源)- 包含存储桶的 Amazon 资源名称(ARN)的 JSON 数组。

  • detail(详细信息)—包含关于事件信息的 JSON 对象。有关此字段中可包含的内容的更多信息,请参阅事件消息详细信息

事件消息结构示例

以下是一些可以发送到 Amazon EventBridge 的 Amazon S3 事件通知消息的示例。

已创建对象

{ "version": "0", "id": "17793124-05d4-b198-2fde-7ededc63b103", "detail-type": "Object Created", "source": "aws.s3", "account": "111122223333", "time": "2021-11-12T00:00:00Z", "region": "ca-central-1", "resources": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ], "detail": { "version": "0", "bucket": { "name": "amzn-s3-demo-bucket1" }, "object": { "key": "example-key", "size": 5, "etag": "b1946ac92492d2347c6235b4d2611184", "version-id": "IYV3p45BT0ac8hjHg1houSdS1a.Mro8e", "sequencer": "617f08299329d189" }, "request-id": "N4N7GDK58NMKJ12R", "requester": "123456789012", "source-ip-address": "1.2.3.4", "reason": "PutObject" } }

已删除对象(使用 DeleteObject)

{ "version": "0", "id": "2ee9cc15-d022-99ea-1fb8-1b1bac4850f9", "detail-type": "Object Deleted", "source": "aws.s3", "account": "111122223333", "time": "2021-11-12T00:00:00Z", "region": "ca-central-1", "resources": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ], "detail": { "version": "0", "bucket": { "name": "amzn-s3-demo-bucket1" }, "object": { "key": "example-key", "etag": "d41d8cd98f00b204e9800998ecf8427e", "version-id": "1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF", "sequencer": "617f0837b476e463" }, "request-id": "0BH729840619AG5K", "requester": "123456789012", "source-ip-address": "1.2.3.4", "reason": "DeleteObject", "deletion-type": "Delete Marker Created" } }

已删除对象(使用生命周期过期)

{ "version": "0", "id": "ad1de317-e409-eba2-9552-30113f8d88e3", "detail-type": "Object Deleted", "source": "aws.s3", "account": "111122223333", "time": "2021-11-12T00:00:00Z", "region": "ca-central-1", "resources": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ], "detail": { "version": "0", "bucket": { "name": "amzn-s3-demo-bucket1" }, "object": { "key": "example-key", "etag": "d41d8cd98f00b204e9800998ecf8427e", "version-id": "mtB0cV.jejK63XkRNceanNMC.qXPWLeK", "sequencer": "617b398000000000" }, "request-id": "20EB74C14654DC47", "requester": "s3.amazonaws.com", "reason": "Lifecycle Expiration", "deletion-type": "Delete Marker Created" } }

已完成对象还原

{ "version": "0", "id": "6924de0d-13e2-6bbf-c0c1-b903b753565e", "detail-type": "Object Restore Completed", "source": "aws.s3", "account": "111122223333", "time": "2021-11-12T00:00:00Z", "region": "ca-central-1", "resources": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ], "detail": { "version": "0", "bucket": { "name": "amzn-s3-demo-bucket1" }, "object": { "key": "example-key", "size": 5, "etag": "b1946ac92492d2347c6235b4d2611184", "version-id": "KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3" }, "request-id": "189F19CB7FB1B6A4", "requester": "s3.amazonaws.com", "restore-expiry-time": "2021-11-13T00:00:00Z", "source-storage-class": "GLACIER" } }

事件消息详细信息

详细信息字段包含一个 JSON 对象,其中包含事件相关信息。详细信息字段中可能存在以下字段。

  • version(版本) — 目前所有活动均为 0(零)。

  • bucket(存储桶)— 有关事件中涉及的 Amazon S3 存储桶的相关信息。

  • object(对象)— 有关事件中涉及的 Amazon S3 对象的相关信息。

  • request-id — S3 响应中的请求 ID。

  • requester(请求者)—请求者的 AWS 账户 ID 或 AWS 服务主体。

  • source-ip-address — S3 请求的源 IP 地址。仅用于 S3 请求触发的事件。

  • 原因 — 对于 Object Created(已创建对象)事件,S3 API 用来创建对象:PutObjectPOST 对象CopyObjectCompleteMultipartUpload。对于 Object Deleted(已删除对象),当对象由 S3 API 调用删除时,这将设为 DeleteObject,或者当对象由 S3 生命周期过期规则删除时,这将设为 Lifecycle Expiration。有关更多信息,请参阅 即将过期的对象

  • deletion-type — 对于 Object Deleted(已删除对象),当删除未受版本控制的对象或永久删除受版本控制的对象时,删除类型字段将设置为永久删除。为受版本控制的对象创建删除标记时,此将设为 Delete Marker Created(已创建删除标记)。有关更多信息,请参阅 从启用了版本控制的存储桶中删除对象版本

    注意

    某些对象属性(例如 etagsize)仅在创建删除标记时才会出现。

  • restore-expiry-time — 对于 Object Restore Completed(已完成对象还原)事件,该对象的临时副本将从 S3 中删除的时间。有关更多信息,请参阅 使用归档的对象

  • source-storage-class — 对于 Object Restore Initiated(已启动对象还原)和 Object Restore Completed(已完成对象还原)事件,即正在恢复的对象的存储类。有关更多信息,请参阅 使用归档的对象

  • destination-storage-class — 对于 Object Storage Class Changed(已更改对象存储类)事件,对象的新存储类。有关更多信息,请参阅 使用 Amazon S3 生命周期转换对象

  • destination-access-tier — 对于 Object Access Tier Changed(已更改对象访问层)事件,对象的新访问层。有关更多信息,请参阅 使用 Amazon S3 Intelligent-Tiering 管理存储成本