AWS Eventbridge 通知无法使用 SNS 主题

Posted

技术标签:

【中文标题】AWS Eventbridge 通知无法使用 SNS 主题【英文标题】:AWS Eventbridge Notifications Does Not Work Using SNS topic 【发布时间】:2021-12-28 14:20:09 【问题描述】:

当我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例有计划的事件时,我想从 AWS Eventbridge 接收通知。

我创建了一个 Eventbridge 规则并将目标设置为一个已经工作的 SNS 主题。 SNS 主题订阅了一个有效的 Lambda 函数,该函数已用于其他“Cloudwatch to slack”警报。 eventbridge设置如下:


  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": 
    "service": ["EC2"],
    "eventTypeCategory": ["scheduledChange"]
  

我已经收到了来自 AWS 的电子邮件形式的 EC2 计划维护(重启)通知,但是我创建的这个事件桥并没有为此触发,也没有向 slack 通道发送任何通知。

我现在不确定我是否在设置中遗漏了什么。我是第一次设置它,没有办法简单地用假输入来测试它。即使顶部的铃铛图标中出现了一个日程安排事件(如上面的屏幕截图所示),它也应该可以工作,对吗?

【问题讨论】:

【参考方案1】:

为了找出此问题的根本原因,我建议查看 SNS 的 CloudWatch 使用指标。 SNS 报告以下可能对您有用的指标:NumberOfMessagesPublishedNumberOfNotificationsDeliveredNumberOfNotificationsFailed。如果您发现报告的这些指标的值不是 0,这意味着 SNS 接收到来自事件桥的事件,而问题出在其他地方。

如果您使用 Lambda 向 Slack 发送消息,您应该查看 CloudWatch 中的日志以查看 Lambda 是否成功执行。您可能想查看 AWS 推荐的 Lambda 设置:(link)

如需进一步调试,您可能需要查看test-event-pattern CLI 命令。

即使顶部的铃铛图标中出现了一个日程安排事件(如上面的屏幕截图所示),它也应该可以工作,对吗?

是的,即使已经有事件,它也应该可以工作。

【讨论】:

感谢 Ervin 在这里提供的一些好的意见。你能检查截图吗? c2n.me/4e2fqht c2n.me/4e2fqrR 你能帮我进一步吗?它显示已发布和交付为值 1。这意味着工作,对吗?但我在我的 slack 频道上看不到任何内容。 我看到您有来自 CloudWatch 的维护事件,但我没有看到 SNS 成功发布或失败的值。请检查您是否有 Lambda 或订阅 SNS 主题的东西。 嗯,SNS 主题已经订阅了 lambda 函数,并且它们已经用于一些 CloudWatch 警报松弛。您认为是否需要在 AWS Eventbridge 和 SNS 之间或 AWS Eventbridge 和 Lambda 之间指定任何 IAM 角色?。【参考方案2】:

我在使用 cloudformation 构建 eventbridge 规则时遇到了类似的问题。我必须通过 AWS 控制台手动进入 eventbridge 规则,然后转到触发器并再次选择 SNS 主题。现在可以了。我花了一段时间才弄清楚。您能否确认该修复程序已为您解决了该问题,因为我不确定如何解决此问题...

【讨论】:

请不要在答案部分发布您的问题!

以上是关于AWS Eventbridge 通知无法使用 SNS 主题的主要内容,如果未能解决你的问题,请参考以下文章

如何在AWS中通过eventbridge 发送事件通知(Organization版)

如何在 AWS eventbridge eventpattern 的任何其他子句中使用多个前缀?

AWS EventBridge 单个事件中的多个目标

How-to centralized integration of eventbridge event notifications sent to feishu

无法使用 AWS 设备场打开和关闭通知面板

terraform 中是不是有任何特定的资源标签可以在 eventbridge 中创建规则