跳至內容

為什麼我的 Amazon Q Developer 無法接收到來自 Amazon SNS 的訊息?

3 分的閱讀內容
0

我在聊天應用程式中訂閱了 Amazon Q Developer (先前稱為 AWS Chatbot) 到 Amazon Simple Notification Service (Amazon SNS) 主題。但是,來自我的 Amazon SNS 主題的通知並未傳送到 Amazon Q Developer。

簡短描述

您的 Amazon SNS 主題通知未到達 Amazon Q Developer,可能是以下其中一個原因造成的:

  • Amazon Q Developer 和 Slack 頻道之間的通訊頻道設定錯誤。
  • SNS 主題和 Amazon Q Developer 之間的通訊頻道設定錯誤。

解決方法

啟用 Amazon Q Developer 的 CloudWatch Logs

如果您尚未啟用,請在聊天應用程式中為 Amazon Q Developer 啟用 Amazon CloudWatch Logs,以查看錯誤訊息

確認您是否正確設定了 Amazon Q Developer 和 Slack 頻道之間的通訊頻道

確保 Slack 頻道未封存或刪除

如果 Slack 頻道已封存或刪除,則該頻道將無法接收訊息,且 Slack 會停用所有應用程式。

若要取消封存頻道,請參閱 Slack 網站上的封存或刪除頻道

**注意:**您無法還原已刪除的 Slack 頻道。如果已訂閱的 Slack 頻道遭到刪除,請建立新的 Slack 頻道,然後設定新頻道以接收來自您主題的通知

確認您是否在 Slack 工作區中安裝了聊天應用程式

檢查聊天應用程式 CloudWatch Logs 中是否存在 "account_inactive" 錯誤訊息。如果您發現 "account_inactive" 錯誤訊息,則表示您的聊天應用程式未安裝在 Slack 工作區上。

若要在您的 Slack 工作區上安裝聊天應用程式,請按照教學課程: Slack 入門中的說明進行操作。

(僅適用於私有 Slack 頻道) 確認您是否已將聊天應用程式新增至 Slack 頻道

檢查聊天應用程式 CloudWatch Logs 中是否存在 "channel_not_found" 錯誤訊息。如果您未將聊天應用程式新增至私有頻道,就會出現此錯誤訊息。

若要將 Amazon Q Developer 新增至私有 Slack 頻道,請在私有頻道中執行 /invite @Amazon Q 命令。

(適用於 Slack、Amazon Chime 和 Microsoft Teams)

確認您是否正確設定了 SNS 主題和 Amazon Q Developer 之間的通訊頻道。

確認您是否已將 Amazon Q Developer 訂閱到 Amazon SNS 主題

請完成下列步驟:

  1. 開啟 Amazon Q Developer console (Amazon Q Developer 主控台)。
  2. 在導覽窗格中的 Configured clients (已設定的用戶端) 下,選擇 SlackAmazon ChimeMicrosoft Teams
  3. Slack workspace configuration (Slack 工作區組態) 中選取您的 Slack 頻道,在 Amazon Chime webhooks 清單中選取 Webhook 或您的 Microsoft Teams 頻道。
  4. 選擇 Edit (編輯)。
  5. Details (詳細資料) 窗格中的 Topics (主題) 下,尋找您的 SNS 主題。如果主題未列出,請將您的 SNS 主題訂閱至 Amazon Q Developer

確認您是否將 Amazon Q Developer 端點列為 Amazon SNS 主題的主題訂閱

請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Topics (主題),然後選取您 SNS 主題的名稱。
  3. Subscriptions (訂閱) 下,請尋找以下 Amazon Q Developer 端點:https://global.sns-api.chatbot.amazonaws.com。如果 Amazon Q Developer 端點未列為主題訂閱,則您必須將 SNS 主題訂閱到 Amazon Q Developer
    注意:使用您的 Amazon Q Developer 組態傳送測試通知

請確認您沒有從 SNS 主題手動發佈不支援格式的訊息到 Amazon Q Developer

Amazon Q Developer 支援手動發佈到 SNS 主題的訊息。但是,訊息的格式必須與 Amazon Q Developer 相容。任何設定為傳送訊息的服務,都必須透過 Amazon Q Developer 支援的服務,將 Amazon SNS 通知傳送給 Amazon Q Developer。

確認 Amazon Q Developer 是否支援發佈到您 Amazon SNS 主題的 AWS 服務訊息

檢查聊天應用程式 CloudWatch Logs 中是否存在 "Event Received is not supported" 錯誤訊息。如果您看到 "Event Received is not supported" 錯誤訊息,則表示 Amazon Q Developer 不支援發佈到您主題的 AWS 服務訊息。

如需 Amazon Q Developer 支援的 AWS 服務清單,請參閱在聊天應用程式中使用 Amazon Q Developer 監控 AWS 服務

確保您的 Amazon SNS 主題授予其他 AWS 服務發佈訊息所需的權限

請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Topics (主題)。
  3. 選取您訂閱 Amazon Q Developer 的 SNS 主題。
  4. 選擇 Access policy (存取政策) 索引標籤。
  5. 查看存取政策的 Statement (聲明) 區段。確保該政策允許正確的 AWS 服務執行 SNS:Publish API 動作。
  6. 如果您的 Amazon SNS 存取政策未允許正確的 AWS 服務向您的主題發佈事件,請更新該政策:
    在主題頁面的 Details (詳細資料) 區段中,選擇 Edit (編輯)。
    展開 Access policy (存取政策) 區段,然後新增正確的存取控制

**注意:**如需 Amazon SNS 存取政策的範例,請參閱設定 Amazon SNS 主題以接收通知

確認您的 Amazon SNS 主題未啟用原始訊息傳送

Amazon Q Developer 不接受原始訊息交付。若要確認您的 SNS 主題是否未啟用原始訊息交付,請完成以下步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Topics (主題),然後選取您 SNS 主題的名稱。
  3. Details (詳細資料) 窗格中,檢查 Raw message delivery (原始訊息交付) 的狀態是已啟用還是已停用
  4. 如果狀態為已啟用,則執行下列動作:
    選擇 Edit (編輯)。
    取消勾選 Enable raw message delivery (啟用原始訊息交付) 以關閉原始訊息交付功能。
    選擇 Save changes (儲存變更)。

確認您包含所需的 AWS KMS 金鑰政策權限

**注意:**此檢查僅適用於已啟用伺服器端加密的 SNS 主題。

您的 AWS Key Management Service (AWS KMS) 金鑰政策必須允許傳送訊息的服務發佈向您加密的 SNS 主題發佈訊息。

您的 AWS KMS 金鑰政策必須包含以下部分:

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

**重要:**將 events.amazonaws.com 替換為發佈加密 SNS 主題之服務的 AWS 服務主體

請確認 AWS 服務發佈到您 Amazon SNS 主題的訊息頻率不超過每秒 10 則通知

Amazon Q Developer 允許每秒最多 10 筆事件。如果 Amazon Q Developer 每秒接收到超過 10 筆事件,則額外的訊息會受到限流。

若要檢查是否存在限流的事件,請查看 CloudWatch Logs for Amazon Q Developer 中的 EventsThrottled 指標。

(對於 Amazon EventBridge) 確保 EventBridge 支援 AWS 服務傳送到您 Amazon Q Developer 用戶端目的地的事件通知

使用 EventBridge 輸入轉換器產生自訂通知,然後將通知轉送到 SNS 主題。使用 Amazon Q Developer 監控 SNS 主題,並將通知傳送至已設定的 Microsoft Teams、Amazon Chime 或 Slack 頻道。Amazon Q Developer 自訂通知必須遵循事件結構描述格式。

如需詳細資訊,請參閱聊天應用程式中支援 Amazon Q Developer 的服務

相關資訊

對聊天頻道中的 Amazon Q Developer 進行疑難排解

如何使用 Webhook 將 Amazon SNS 訊息發佈到 Amazon Chime、Slack 或 Microsoft Teams?

AWS 官方已更新 4 個月前