如何排查 Amazon SNS 中的手机短信(SMS)失败?

1 分钟阅读
0

我的手机短信(SMS 消息)无法通过 Amazon Simple Notification Service(Amazon SNS)发送。

解决方法

针对短信启用并查看 Amazon CloudWatch Logs

有关详细信息,请参阅查看短信传输的 Amazon CloudWatch 指标和日志。另请参阅如何访问短信的 Amazon SNS 主题传输日志?

检查您是否超过了月度短信支出限额

1.    查看您的传输状态日志,了解失败的短信传输("status": "FAILURE")。

2.    检查失败的短信传输日志中是否有以下值:"providerResponse": "No Quota left for account"。如果您在失败的短信传输日志中看到此值,则表示您已超过月度短信支出限额

失败的短信传输 CloudWatch 日志事件示例

{
    "notification": {
        "messageId": "efgh9a7-c68f-abcd-bdbe-21ada245e18f",
        "timestamp": "2020-10-21 16:32:10.981"
    },
    "delivery": {
        "destination": "+1234567890",
        "smsType": "Transactional",
        "providerResponse": "No quota left for account",
        "dwellTimeMs": 145
    },
    "status": "FAILURE"
}

**注意:**您也可以查看 CloudWatch 指标中的 SMSMonthToDateSpentUSD 指标,以确认您是否超过了月度短信支出限额。

3.    如果您超过了月度短信支出限额,请在 Amazon SNS 中申请提高短信的支出限额。有关详细信息,请参阅申请增加 Amazon SNS 中短信的支出限额

**重要事项:**收到短信支出限额增加确认后,您必须在 Amazon SNS 控制台调整账户的支出限额。如果不在 Amazon SNS 控制台上更新短信设置,则您的短信支出限额不会增加。

如果您使用 AWS SDK 发送短信,请检查是否超过了最高消息价格

1.    查看您的传输状态日志,了解失败的短信传输("status": "FAILURE")。

2.    检查失败的短信传输日志中是否有以下值:"providerResponse": "delivery would exceed maxprice"。如果您在失败的短信传输日志中看到此值,则表明您已超出在 AWS.SNS.SMS.MaxPrice 消息属性中配置的价格限制。

**注意:**您也可以在 CloudWatch 指标中查看 PublishSize 指标,以确认您是否超过了消息大小限制。如果 Amazon SNS 确定发送消息产生的费用超过了您设置的最高价格,则它不会发送消息。

3.    如果超出最高消息价格限制,您可以提高 AWS.SNS.SMS.MaxPrice 值或缩小短信的大小。有关详细信息,请参阅发布到手机

确认您的账户已获准发送短信

1.    查看您的传输状态日志,了解失败的短信传输("status": "FAILURE")。

2.    检查失败的短信传输日志中是否有以下值:"providerResponse": “您的账户需要额外审核才能发送短信”。此值表示 Amazon SNS 团队没有允许您的账户发送短信的必要信息。
**注意:**为防止滥用,Amazon SNS 要求客户在发送短信之前获得支出限额和用例的批准。

3.    如果您的账户未获得发送短信的批准,请在 AWS Support Center 中心提交一个提高服务限额案例。

确认您的源身份是否受区域支持

您要向其发送消息的国家/地区或 AWS 区域必须支持您正在使用的源身份

例如,要向美国目的地电话号码发送消息,您所在区域必须有支持的美国源号码(TFN/10DLC/ShortCode)。或者,要向加拿大目的地电话号码发送消息,您所在区域必须有支持的加拿大源号码(LongCode/ShortCode)。

有关支持和不支持每种源身份的国家/地区的完整列表,请参阅支持的区域和国家/地区

AWS 官方
AWS 官方已更新 1 年前