

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

# 教程：在 Amazon EventBridge 中归档并重播事件
<a name="eb-tutorial-archive-replay"></a>

您可以使用 EventBridge，通过[规则](eb-rules.md)将[事件](eb-events.md)路由到特定 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 函数。

在本教程中，您将使用 Lambda 控制台创建一个函数，用作 EventBridge 规则的目标。然后，您将创建一个[存档](eb-archive-event.md)和一条规则，使用 EventBridge 控制台存档测试事件。该存档中有事件后，您将[重放](eb-replay-archived-event.md)它们。

**Topics**
+ [第 1 步：创建 Lambda 函数](#eb-create-lambda-function)
+ [步骤 2：创建存档](#eb-ar-create-archive)
+ [步骤 3：创建规则](#eb-ar-create-rule)
+ [步骤 4：发送测试事件](#eb-ar-send-test-events)
+ [步骤 5：重放事件](#eb-ar-replay-events)
+ [步骤 6：清除资源](#cleanup)

## 第 1 步：创建 Lambda 函数
<a name="eb-create-lambda-function"></a>

首先，创建 Lambda 函数以记录事件。

**创建 Lambda 函数：**

1. 打开 AWS Lambda 控制台，地址：[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. 选择**创建函数**。

1. 选择**从头开始创作**。

1. 输入 Lambda 函数的名称和说明。例如，将函数命名为 `LogScheduledEvent`。

1. 将其余选项保留为默认值，然后选择**创建函数**。

1. 在函数页面的**代码**选项卡上，双击 **index.js**。

1. 使用以下代码替换现有 JavaScript 代码：

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogScheduledEvent');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. 选择**部署**。

## 步骤 2：创建存档
<a name="eb-ar-create-archive"></a>

接下来，创建存档以保存所有测试事件。

**创建存档**

1. 访问 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)，打开 Amazon EventBridge 控制台。

1. 在导航窗格中，选择**存档**。

1. 选择**创建存档**。

1. 输入存档的名称和说明。例如，将存档命名为 `ArchiveTest`。

1. 将其余选项保留为默认值，然后选择**下一步**。

1. 选择**创建存档**。

## 步骤 3：创建规则
<a name="eb-ar-create-rule"></a>

创建规则，用于存档发送到事件总线的事件。

**创建规则**

1. 打开位于 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 的 Amazon EventBridge 控制台。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**。

1. 为规则输入名称和描述。例如，将规则命名为 `ARTestRule`。

   规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。

1. 对于**事件总线**，请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发，请选择**默认**。当您账户中的某个 AWS 服务发出一个事件时，它始终会发送到您账户的默认事件总线。

1. 对于**规则类型**，选择**具有事件模式的规则**。

1. 选择**下一步**。

1. 对于**事件源**，选择**其他**。

1. 对于**事件模式**，输入以下代码：

   ```
   {
     "detail-type": [
       "customerCreated"
     ]
   }
   ```

1. 选择**下一步**。

1. 对于**目标类型**，选择**AWS 服务**。

1. 对于**选择目标**，从下拉列表中选择 **Lambda 函数**。

1. 在**函数**中，选择您在**步骤 1：创建 Lambda 函数**部分创建的 Lambda 函数。在此示例中，选择 `LogScheduledEvent`。

1. 选择**下一步**。

1. 选择**下一步**。

1. 查看规则详细信息并选择**创建规则**。

## 步骤 4：发送测试事件
<a name="eb-ar-send-test-events"></a>

现在，您已经设置了存档和规则，我们将发送测试事件，以确保存档可正常运行。

**注意**  
事件可能需要一些时间才能进入存档。

**发送测试事件（控制台）**

1. 访问 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)，打开 Amazon EventBridge 控制台。

1. 在导航窗格中，选择 **Event Buses (事件总线)**。

1. 在**默认事件总线**图块中，选择**操作**、**发送事件**。

1. 输入事件源。例如 `TestEvent`。

1. 在**详细信息类型**中，输入 `customerCreated`。

1. 在**事件详细信息**中，输入 `{}`。

1. 选择**发送**。

## 步骤 5：重放事件
<a name="eb-ar-replay-events"></a>

测试事件进入存档后，您可以重放它们。

**重放存档的事件（控制台）**

1. 访问 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)，打开 Amazon EventBridge 控制台。

1. 在导航窗格中，选择**重放**。

1. 选择**启动新的重放**。

1. 输入重放的名称和说明。例如，将重放命名为 `ReplayTest`。

1. 对于**源**，选择您在**步骤 2：创建存档**部分创建的存档。

1. 在**重放时间范围**部分，执行以下操作。

   1.  在**开始时间**中，选择您发送测试事件的日期和发送前的时间。例如，`2021/08/11` 和 `08:00:00`。

   1.  **结束时间**选择当前日期和时间。例如，`2021/08/11` 和 `09:15:00`。

1. 选择**启动重放**。

## 步骤 6：清除资源
<a name="cleanup"></a>

除非您想要保留为本教程创建的资源，否则可立即将其删除。请删除您不再使用的 AWS 资源，这样可防止您的 AWS 账户产生不必要的费用。

**删除 Lambda 函数**

1. 打开 Lamba 控制台的[函数页面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 选择您创建的函数。

1. 依次选择 **Actions** 和 **Delete**。

1. 选择**删除**。

**删除 EventBridge 存档**

1. 在 EventBridge 控制台中打开[存档页面](https://console.aws.amazon.com/events/home#/archives)。

1. 选择您创建的存档。

1. 选择**删除**。

1. 输入存档名称，然后选择**删除**。

**删除 EventBridge 规则**

1. 在 EventBridge 控制台中打开[规则页面](https://console.aws.amazon.com/events/home#/rules)。

1. 选择您创建的规则。

1. 选择 **Delete**。

1. 选择 **Delete**。