本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 4:模擬問題並重播事件以進行復原
步驟 1:啟用模擬問題並傳送第二個 API 請求
-
登入 AWS Lambda 主控台
。 -
在導覽面板上,選擇 Functions (函數)。
-
搜尋
serverlessrepo-fork-example
並選擇CheckoutFunction
。 -
在 fork-example-ecommerce-
my-app
-CheckoutFunction-ABCDEF
... 頁面的 Environment variables (環境變數) 區段中,將 BUG_ENABLED 變數設定為 true,然後選擇 Save (儲存)。 -
將下列 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 }] }
-
若要將 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:停用模擬問題
-
登入 AWS Lambda 主控台
。 -
在導覽面板上,選擇 Functions (函數)。
-
搜尋
serverlessrepo-fork-example
並選擇CheckoutFunction
。 -
在 fork-example-ecommerce-
my-app
-CheckoutFunction-ABCDEF
... 頁面的 Environment variables (環境變數) 區段中,將 BUG_ENABLED 變數設定為 false,然後選擇 Save (儲存)。
步驟 4:啟用重播以從問題中復原
-
在 AWS Lambda 主控台的導覽面板上,選擇函數。
-
搜尋
serverlessrepo-fork-example
並選擇ReplayFunction
。 -
展開 Designer (設計工具) 區段,選擇 SQS 圖磚,然後在 SQS 區段中選擇 Enabled (已啟用)。
注意
需要大約 1 分鐘,Amazon SQS 事件來源觸發才會啟用。
-
選擇 Save (儲存)。
-
若要查看復原的屬性,請返回 Amazon DynamoDB 主控台。
-
若要停用重播,請返回 AWS Lambda 主控台並停用 的 Amazon SQS 事件來源觸發
ReplayFunction
。