為什麼我的 Amazon SNS 主題沒有收到 EventBridge 通知?

2 分的閱讀內容
0

我設定 Amazon EventBridge 規則,以傳送通知到 Amazon Simple Notification Service (Amazon SNS) 主題。為什麼我的 Amazon SNS 主題沒有收到事件通知?

解決方案

確認 EventBridge 規則的目標位於與規則相同的 AWS 區域

您與規則建立關聯的目標必須與規則位於相同的區域中。

**注意:**若要查看 AWS 資源所在的區域,請檢閱資源的 Amazon 資源名稱 (ARN)

檢閱 EventBridge 規則的 "Invocations" 和 "FailedInvocations" 指標,以確認問題的原因

CloudWatch 主控台中,檢閱 EventBridge 規則的 InvocationsFailedInvocations 指標

如果這兩個指標都有資料點,EventBridge 規則通知會嘗試叫用目標,可是叫用失敗。若要解決此問題,您必須授與 EventBridge 必要的許可,才能將訊息發佈至您的主題。如需指示,請參閱本文的確認您已授與 EventBridge 將訊息發佈至主題的必要許可一節。

如果只有 Invocations 指標的資料點,則 EventBridge 規則通知並未到達目標。如果要解決這個問題,請修正目標上的設定錯誤

如需詳細資訊,請參閱《CloudWatch 使用者指南》中的檢視可用的指標

確認您已授與 EventBridge 將訊息發佈至主題的必要許可

您 Amazon SNS 主題的基於資源的政策必須允許 EventBridge 將訊息發佈至主題。檢閱您主題的 AWS Identity and Access Management (IAM) 政策,確認其具有必要的許可,並視需要新增。

重要:"events.amazonaws.com" 必須列為 "Service" 值,"sns:Publish" 必須列為 "Action" 值。

若要新增所需的許可,請參閱我的規則會執行,但我沒看到任何訊息發佈到我的 Amazon SNS 主題

允許 EventBridge 發佈訊息至 Amazon SNS 主題的 IAM 許可聲明範例

{
  "Sid": "AWSEvents_ArticleEvent_Id4950650036948",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": "sns:Publish",
  "Resource": "arn:aws:sns:us-east-1:123456789012:My_SNS_Topic"
}

(適用於已啟用伺服器端加密 (SSE) 的主題) 確認您的主題有所需的 AWS Key Management Service (AWS KMS) 許可

您的 Amazon SNS 主題必須使用屬於客戶受管的 AWS KMS key。此 AWS KMS key 必須包含自訂金鑰政策,以授予 EventBridge 足夠的金鑰使用許可。

若要設定必要的 AWS KMS 許可,請執行下列動作:

1.    建立屬於客戶受管的新 AWS KMS key,並包含 EventBridge (events.amazonaws.com) 的必要許可

2.    使用您剛才建立的自訂 AWS KMS key,為您的 Amazon SNS 主題設定 SSE

3.    設定 AWS KMS 許可,允許 EventBridge 將訊息發佈至您的加密主題 (events.amazonaws.com)

允許 EventBridge 將訊息發佈至加密 Amazon SNS 主題的 IAM 政策聲明範例

{
  "Sid": "Allow CWE to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*"
}

相關資訊

開始使用 Amazon EventBridge

AWS 官方
AWS 官方已更新 2 年前