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 报告以下可能对您有用的指标:NumberOfMessagesPublished
、NumberOfNotificationsDelivered
NumberOfNotificationsFailed
。如果您发现报告的这些指标的值不是 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 的任何其他子句中使用多个前缀?
How-to centralized integration of eventbridge event notifications sent to feishu