来自 AWS 服务的事件 - Amazon EventBridge

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

来自 AWS 服务的事件

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

通过 AWS 服务交付活动

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • GetFederationToken

    • GetSessionToken

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

使用 AWS 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"

注意

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

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

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

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