步驟 4:模擬問題並重播事件以進行復原 - Amazon Simple Notification Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 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, "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 主控台的導覽面板上,選擇函數

  2. 搜尋 serverlessrepo-fork-example 並選擇 ReplayFunction

  3. 展開 Designer (設計工具) 區段,選擇 SQS 圖磚,然後在 SQS 區段中選擇 Enabled (已啟用)

    注意

    需要大約 1 分鐘,Amazon SQS 事件來源觸發才會啟用。

  4. 選擇 Save (儲存)。

  5. 若要查看復原的屬性,請返回 Amazon DynamoDB 主控台。

  6. 若要停用重播,請返回 AWS Lambda 主控台並停用 的 Amazon SQS 事件來源觸發ReplayFunction