在 Amazon EventBridge 中归档和重播事件
在 EventBridge 中,您可以创建事件归档,以便后续能够轻松重播这些事件,或者将其重新发送到最初接收它们的事件总线。例如,您可能希望重播事件来从错误中恢复,或验证应用程序中的新功能。
存档事件
创建归档时,您可以指定以下内容:
要发送至归档的事件。
您可以指定一个事件模式,供 EventBridge 在筛选发送至归档的事件时使用。
事件在归档中的保留时长。
您可以指定事件在归档中的保留天数。默认情况下,EventBridge 会将事件永久存储在归档中。
每个归档仅接收来自单个源事件总线的事件。创建归档后,便无法更改其源事件总线。不过,您可以为给定事件总线创建多个归档。
EventBridge 归档服务会产生费用。有关详情,请参阅 Amazon EventBridge 定价
加密归档事件
默认情况下,EventBridge 使用 Amazon 拥有的 CMK,使用 256 位高级加密标准 (AES-256) 加密存档中的事件数据,这样有助于保护您的数据,防止未经授权的访问。
事件传送
关于 EventBridge 如何将事件传送到归档,需谨记以下注意事项:
事件总线接收事件与事件到达归档之间可能存在延迟。我们建议您将重放存档事件延迟 10 分钟,以确保重放所有事件。
DescribeArchive操作的EventCount和SizeBytes值的协调周期为 24 小时。因此,任何最近过期或新归档的事件可能不会反映在这些值中。
阻止将重播事件传送至归档
创建归档时,EventBridge 会在源事件总线上生成一条托管规则,以阻止重播事件传送至归档。该托管规则会添加以下事件模式,根据事件是否包含 replay-name 字段来进行筛选。(EventBridge 在重播事件时,会为事件添加此字段。)
{ "replay-name": [{ "exists": false }] }
从归档中重播事件
创建存档后,您可以重放存档中的事件。例如,如果您使用其他功能更新应用程序,则可以重放历史事件,以确保重新处理该事件,以保持应用程序的一致性。您还可使用存档,为新功能重放事件。
从归档中重播事件时,需指定以下内容:
用于筛选待重播事件的时间范围。
(可选)事件总线上的特定规则(EventBridge 应将所选事件重播到该总线)。
归档事件只能重播到源事件总线。
每个 Amazon 区域的每个账户最多可以有 10 个处于活动状态的并发重播。
重播事件不会将其从归档中移除。您可以在多次重播操作中重播同一组事件。仅当事件超过归档保留期,或者您删除归档本身时,EventBridge 才会移除这些事件。
EventBridge 会在 90 天后删除重播记录。
当重播状态为 Starting 或 Running 时,您可以取消重播。有关更多信息,请参阅 取消事件重播。
识别已重播的事件
在重播期间,当 EventBridge 将事件从归档发送到源事件总线时,会为该事件添加一个包含重播名称的元数据字段 replay-name。当重播事件传送到目标时,您可以使用此字段来识别这些事件。
EventBridge 还使用此字段来确保重播事件不会再次发送到归档。
从归档中重播事件的注意事项
从归档中重播事件时,需谨记以下注意事项:
事件总线接收事件与事件到达归档之间可能存在延迟。我们建议您将重放存档事件延迟 10 分钟,以确保重放所有事件。
事件的重放顺序不一定要与添加到存档中的顺序相同。重放根据事件中的时间处理要重放的事件,并以一分钟的间隔进行重放。如果您指定了涵盖 20 分钟时间范围的事件开始时间和事件结束时间,会首先从该 20 分钟范围的第一分钟开始重放事件。然后重放第二分钟的事件。
您可以使用 EventBridge API 的
DescribeReplay操作来确定重放的进度。EventLastReplayedTime可返回上次重放事件的时间戳。事件的重放基于 Amazon 账户的每秒
PutEvents事务限制,但与该限制是分开的。您可以请求提高 PutEvents 的限制。有关更多信息,请参阅 Amazon EventBridge 配额。