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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

来自 Amazon 服务的事件

许多 Amazon 服务都会生成 EventBridge 接收到的事件。当你账户中的某项 Amazon 服务发出事件时,它会进入你账户的默认事件总线。

通过 Amazon 服务交付活动

生成事件的每项 Amazon 服务都会将事件 EventBridge 作为最大努力持久交付尝试发送到。

  • 尽力交付意味着服务会尝试将所有事件发送到 EventBridge,但在极少数情况下,事件可能无法传送。

  • 持久交付意味着该服务将成功尝试 EventBridge 至少将事件传送到一次。

    EventBridge 将在正常条件下接受所有有效事件。如果由于服务中断而无法交付事件, EventBridge 服务部门稍后将再次重试这些事件,最长可达 24 小时。 Amazon

将事件传送到后 EventBridge,将其与规则进行 EventBridge 匹配,然后遵循重试策略和为事件目标指定的任何死信队列

有关生成事件的 Amazon 服务的列表,请参阅Amazon 生成事件的服务

通过以下方式访问 Amazon 服务事件 Amazon CloudTrail

Amazon CloudTrail 是一项自动记录 Amazon API 调用等事件的服务。您可以创建使用来自的信息的 EventBridge 规则 CloudTrail。有关的更多信息 CloudTrail,请参阅什么是 Amazon CloudTrail?

由传递的所有事件Amazon API Call via CloudTrail的值 CloudTrail 都是detail-type

要记录detail-type值为的事件Amazon API Call via CloudTrail,需要启用日志记录的 CloudTrail 跟踪。

CloudTrail 与 Amazon S3 一起使用时,您需要进行配置 CloudTrail 以记录数据事件。有关更多信息,请参阅为 S3 存储桶和对象启用 CloudTrail 事件记录

Amazon 服务中发生的某些事件 EventBridge 既可以由服务本身报告,也可以由报告给。 CloudTrail例如,启动或停止实例的 Amazon EC2 API 调用会生成 EventBridge 事件以及通过的事件 CloudTrail。

CloudTrail 支持 API 调用者和资源所有者通过创建跟踪在其 Amazon S3 存储桶中接收事件,并通过向 API 调用者传送事件。 EventBridge除了 API 调用者之外,资源所有者还可以通过监控跨账户 API 调用。 EventBridge CloudTrail与的集成 EventBridge 提供了一种便捷的方法来设置基于规则的自动化工作流程以响应事件。

您不能使用大小大于 256 KB 的 Amazon Put*Events API 调用事件作为事件模式,因为任何 Put*Events 请求的最大大小为 256 KB。有关您可以使用的 API 调用的更多信息,请参阅CloudTrail 支持的服务和集成。

接收来自 Amazon 服务的只读管理事件

您可以在默认或自定义事件总线上设置规则,通过接收来自 Amazon 服务的只读管理事件 CloudTrail。管理事件可让您了解对 Amazon 账户中的资源执行的管理操作。这些也称为控制层面操作。有关更多信息,请参阅《CloudTrail 用户指南》中的记录管理事件

对于针对默认或自定义事件总线的每条规则,您可以设置规则状态,以控制要接收的事件类型:

  • 禁用该规则,这样就 EventBridge 不会将事件与规则相匹配。

  • 启用该规则,以便将事件 EventBridge 与规则进行匹配,但通过传送的只读 Amazon 管理事件除外 CloudTrail。

  • 启用该规则,以便将所有事件与该规则进行 EventBridge 匹配,包括通过传送的只读管理事件 CloudTrail。

合作伙伴事件总线不接收 Amazon 事件。

在决定是否接收只读管理事件时需要考虑以下几点:

  • 某些只读管理事件(例如 Amazon Key Management Service GetKeyPolicyDescribeKey或 IAM GetPolicyGetRole事件)的发生量远高于典型的变更事件。

  • 如果只读管理事件不是以 DescribeGetList 开头,您可能已经在接收这些事件了。例如,来自以下 Amazon STS API 的事件是变更事件,即使它们以动词开头也是如此Get

    • GetFederationToken

    • GetSessionToken

    有关 Amazon 服务不遵守DescribeGetList命名约定的只读管理事件的列表,请参阅Amazon 服务生成的管理事件

使用 Amazon CLI 创建接收只读管理事件的规则
  • 使用 put-rule 命令创建或更新规则,同时使用参数执行以下操作:

    • 指定规则属于默认事件总线或特定的自定义事件总线

    • 将规则状态设置为 ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS

    aws events put-rule --name "ruleForManagementEvents" --event-bus-name "default" --state "ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS"

注意

仅支持通过 Amazon CLI 和 Amazon CloudFormation 模板为 CloudWatch 管理事件启用规则。

以下示例说明了如何匹配特定事件。最佳实践是定义一个用于匹配特定事件的专用规则,这样既清晰又便于编辑。

在这种情况下,专用规则与来自的AssumeRole管理事件相匹配 Amazon Security Token Service。

{ "source" : [ "aws.sts" ], "detail-type": ["AWS API Call via CloudTrail"], "detail" : { "eventName" : ["AssumeRole"] } }