跳至內容

如何修改 EventBridge 重試設定,並使用 DLQ 來處理失敗的調用?

2 分的閱讀內容
0

我想修改 Amazon EventBridge 重試政策設定,並為失敗的調用設定無效字母佇列 (DLQ)。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

修改 EventBridge 重試的時間長度

EventBridge 使用指數退避和抖動或隨機延遲的方式,在 24 小時內最多重新傳送事件 185 次。若要避免調用失敗,您可以在目標的重試政策設定中修改 EventBridge 重試的時間長度和次數。

**注意:**EventBridge 會針對傳回 5##4## HTTP 狀態碼的回應重試最多 24 小時。

若要使用 EventBridge 主控台來設定目標的重試政策,請完成下列步驟:

  1. 開啟 EventBridge console (EventBridge 主控台)。
  2. 選取您的 EventBridge 規則。
  3. 選擇 Targets (目標) 索引標籤,然後選擇 Edit (編輯)。
  4. 展開 Additional settings (其他設定) 索引標籤。
  5. Retry attempts (重試次數) 中,輸入自訂值。

**注意:**對於具有多個目標的事件規則,必須為每個目標單獨設定重試政策。

您也可以執行 AWS CLI put-targets 命令或 RetryPolicy API 來設定重試政策。

EventBridge 會以不同的方式處理事件錯誤。例如,當目標沒有必要的權限或目標不再存在時,EventBridge 可能無法傳遞事件。或者,EventBridge 可能不會嘗試重新傳送該事件。反之,EventBridge 可能會刪除該事件或將其傳送至您已設定的 DLQ。

設定 EventBridge DLQ

若要防止因傳送失敗而遺失事件,請設定 EventBridge DLQ。DLQ 會接收所有失敗的事件,以便稍後處理。

**注意:**在為目標設定 DLQ 之前,您必須先建立 Amazon Simple Queue Service (Amazon SQS) 佇列。在 Amazon SQS 佇列政策中,新增 EventBridge 規則調用佇列所需的權限。如果您加密 Amazon SQS 佇列,請將 Decrypt 和 GenerateDataKey 權限新增至 AWS Key Management Service (KMS) 金鑰政策

若要設定 DLQ,請完成下列步驟:

  1. 開啟 EventBridge console (EventBridge 主控台)。
  2. 選取您的 EventBridge 規則。
  3. 選擇 Targets (目標) 索引標籤,然後選擇 Edit (編輯)。
  4. 展開 Additional settings (其他設定) 索引標籤。
  5. Dead-letter queue (無效字母佇列) 區段,根據您的 DLQ SQS 是否位於相同或不同的 AWS 帳戶中,選擇相應的選項。

您也可以執行 AWS CLI put-targets 命令來設定 DLQ。在 DeadLetterConfig 參數,使用 SQS 佇列的 ARN。

從 DLQ 擷取錯誤詳細訊息

若要確認事件規則是否將訊息傳送至 DLQ,請查看 InvocationSentToDLQ 指標。

如果出現訊息,請完成下列步驟:

  1. 開啟 SQS console (SQS 主控台)。
  2. 選擇您用作事件規則之 DLQ 的佇列。
  3. 選擇 Send and receive messages (傳送和接收訊息),然後選擇 Poll for messages (輪詢訊息)。
  4. Messages (訊息) 區段中,開啟訊息。
  5. 選擇 Attributes (屬性) 來決定為何 EventBridge 無法將訊息傳送到目標。
    **注意:**Body (內文) 索引標籤中的資料是當事件未傳送失敗時,EventBridge 傳送給目標的承載。

相關資訊

監控 Amazon EventBridge

EventBridge 指標

AWS 官方已更新 6 個月前