AWS 無伺服器錯誤處理:以 SQS 作為事件源
以 AWS SQS 作為事件源進行錯誤處理
如果 Amazon SQS 呼叫失敗或超時,訊息仍然可見。
Lambda 會繼續重試該訊息,直到成功或佇列達到其接收限制。
為被拒絕的訊息設定死信佇列是一個好習慣。
需要進行效能測試以找到適合您操作的良好解決方案。
AWS SQS 與 Lambda
在 Lambda 函式上,您可以指定超時。
在 SQS 佇列上,您可以定義可見性超時。
您還可以定義佇列的批處理大小,每批一到十條訊息。
批處理大小會影響您的函式和可見性超時設定。
對於快速處理,較大的批處理大小可以提高效率。
對於較長的處理,較小的批處理大小可能更好。
以 AWS SQS 作為事件源進行錯誤處理影片
W3schools.com 與 Amazon Web Services 合作,為我們的學生提供數字培訓內容。
AWS SQS 錯誤處理的工作原理
如果您的函式每 1 秒處理一條訊息,那麼 10 條訊息的批處理將需要 10 秒才能完成。
在這種情況下,您可以使用 20 秒的超時。
如果一個函式每 2 分鐘處理一條訊息,則相同的批處理將需要 20 分鐘才能完成。
由於 Lambda 的最大超時為 15 分鐘,因此該批處理將在未處理所有訊息的情況下終止。
未處理的訊息將重新出現在佇列中。
訊息可見性
您必須設定可見性超時,以便為 Lambda 函式提供足夠的時間來完成訊息批處理。
當函式被節流時,您在可見性超時中提供一些緩衝區以適應 Lambda 呼叫重試。
建議將可見性超時設定為函式超時的 6 倍。