Amazon Simple Notification Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 4:模拟问题并重播事件以进行恢复

步骤 1:启用模拟的问题并发送第二个 API 请求

  1. 登录 AWS Lambda 控制台

  2. 在导航面板上,选择 Functions (函数)

  3. 搜索 serverlessrepo-fork-example 并选择 CheckoutFunction

  4. fork-example-ecommerce-my-app-CheckoutFunction-ABCDEF... 页面上的 Environment variables (环境变量) 部分中,将 BUG_ENABLED 变量设置为 true,然后选择 Save (保存)

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

    { "id": 9917, "date": "2019-03-26T21:11:10-08:00", "status": "confirmed", "customer": { "id": 56999, "name": "Marcia Oliveira", "email": "marcia.oliveira@example.com" }, "payment": { "id": 3311, "amount": 75.00, "currency": "usd", "method": "credit", "card-network": "mastercard", "card-number": "1234 5678 9012 3456", "card-expiry": "12/2025", "card-owner": "Marcia Oliveira", "card-cvv": "321" }, "shipping": { "id": 9900, "time": 20, "unit": "days", "method": "plane" }, "items": [{ "id": 9993, "product": 3120, "name": "Hockey Stick", "quantity": 1, "price": 75.00, "subtotal": 75.00 }] }
  6. 要将 HTTPS 请求发送到您的 API 终端节点,请通过执行 curl 命令来将示例事件负载作为输入传递,例如:

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

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

    { }

步骤 2:验证模拟数据损坏

  1. 登录 Amazon DynamoDB 控制台

  2. 在导航面板上,选择 Tables (表)

  3. 搜索 serverlessrepo-fork-example 并选择 CheckoutTable

  4. 在表详细信息页面上,选择 Items (项目),然后选择已创建的项目。

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

步骤 3:禁用模拟的问题

  1. 登录 AWS Lambda 控制台

  2. 在导航面板上,选择 Functions (函数)

  3. 搜索 serverlessrepo-fork-example 并选择 CheckoutFunction

  4. fork-example-ecommerce-my-app-CheckoutFunction-ABCDEF... 页面上的 Environment variables (环境变量) 部分中,将 BUG_ENABLED 变量设置为 false,然后选择 Save (保存)

步骤 4:启用重播以从问题中恢复

  1. 在 AWS Lambda 控制台中的导航面板上,选择 Functions (函数)

  2. 搜索 serverlessrepo-fork-example 并选择 ReplayFunction

  3. 展开 Designer 部分,选择 SQS 磁贴,然后在 SQS 部分中,选择 Enabled (启用)

    注意

    启用 Amazon SQS 事件源触发器大约需要 1 分钟。

  4. 选择 Save (保存)

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

  6. 要禁用重播,请返回到 AWS Lambda 控制台并为 ReplayFunction 禁用 Amazon SQS 事件源触发器。