AWS SNS不再发送SMS

时间:2019-01-17 18:30:36

标签: amazon-web-services amazon-sns

自两天前以来,我一直在使用Amazon SNS发送短信。我没有任何改变。即使我尝试从控制台发送短信,也仍然无法正常工作。

最近几天我的交货率只有35%,但是从昨天开始,它根本无法正常工作。

6 个答案:

答案 0 :(得分:1)

有多种方法可以解决此问题。这是AWS Developer Forum中解决的问题。请通过以下步骤解决此问题。这些可能是基本步骤,但我指出了所需的最一般步骤。

  1. 尝试从AWS控制台发送SMS。如果这可行,则支出限制或投放率没有问题。 (所以您已经提到这也行不通)
  2. 现在检查您的手机号码(正在接收SMS)是否已订阅该主题。在某些情况下,收件人可以选择退出主题。
  

地方法律和法规要求的地方(例如美国和   加拿大),短信接收者可以选择退出,这表示他们选择   停止从您的AWS账户接收SMS消息。

  1. 检查为日历月设置的帐户支出限额。这可能会限制您的SMS传递。如果尚未设置,默认值为每月1美元。
  

对于“帐户支出限额”,请输入所需的最大美元金额   每个日历月花费在短信上。当Amazon SNS   确定发送SMS消息将产生超过   您当月的支出限额,Amazon SNS停止发布短信   在几分钟之内发送邮件。

  1. 出于更明显的原因,请检查您的手机号码(正在接收SMS)是否没有阻止您的任何SMS。
  2. 如果这些都不起作用,请联系 AWS支持团队,他们将在2个工作日内与您联系。他们一定会解决的。到目前为止,我的所有支持电话都已由他们的团队成功解决。

答案 1 :(得分:1)

从昨天开始,消息已完全停止发送,因此您可能已达到帐户的SNS SMS支出限额。默认情况下,AWS区域中的AWS账户为1美元。您应该增加限额。

但是在将来,如果您想防止这种情况发生,即如果您想在达到帐户的实际SMS支出限额之前提前得到通知,则可以事先增加该限额。这样,由于达到限制,您将不会遇到SMS传递问题。您可以在SMSMonthToDateSpentUSD指标上创建CloudWatch警报。

请观看以下视频:https://www.youtube.com/watch?v=5-HdLf_lizI

答案 2 :(得分:1)

我的情况是一切正常,突然间 SMS 没有通过 nodejs 代码。经过上面的回复后 - 我找不到配额的任何问题。尝试从控制台发送消息有效。

第 1 点 - 通过云监视,这是响应:

{
"notification": {
    "messageId": "ab4c51a2-d31c-5ba9-8c80-088d03fb0fbf",
    "timestamp": "2021-06-01 06:07:35.925"
},
"delivery": {
    "destination": "<Removed>",
    "smsType": "Transactional",
    "providerResponse": "total SMS message price 0.02171 is greater than requested Max price 0.003",
    "dwellTimeMs": 81
},
"status": "FAILURE"

}

因此,某些面临此问题的人实际上可能遇到了此问题。由于您指定了最高价格,您愿意为发送的 SMS 付费 - 当价格不合适时,它就会失败。

您可以在这里查看 - https://aws.amazon.com/sns/sms-pricing/

我的问题 - 对于任何遇到此问题/可以提供帮助的人

就我而言,适用的价格是非国际价格 - 来自印度 - 印度 - 0.00278 美元,为了更安全,我已将费率指定为 0.003 美元。然而,出于某种奇怪的原因——现在价格上涨到 0.02171 美元——即用于国际消息传递。

请告诉我是否有办法将其限制为国际/国内 - 当问题出现时,我没有更改 AWS 设置/我自己的代码中的任何内容。

编辑 1:

  1. 我增加了数量,一切正常。所以只是因为价格。
  2. 我还检查了地区问题 - 正如上面 Javier Gomez 所建议的,我的地区设置为 - Asia Pacific (Mumbai)ap-south-1 。所以我认为即使这也不会导致问题 - 因为这从未改变过。

提前致谢。

答案 3 :(得分:0)

  1. 检查仪表板中的主题-查看其报告是否失败消息
  2. 检查您的电话号码。如果您在美国,却没有完全使用+1 + areacode + 7-digits-它会失败。 (注意+1前缀!)

答案 4 :(得分:0)

我期待同样的问题,并通过更改代码上的区域得到了解决。转到您的 AWS 控制台(您在其中创建 aws 密钥的控制台),打开 SNS 并检查哪个区域出现在控制台的右上角,然后在您的代码中使用此区域 ID。我不知道为什么,但它解决了我的问题......希望对你有帮助。

答案 5 :(得分:0)

我也一直在努力解决这个问题。我注意到 SNS 服务顶部有一个横幅,上面写着:

<块引用>

向美国目的地发送短信 (SMS) 的重要变化 自 2021 年 6 月 1 日起,美国电信提供商不再支持 用于向美国发送 SMS 消息的个人对个人 (P2P) 长代码 目的地。要继续向美国目的地发送 SMS 消息, 注册并使用有效的原始 ID。了解详情

所以基本上这意味着如果你想向美国电话号码发送短信,你必须使用 Pinpoint 设置一个“原始 ID”,它可以是一个免费电话号码。它们每月花费 2 美元,并且可以立即创建。请注意,您应该在 Cognito 在幕后使用的区域内创建它。例如,我在 US-East-2 区域部署了 Cognito,但 Cognito 实际上会使用来自 US-East-1 的 SNS 服务,因此我在那里创建了原始 ID,一切又重新开始工作。

我希望这对其他人有帮助!