

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

# 在 Amazon 中存档和重播事件 EventBridge
<a name="eb-archive"></a>

在中 EventBridge，您可以创建事件存档，以便稍后可以轻松地*重播*或将它们重新发送到最初接收它们的事件总线。例如，您可能希望重放事件来从错误中恢复，或验证应用程序中的新功能。

## 存档事件
<a name="eb-archive-archive"></a>

创建归档时，您可以指定以下内容：
+ 要发送至归档的事件。

  您可以指定事件模式，以便在筛选发送 EventBridge 到存档的事件时使用。
+ 事件在归档中的保留时长。

  您可以指定事件在归档中的保留天数。默认情况下，将事件无限期地 EventBridge 存储在档案中。

每个归档仅接收来自单个*源*事件总线的事件。创建归档后，便无法更改其源事件总线。不过，您可以为给定事件总线创建多个归档。

![\[事件会依据事件模式进行筛选并发送至归档，后续可从该归档中重播这些事件。\]](http://docs.amazonaws.cn/eventbridge/latest/userguide/images/archive_eventbridge_conceptual.svg)


EventBridge 档案需收费。有关详情，请参阅 [Amazon EventBridge 定价](https://www.amazonaws.cn/eventbridge/pricing/)。

### 加密归档事件
<a name="eb-archive-encryption"></a>

默认情况下，使用[Amazon 自有的 CMK](https://docs.amazonaws.cn//kms/latest/developerguide/concepts.html#aws-owned-cmk) 下的 256 位高级加密标准 (AES-256) EventBridge 对存档中的事件数据进行加密，这有助于保护您的数据免遭未经授权的访问。

### 事件传送
<a name="eb-archive-timing"></a>

关于如何将事件 EventBridge 传送到存档，请记住以下注意事项：
+ 事件总线接收事件与事件到达归档之间可能存在延迟。我们建议您将重放存档事件延迟 10 分钟，以确保重放所有事件。
+ [https://docs.amazonaws.cn/eventbridge/latest/APIReference/API_DescribeArchive.html](https://docs.amazonaws.cn/eventbridge/latest/APIReference/API_DescribeArchive.html) 操作的 `EventCount` 和 `SizeBytes` 值的协调周期为 24 小时。因此，任何最近过期或新归档的事件可能不会反映在这些值中。

### 阻止将重播事件传送至归档
<a name="eb-archive-managed-rule"></a>

创建档案时， EventBridge 会在源事件总线上生成一条[托管规则](eb-rules.md#eb-rules-managed)，防止将重播的事件发送到存档。托管规则添加了以下事件模式，该模式根据事件是否包含`replay-name`字段来筛选事件。 （在重播事件时将此字段EventBridge添加到事件中。）

```
{
  "replay-name": [{
    "exists": false
  }]
}
```

## 从归档中重播事件
<a name="eb-archive-replay"></a>

创建存档后，您可以重放存档中的事件。例如，如果您使用其他功能更新应用程序，则可以重放历史事件，以确保重新处理该事件，以保持应用程序的一致性。您还可使用存档，为新功能重放事件。

从归档中重播事件时，需指定以下内容：
+ 用于筛选待重播事件的时间范围。
+ （可选）事件总线上的特定规则， EventBridge 应将所选事件重播到该总线。

归档事件只能重播到源事件总线。

每个 Amazon 区域的每个账户最多可以有十个活跃的并发重播。

重播事件不会将其从归档中移除。您可以在多个重播中重播事件。 EventBridge 仅当事件超过存档保留期时才会将其删除，或者您删除存档本身。

EventBridge 90 天后删除重播。

当重播状态为 `Starting` 或 `Running` 时，您可以取消重播。有关更多信息，请参阅 [取消事件重播](eb-replay-cancel.md)。

### 识别已重播的事件
<a name="eb-archive-replay-event-transform"></a>

在重播期间，当 EventBridge 将事件从存档发送到源事件总线时，它会在事件中添加一个包含重播名称的元数据字段。`replay-name`当重播事件传送到目标时，您可以使用此字段来识别这些事件。

EventBridge 还使用此字段来确保重播的事件不会发送到存档。

### 从归档中重播事件的注意事项
<a name="eb-archive-replay-considerations"></a>

从归档中重播事件时，需谨记以下注意事项：
+ 事件总线接收事件与事件到达归档之间可能存在延迟。我们建议您将重放存档事件延迟 10 分钟，以确保重放所有事件。
+ 事件的重放顺序不一定要与添加到存档中的顺序相同。重放根据事件中的时间处理要重放的事件，并以一分钟的间隔进行重放。如果您指定了涵盖 20 分钟时间范围的事件开始时间和事件结束时间，会首先从该 20 分钟范围的第一分钟开始重放事件。然后重放第二分钟的事件。
+ 您可以使用 EventBridge API 的`DescribeReplay`操作来确定重播的进度。 `EventLastReplayedTime`返回上次重播事件的时间戳。
+ 事件的重播基于 Amazon 账户的每秒`PutEvents`交易限制，但与该限制是分开的。您可以申请提高限额 PutEvents。有关更多信息，请参阅 [Amazon EventBridge 配额](https://docs.amazonaws.cn/eventbridge/latest/userguide/cloudwatch-limits-eventbridge.html)。