

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

# 步骤 4：模拟问题并重播事件以进行恢复
<a name="simulate-issue-replay-events-for-recovery"></a>

## 步骤 1：启用模拟的问题并发送第二个 API 请求
<a name="enable-simulated-issue-send-second-api-request"></a>

1. 登录 [Amazon Lambda 控制台](https://console.amazonaws.cn/lambda/)。

1. 在导航面板上，选择 **Functions (函数)**。

1. 搜索 `serverlessrepo-fork-example` 并选择 `CheckoutFunction`。

1. 在 **fork-example-ecommerce-{{my-app}}-CheckoutFunction-{{ABCDEF}}...** **页面的**环境变量**部分中，将 **BUG\_** ENABLED 变量设置**为 true**，然后选择保存。**

1. 将以下 JSON 复制到名为 `test_event_2.json` 的文件中。

   ```
   {
   	   "id": 9917,
   	   "date": "2019-03-26T21:11:10-08:00",
   	   "status": "confirmed",
   	   "customer": {
   	      "id": 56999,
   "quantity": 1,
   	      "price": 75.00,
   	      "subtotal": 75.00
   	   }]
   	}
   ```

1. 要将 HTTPS 请求发送到您的 API 端点，请通过执行 `curl` 命令来将示例事件负载作为输入传递，例如：

   ```
   curl -d "$(cat test_event_2.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
   ```

   API 将返回以下空响应，并指示已成功执行：

   ```
   { }
   ```

## 步骤 2：验证模拟数据损坏
<a name="verify-simulated-data-corruption"></a>

1. 登录 [Amazon DynamoDB 控制台](https://console.amazonaws.cn/dynamodb/)。

1. 在导航面板上，选择**表**。

1. 搜索 `serverlessrepo-fork-example` 并选择 `CheckoutTable`。

1. 在表详细信息页面上，选择**项目**，然后选择已创建的项目。

   将显示存储的属性，其中一些标记为 **CORRUPTED\! (已损坏\!)**

## 步骤 3：禁用模拟的问题
<a name="disable-simulated-issue"></a>

1. 登录 [Amazon Lambda 控制台](https://console.amazonaws.cn/lambda/)。

1. 在导航面板上，选择 **Functions (函数)**。

1. 搜索 `serverlessrepo-fork-example` 并选择 `CheckoutFunction`。

1. 在 **fork-example-ecommerce-{{my-app}}-CheckoutFunction-{{ABCDEF}}...** **页面的**环境变量**部分中，将 **BUG\_** ENABLED 变量设置**为 false**，然后选择保存。**

## 步骤 4：启用重播以从问题中恢复
<a name="enable-replay-recover-from-simulated-issue"></a>

1. 在 Amazon Lambda 控制台的导航面板上，选择**功能**。

1. 搜索 `serverlessrepo-fork-example` 并选择 `ReplayFunction`。

1. 展开 **Designer** 部分，选择 **SQS** 磁贴，然后在 **SQS** 部分中，选择 **Enabled (启用)**。
**注意**  
启用 Amazon SQS 事件源触发器大约需要 1 分钟。

1. 选择**保存**。

1. 要查看已恢复的属性，请返回到 Amazon DynamoDB 控制台。

1. 要禁用重播，请返回 Amazon Lambda 控制台并禁用 Amazon SQS 事件源触发器。`ReplayFunction`