某個 Lambda 函數會處理來自 Amazon SQS 標準佇列的訊息 (批次大小為 10),並將結果寫入 S3。第一天,訊息抵達速度超過處理速度,且許多排入佇列的訊息包含無效資料,導致有效訊息錯過所需的處理期限。哪項變更可確保有效訊息符合其時程?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 保持 Lambda 批次大小不變。設定 Lambda 函數以報告失敗的批次項目,以便將個別失敗的訊息傳回佇列。為失敗的訊息設定 SQS dead-letter queue。.
為什麼這是答案
正確答案透過設定 Lambda 函數報告批次項目失敗,確保只有失敗的個別訊息會被傳回佇列,而不是整個批次。這能讓有效訊息繼續處理,避免因少數無效訊息而延遲整個批次。同時,為失敗訊息設定 SQS dead-letter queue (DLQ) 可隔離這些訊息進行後續分析和處理,防止它們無限期地重新處理並阻礙佇列。 增加 Lambda 批次大小會加劇問題,因為一個無效訊息會導致更多有效訊息被延遲。將 SQS 轉換為 FIFO 佇列無法解決無效訊息導致處理延遲的問題,且 FIFO 佇列有其自身的吞吐量限制。請求更高的 Lambda 並行配額僅能增加處理能力,但若無效訊息仍導致整個批次重試,則無法根本解決問題。 減少 Lambda 批次大小雖然能減少單一無效訊息影響的有效訊息數量,但會增加 Lambda 呼叫次數,可能導致成本上升和整體吞吐量下降。增加 SQS 訊息輸送量配額與此問題無關。 啟用 S3 Transfer Acceleration 與處理邏輯無關。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡