本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 4:模拟问题并重播事件以进行恢复
步骤 1:启用模拟的问题并发送第二个 API 请求
-
在导航面板上,选择 Functions (函数)。
-
搜索
serverlessrepo-fork-example
并选择CheckoutFunction
。 -
在-我的
页面的环境变量部分中,将 BUG_ ENABLED 变量设置为 true,然后选择保存。应用程序上 fork-example-ecommerce-ABCDE
FCheckoutFunction... -
将以下 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 }] }
-
要将 HTTPS 请求发送到您的 API 终端节点,请通过执行
curl
命令来将示例事件负载作为输入传递,例如:curl -d "$(cat test_event_2.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
API 将返回以下空响应,并指示已成功执行:
{ }
步骤 2:验证模拟数据损坏
-
在导航面板上,选择 Tables (表)。
-
搜索
serverlessrepo-fork-example
并选择CheckoutTable
。 -
在表详细信息页面上,选择 Items (项目),然后选择已创建的项目。
将显示存储的属性,其中一些标记为 CORRUPTED! (已损坏!)
步骤 3:禁用模拟的问题
-
在导航面板上,选择 Functions (函数)。
-
搜索
serverlessrepo-fork-example
并选择CheckoutFunction
。 -
在-我的
页面的环境变量部分中,将 BUG_ ENABLED 变量设置为 false,然后选择保存。应用程序上 fork-example-ecommerce-ABCDE
FCheckoutFunction...
步骤 4:启用重播以从问题中恢复
-
在 Amazon Lambda 控制台中的导航面板上,选择 Functions (函数)。
-
搜索
serverlessrepo-fork-example
并选择ReplayFunction
。 -
展开 Designer 部分,选择 SQS 磁贴,然后在 SQS 部分中,选择 Enabled (启用)。
注意
启用 Amazon SQS 事件源触发器大约需要 1 分钟。
-
选择保存。
-
要查看已恢复的属性,请返回到 Amazon DynamoDB 控制台。
-
要禁用重播,请返回到 Amazon Lambda 控制台并为
ReplayFunction
禁用 Amazon SQS事件源触发器。