查看 Amazon CloudWatch 指标和日志以查看 SMS 传输 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

您可以使用 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. 登录到Amazon SNS 控制台

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

  3. 在导航面板上,选择 Text messaging (SMS) (文本消息(SMS))

  4. Mobile text messaging (SMS) (移动文本消息 (SMS)) 页上,在文本消息发送首选项部分中,选择编辑

  5. 在下一页上,展开传输状态日志部分。

  6. 适用于成功采样率中,指定 Amazon SNS 将在 CloudWatch Logs 日志中写入日志的成功 SMS 传输的百分比。例如:

    • 要仅将失败传输写入日志,请将此值设为 0。

    • 要将 10% 的成功传输写入日志,请将其设为 10。

    如果您未指明百分比,Amazon SNS 会将所有成功配送写入日志。

  7. 要提供所需权限,请执行以下操作之一:

    • 要创建新的服务角色,请选择创建新的服务角色然后创建新角色。在下一页上,选择Allow授予 Amazon SNS 对您账户资源的写入访问权限。

    • 要使用现有服务角色,请选择使用现有服务角色,然后将 ARN 名称粘贴到用于成功交付和失败交付的 IAM 角色

      您指定的服务角色必须允许对账户资源进行写入访问。有关创建 IAM 角色的更多信息,请参阅为创建角色Amazon服务中的IAM 用户指南

  8. 选择保存更改

  9. 回到移动文本消息(短信)页面中,转至传输状态日志部分查看任何可用的日志。

    注意

    根据目标电话号码的承运人,配送日志可能需要长达 72 小时来显示在 Amazon SNS 控制台中。

成功 SMS 传输的示例日志

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

{ "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 传输的传输状态日志与下面的示例类似:

{ "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

  • 电话位于阻止列表中

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

  • 电话号码已退出

  • 此传输会超过最高价格

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