スキップしてコンテンツを表示

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 コンソールを開きます。
  2. ナビゲーションペインの [設定済みクライアント][Slack][Amazon Chime]、または [Microsoft Teams] を選択します。
  3. [Slack ワークスペース設定] で目的の Slack チャネルを選択するか、[Amazon Chime ウェブフック] リストで目的のウェブフックを選択するか、目的の [Microsoft Teams] チャネルを選択します。
  4. [編集] を選択します。
  5. [詳細] ペインの [トピック] で目的の SNS トピックを探します。トピックがリストにない場合は、その SNS トピックを Amazon Q Developer にサブスクライブします。

Amazon Q Developer エンドポイントが Amazon SNS トピックのトピックサブスクリプションに含まれているかどうかを確認する

次の手順を実行します。

  1. Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで [トピック] を選択し、目的の SNS トピック名を選択します。
  3. [サブスクリプション] で次の Amazon Q Developer エンドポイントを探します: https://global.sns-api.chatbot.amazonaws.comAmazon 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 コンソールを開きます。
  2. ナビゲーションペインで [トピック] を選択します。
  3. Amazon Q Developer がサブスクライブした対象の SNS トピックを選択します。
  4. [アクセスポリシー] タブを選択します。
  5. アクセスポリシーの [ステートメント] セクションを確認します。このポリシーは、適切な AWS サービスによる SNS:Publish API アクションの実行を許可しているかどうかを確認します。
  6. 現在の Amazon SNS アクセスポリシーでは、適切な AWS サービスがトピックにイベントを発行できない場合は、ポリシーを更新します。
    トピックページの [詳細] セクションで [編集] を選択します。
    [アクセスポリシー] セクションを展開し、適切なアクセス制御を追加します。

注: Amazon SNS アクセスポリシーの例については、「Amazon SNS トピックを設定し、通知を行う」を参照してください。

** Amazon SNS トピックで raw メッセージの配信が有効になっていないかを確認する**

Amazon Q Developer は、raw メッセージの配信を受け付けられません。SNS トピックで raw メッセージの配信が有効になっていないかを確認するには、次の手順を実行します。

  1. Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで [トピック] を選択し、目的の SNS トピック名を選択します。
  3. [詳細] ペインの [raw メッセージの配信] でステータスが enableddisabled のどちらであるかを確認します。
  4. ステータスが enabled になっている場合は、次の手順を実行します。
    [編集] を選択します。
    [raw メッセージの配信を有効にする] を選択解除し、raw メッセージの配信を無効化します。
    [変更を保存] を選択します。

必須の 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 トピックに対し、1 秒あたり 10 件を超える頻度で通知を発行していないかを確認する

Amazon Q Developer では、1 秒あたり 10 件までのイベントが許容されます。Amazon Q Developer が 1 秒あたり 10 件を超えるイベントを受信した場合、追加のメッセージはスロットリングされます。

イベントがスロットリングされていないかを確認するには、Amazon Q Developer の CloudWatch LogsEventsThrottled メトリクスを確認します。

(Amazon EventBridge) EventBridge は、AWS サービスが Amazon Q Developer クライアントの宛先に送信するイベント通知をサポートしていることを確認する

EventBridge 入力トランスフォーマーを使用し、カスタム通知を生成します。次に、その通知を SNS トピックに転送します。SNS トピックをモニタリングし、通知を Amazon Q Developer で設定した Microsoft Teams、Amazon Chime、または Slack チャネルに配信します。Amazon Q Developer のカスタム通知は、イベントスキーマ形式に準拠する必要があります。

詳細については、「チャットアプリケーションの Amazon Q Developer でサポートされるサービス」を参照してください。

関連情報

チャットチャネルで Amazon Q Developer に関するトラブルシューティング

Webhook を使用して Amazon SNS メッセージを Amazon Chime、Slack、または Microsoft Teams に発行する方法を教えてください

AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ