Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
为什么我的 Amazon Q 开发者版未收到来自 Amazon SNS 的消息?
我为聊天应用程序中的 Amazon Q 开发者版(前身为 AWS Chatbot)订阅了我的 Amazon Simple Notification Service (Amazon SNS) 主题。但是,来自我的 Amazon SNS 主题的通知未送达 Amazon Q 开发者版。
简短描述
由于以下原因之一,您的 Amazon SNS 主题的通知未送达 Amazon Q 开发者版:
- Amazon Q 开发者版和 Slack 频道之间的通信通道配置错误。
- SNS 主题与 Amazon Q 开发者版之间的通信通道配置错误。
解决方法
为 Amazon Q 开发者版激活 CloudWatch Logs
如果您尚未这样做,请在聊天应用程序中为 Amazon Q 开发者版激活 Amazon CloudWatch Logs 以查看错误消息。
验证您是否已正确配置 Amazon Q 开发者版和 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 开发者版添加到私人 Slack 频道,请在私人频道中运行 /invite @Amazon Q 命令。
(适用于 Slack、Amazon Chime 和 Microsoft Teams)
验证您是否已正确配置 SNS 主题和 Amazon Q 开发者版之间的通信通道。
验证您是否已将 Amazon Q 开发者版订阅您的 Amazon SNS 主题
完成以下步骤:
- 打开 Amazon Q 开发者版控制台。
- 在导航窗格的 Configured clients(已配置客户端)下,选择 Slack、Amazon Chime 或 Microsoft Teams。
- 在 Slack workspace configuration(Slack 工作区配置)中选择您的 Slack 频道,在 Amazon Chime Webhook 列表中选择 Webhook,或者选择您的 Microsoft Teams 频道。
- 选择 Edit(编辑)。
- 在 Details(详细信息)窗格的 Topics(主题)下,查找您的 SNS 主题。如果该主题未列出,请将您的 SNS 主题订阅到 Amazon Q 开发者版。
验证您是否已将 Amazon Q 开发者版端点列为 Amazon SNS 主题的主题订阅
完成以下步骤:
- 打开 Amazon SNS 控制台。
- 在导航窗格中,选择 Topics(主题),然后选择您的 SNS 主题的名称。
- 在 Subscriptions(订阅)下,查找以下 Amazon Q 开发者版端点:https://global.sns-api.chatbot.amazonaws.com。如果 Amazon Q 开发者版端点未列为主题订阅,则必须将您的 SNS 主题订阅到 Amazon Q 开发者版。
注意:使用您的 Amazon Q 开发者版配置发送测试通知。
确保不要手动将您的 SNS 主题中不支持格式的消息发布到 Amazon Q 开发者版
Amazon Q 开发者版支持手动发布到 SNS 主题的消息。但是,消息的格式必须与 Amazon Q 开发者版兼容。任何配置为发送消息的服务都必须仅通过 Amazon Q 开发者版支持的服务向 Amazon Q 开发者版发送 Amazon SNS 通知。
验证 Amazon Q 开发者版是否支持发布到您的 Amazon SNS 主题的 AWS 服务消息
查看您的聊天应用程序 CloudWatch Logs 中是否出现 "Event Received is not supported" 错误消息。如果您看到 "Event Received is not supported" 错误消息,则表示 Amazon Q 开发者版不支持发布到您的主题的 AWS 服务消息。
有关 Amazon Q 开发者版支持的 AWS 服务列表,请参阅在聊天应用程序中使用 Amazon Q 开发者版监控 AWS 服务。
确保您的 Amazon SNS 主题为其他 AWS 服务授予发布消息所需的权限
完成以下步骤:
- 打开 Amazon SNS 控制台。
- 在导航窗格中,选择 Topics(主题)。
- 选择您已为 Amazon Q 开发者版订阅的 SNS 主题。
- 选择 Access policy(访问策略)选项卡。
- 查看访问策略的 Statement(语句)部分。确保该策略允许正确的 AWS 服务运行 SNS:Publish API 操作。
- 如果您的 Amazon SNS 访问策略不允许正确的 AWS 服务向您的主题发布事件,请更新该策略:
在主题页面的 Details(详细信息)部分,选择 Edit(编辑)。
展开 Access policy(访问策略)部分,然后添加正确的访问控制。
**注意:**有关 Amazon SNS 访问策略的示例,请参阅为通知配置 Amazon SNS 主题。
验证您的 Amazon SNS 主题是否未激活原始消息传输
Amazon Q 开发者版不接受原始消息传输。要验证您的 SNS 主题是否未激活原始消息传输,请完成以下步骤:
- 打开 Amazon SNS 控制台。
- 在导航窗格中,选择 Topics(主题),然后选择您的 SNS 主题的名称。
- 在 Details(详细信息)窗格中,对于 Raw message delivery(原始消息传输),检查状态为 enabled(已启用)还是 disabled(已禁用)。
- 如果状态为 enabled(已启用),请执行以下操作:
选择 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 服务是否不会以高于每秒 10 个通知的速率向您的 Amazon SNS 主题发布消息
Amazon Q 开发者版每秒允许 10 个事件。如果 Amazon Q 开发者版每秒收到超过 10 个事件,则会限制其他消息。
要检查您是否限制了事件,请查看 Amazon Q 开发者版的 CloudWatch Logs 中的 EventsThrottled 指标。
(适用于 Amazon EventBridge)确保 EventBridge 支持 AWS 服务发送到您的 Amazon Q 开发者版客户端目标的事件通知
使用 EventBridge 输入转换器生成自定义通知,然后将通知转发到 SNS 主题。通过 Amazon Q 开发者版监控 SNS 主题并向已配置的 Microsoft Teams、Amazon Chime 或 Slack 频道发送通知。Amazon Q 开发者版自定义通知必须遵循事件架构格式。
有关详细信息,请参阅聊天应用程序中支持的 Amazon Q 开发者版服务。
相关信息
如何使用 Webhook 将 Amazon SNS 消息发布到 Amazon Chime、Slack 或 Microsoft Teams?
- 语言
- 中文 (简体)
