Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

查看 SMS 传输的 Amazon CloudWatch 指标和日志

您可以使用 Amazon CloudWatch 和 Amazon CloudWatch Logs 监控您的 SMS 消息传输。

查看 Amazon CloudWatch 指标

Amazon SNS 会自动收集有关您的 SMS 消息传输的指标并将其推送至 Amazon CloudWatch。您可以使用 CloudWatch 监控这些指标,并创建警报以便在指标超过阈值时提醒您。例如,您可以监控 CloudWatch 指标,了解您的 SMS 传输率和您当月至今的 SMS 费用。

有关监控 CloudWatch 指标、设置 CloudWatch 警报和可用指标类型的信息,请参阅 使用 CloudWatch 监测 Amazon SNS

查看 CloudWatch Logs

您可以通过启用 Amazon SNS 写入 Amazon CloudWatch Logs 的功能,收集有关 SMS 消息是否成功传输的信息。对于您发送的每条 SMS 消息,Amazon SNS 会写入日志,其中包括消息价格、成功或失败状态、失败原因(如果消息发送失败)、消息停留时间以及其他信息。

为您的 SMS 消息启用 CloudWatch Logs

  1. 通过以下网址登录 AWS 管理控制台 并打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v2/home

  2. 在控制台菜单上,将区域选择器设置为支持 SMS 消息的区域

  3. 在导航窗格中,选择 Text messaging (SMS)

  4. Text messaging (SMS) 页面,选择 Manage text messaging preferences

  5. Text messaging preferences 页面上,对于 IAM role for CloudWatch Logs access,请创建允许 Amazon SNS 在 CloudWatch Logs 中写入 SMS 传输日志的 IAM 角色:

    1. 选择 Create IAM role

    2. SNS is requesting permission to use resources in your account 页面上,选择 Allow

  6. 对于 Default percentage of success to sample,请指定 Amazon SNS 将在 CloudWatch Logs 中写入日志的 SMS 成功传输的百分比。例如,如果只希望将失败传输写入日志,请将此值设为 0。要将 10% 的成功传输写入日志,请将其设为 10。如果您不指定百分比,Amazon SNS 会将所有成功传输写入日志。

  7. 选择 Update preferences

有关 Text messaging preferences 页面上其他选项的信息,请参阅 设置首选项(控制台)

成功 SMS 传输的示例日志

成功 SMS 传输的传输状态日志与下面的示例类似:

Copy
{ "notification": { "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf", "timestamp": "2016-06-28 00:40:34.558" }, "delivery": { "phoneCarrier": "My Phone Carrier", "mnc": 270, "destination": "+1XXX5550100”, "priceInUSD": 0.00645, "smsType": "Transactional", "mcc": 310, "providerResponse": "Message has been accepted by phone carrier", "dwellTimeMs": 599, "dwellTimeMsUntilDeviceAck": 1344 }, "status": "SUCCESS" }

失败 SMS 传输的示例日志

失败 SMS 传输的传输状态日志与下面的示例类似:

Copy
{ "notification": { "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625", "timestamp": "2016-06-28 00:40:34.559" }, "delivery": { "mnc": 0, "destination": "+1XXX5550100”, "priceInUSD": 0.00645, "smsType": "Transactional", "mcc": 0, "providerResponse": "Unknown error attempting to reach phone", "dwellTimeMs": 1420, "dwellTimeMsUntilDeviceAck": 1692 }, "status": "FAILURE" }

SMS 传输失败的原因

providerResponse 属性中提供失败的原因。SMS 消息传输失败可能是因为以下原因:

  • 被电话运营商作为垃圾消息屏蔽

  • 目标已加入黑名单

  • 电话号码无效

  • 消息正文无效

  • 电话运营商已屏蔽此消息

  • 电话运营商目前无法访问/不可用

  • 电话已屏蔽 SMS

  • 电话已加入黑名单

  • 电话当前无法访问/可用

  • 电话号码已退出

  • 此传输会超过最高价格

  • 尝试联系电话时发生未知错误