首页 > 解决方案 > aws 在 cloudwatch 警报上调用 lambda - 仅此帐户的电子邮件列表可用

问题描述

AWS正在尝试创建一个cloudwatch警报,该警报将通知发送到一个sns主题,该主题又触发一个lambda订阅该主题的函数,但遇到了一点我lambda从未触发的障碍。我已经遵循了几个关于如何做到这一点的教程,我已经手动测试了sns -lambda连接,这与将通知触发器附加到cloudwatch.

我已经完成了这一切cloudformation

我也尝试从cloudwatch控制台手动配置它,然后发现一些奇怪的东西。在如下图所示的Send a notification to选择框下方,有一条消息显示Only email lists for this account are available。所以我猜测,在这个帐户的某个地方,有一个奇怪的设置需要更改?

在此处输入图像描述

标签: amazon-web-servicesaws-lambdaamazon-cloudwatchamazon-sns

解决方案


更新的答案:

  1. CloudWatch 警报实际上是否处于“警报”状态?您能否再添加 2 个分别由“OK”和“Insufficient data”状态触发的通知?

  2. 通过阅读原帖,SNS 应该拥有调用 Lambda 函数的权限。


上一个答案:

这是一条普通消息,与您的 SNS 主题设置无关。我认为这意味着只有选择加入该 SNS 主题的电子邮件才会收到电子邮件。


问:Amazon SNS 如何验证订阅请求以确保通知不会作为垃圾邮件发送给用户?

作为订阅注册的一部分,Amazon SNS 将确保仅将通知发送给有效的注册订阅者/端点。为防止垃圾邮件并确保订阅者端点真正有兴趣接收来自特定主题的通知,Amazon SNS 要求订阅者使用 2 部分握手明确选择加入:

一世。当用户首次调用订阅 API 并订阅一个端点时,Amazon SNS 将向指定的端点发送一条确认消息。

ii. 在端点收到确认消息后,订阅者应通过发送有效响应来确认订阅请求。只有这样,Amazon SNS 才会认为订阅请求有效。如果对质询没有响应,Amazon SNS 将不会向该端点发送任何通知。确认订阅的确切机制因选择的传输协议而异:

对于 HTTP/HTTPS 通知,Amazon SNS 将首先将确认消息(包含令牌)发布到指定的 URL。监视 URL 的应用程序必须使用包含令牌的令牌调用 ConfirmSubscription API。对于电子邮件和电子邮件 JSON 通知,Amazon SNS 将向包含嵌入式链接的指定地址发送一封电子邮件。用户将需要单击嵌入式链接以确认订阅请求。对于 SQS 通知,Amazon SNS 会将包含令牌的质询消息排入指定队列。监控队列的应用程序必须使用令牌调用 ConfirmSubscription API。注意:在您将 Amazon SQS 队列订阅到您的 Amazon SNS 主题的特定情况下,不需要上述明确的“选择加入”步骤,并且两者都由同一个 AWS 账户“拥有”。


推荐阅读