一家影像處理公司有一個將影像上傳到 Amazon S3 儲存桶的網路應用程式。S3 事件通知會將物件建立事件發佈到 Amazon Simple Queue Service (Amazon SQS) 標準佇列。SQS 佇列是 AWS Lambda 函數的事件來源,該函數會處理影像並將結果透過電子郵件發送給使用者。使用者回報每個上傳的影像會收到多封電子郵件。解決方案架構師發現 SQS 訊息多次叫用 Lambda 函數,導致電子郵件重複。解決方案架構師應該怎麼做才能以最少的操作負擔解決此問題?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 將 SQS 佇列中的可見性逾時增加到大於函數逾時和批次視窗逾時總和的值。.
為什麼這是答案
正確答案是增加 SQS 佇列的可見性逾時。當 Lambda 函數從 SQS 接收訊息時,該訊息會變得不可見,以防止其他消費者處理它。如果 Lambda 函數在可見性逾時到期之前未能成功處理並刪除訊息,SQS 會將訊息重新放回佇列,導致 Lambda 函數再次處理該訊息,從而發送重複的電子郵件。將可見性逾時設定為大於 Lambda 函數執行時間和批次視窗的總和,可確保函數有足夠的時間處理訊息並將其刪除,從而避免重複處理。 長輪詢(選項 A)可以減少空接收次數並降低成本,但不能解決重複處理的問題。將標準佇列變更為 FIFO 佇列(選項 B)可以確保訊息的順序和去重複,但操作負擔較大,且對於此問題,調整可見性逾時是更直接且操作負擔較小的解決方案。在處理之前立即刪除訊息(選項 D)是錯誤的做法,因為如果 Lambda 函數在刪除後但在處理完成前失敗,訊息將會丟失。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡