EventBridge 事件消息结构 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

EventBridge 事件消息结构

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

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

  • id — 为每个事件生成版本 4 UUID。

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

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

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

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

  • region(区域)—识别存储桶的 Amazon Web Services 区域。

  • 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(请求者)—请求者的 Amazon Web Services 账户 ID 或 Amazon 服务主体。

  • 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 管理存储成本