我想要將無效字母佇列 (DLQ) 與 Amazon EventBridge 規則的目標建立關聯,以對 FailedInvocations 指標的問題進行疑難排解。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
建立標準 Amazon SQS 佇列
使用 Amazon Simple Queue Service (Amazon SQS) 主控台建立 SQS 佇列。
請完成下列步驟:
- 開啟 Amazon SQS console (Amazon SQS 主控台)。
- 選擇 Create queue (建立佇列)。
- 在 Type (類型) 中,選擇 Standard (標準) 佇列類型。
- 輸入佇列的名稱,例如 myEventBridgeDLQ。
- 選擇 Create queue (建立佇列)。
將 SQS 佇列與 EventBridge 規則的目標建立關聯
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選取調用目標失敗的 EventBridge 規則,然後選擇 Edit (編輯)。
- 在導覽窗格中,選擇 Select target(s) (選取目標),然後選擇 Additional settings (其他設定)。
- 在 Dead-letter queue (無效字母佇列) 中,選擇 Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (在目前 AWS 帳戶中選取 Amazon SQS 佇列作為無效字母佇列)。然後,在 Select an SQS queue (選取 SQS 佇列) 下拉式清單中選取您的 SQS 佇列。
- 選擇 Skip to Review and update (跳至檢閱並更新)。
- 選擇 Update rule (更新規則)。
EventBridge 必須具有將調用失敗的事件傳送到 SQS 佇列的權限。如果您使用 EventBridge 主控台將 DLQ 與 EventBridge 規則的目標建立關聯,則 EventBridge 會自動新增該權限。如果您使用 AWS CLI、AWS SDK 或 AWS CloudFormation,則必須手動建立授予所需權限的資源型政策。您可以執行 set-queue-attributes 命令來修改政策。
**重要:**如果您加密了 SQS 佇列,則必須建立客戶自管金鑰。您也必須在 AWS Key Management Service (AWS KMS) 金鑰政策中新增下列權限:
{ "Sid": "Allow EventBridge to use the key",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*"
}
如需詳細資訊,請參閱設定 AWS KMS 權限。
將符合您 EventBridge 規則的事件傳送到 EventBridge 事件匯流排
若要將事件傳送至符合事件規則的預設事件匯流排,請變更 AWS 服務事件的 AWS 環境。如果 EventBridge 規則無法調用目標,則 EventBridge 會將所有失敗事件傳送到 DLQ。
若要將符合事件規則的事件傳送到自訂事件匯流排,請使用 PutEvents API 或 put-events 命令。
若要檢查 EventBridge 規則的 FailedInvocations 指標,請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 選取您的 EventBridge 規則,然後選擇 Monitoring (監控) 索引標籤。
- 尋找 MatchedEvents 和 TriggeredRules 以確認規則與事件相符。
- 檢查 Invocations 和 FailedInvocations 以確認該規則已嘗試調用目標。
**注意:**如果指標沒有資料點,請確認您正確設定了規則模式。
擷取 EventBridge 傳送至 DLQ 的失敗事件
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選取調用失敗的 EventBridge 規則。
- 選擇 Targets (目標) 索引標籤,然後選取 DLQ。
- 選擇 Send and receive messages (傳送和接收訊息),以開啟 SQS 主控台上的 Send and receive messages (傳送和接收訊息) 頁面。
- 選擇 Poll for messages (輪詢訊息)。
**注意:**Messages (訊息) 區段會顯示已收到訊息的清單。此清單會顯示每個訊息的訊息 ID、傳送日期、大小和接收數量。
- 選取其中一則訊息。然後,選擇View details (查看詳細資訊),以查看 EventBridge 無法傳送到目標的事件。
- 選擇 Attributes (屬性) 索引標籤,以查看 ERROR_CODE、ERROR_MESSAGE、RULE_ARN 和 TARGET_ARN 屬性。
**注意:**ERROR_CODE 和 ERROR_MESSAGE 屬性提供了事件傳送失敗的原因。
相關資訊
如何對 Amazon EventBridge 規則的問題進行疑難排解?
Amazon SQS 權限