某個 Lambda 函數從 Kinesis 資料串流讀取記錄,並將其轉發到舊版 REST API。大約 10% 的記錄有資料錯誤,需要手動處理。該 Lambda 設定了 SQS dead-letter queue 作為失敗時的目的地,以批次處理記錄,並具有重試邏輯。在測試期間,許多沒有錯誤且已處理的記錄出現在 DLQ 中。哪一個事件來源選項的變更將減少最終進入 DLQ 的無錯誤記錄數量?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 啟用發生錯誤時分割批次(以便隔離失敗的記錄)。.
為什麼這是答案
當 Lambda 函數處理 Kinesis 串流的批次記錄時,如果批次中任何一筆記錄處理失敗,整個批次都會被視為失敗,並可能被發送到 DLQ。啟用「發生錯誤時分割批次」選項 (Split batch on error) 後,如果批次處理失敗,Kinesis 事件來源會將該批次分割成較小的子批次,並重新嘗試處理。這個過程會持續進行,直到找到導致失敗的單一記錄或最小記錄集,從而將失敗的範圍縮小到僅包含有問題的記錄。這樣可以確保只有實際有錯誤的記錄最終進入 DLQ,而批次中其他無錯誤的記錄則能成功處理,顯著減少 DLQ 中無錯誤記錄的數量。 增加重試次數只會延遲無錯誤記錄進入 DLQ 的時間,因為最終整個批次仍會失敗。增加每個分片的並行批次數量會增加處理能力,但不會解決批次中單一錯誤導致整個批次失敗的問題。減少記錄的最大保留時間與此問題無關。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡