使用亚马逊 CloudWatch 指标和日志监控亚马逊SNSSMS配送 - Amazon Simple Notification Service

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

使用亚马逊 CloudWatch 指标和日志监控亚马逊SNSSMS配送

您可以使用 Amazon CloudWatch 和 Amazon CloudWatch Logs 来监控您的SMS消息传送情况。

查看亚马逊 CloudWatch 指标

Amazon SNS 会自动收集有关您SMS发送消息的指标,并将其推送到亚马逊 CloudWatch。您可以使用 CloudWatch 监控这些指标并创建警报,以便在指标超过阈值时提醒您。例如,您可以监控 CloudWatch 指标以了解您的SMS配送费率和 month-to-dateSMS费用。

有关监控 CloudWatch 指标、设置 CloudWatch 警报和可用指标类型的信息,请参阅使用监控亚马逊SNS话题 CloudWatch

查看 CloudWatch 日志

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

启用和查看SMS消息 CloudWatch 日志
  1. 登录 Amazon SNS 控制台

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

  3. 在导航面板上,选择短信 (SMS)

  4. 移动短信 (SMS) 页面的短信偏好设置部分,选择编辑

  5. 在下一页上,展开 Delivery status logging(传输状态日志记录)部分。

  6. 对于成功采样率,请指定 Amazon SNS 将在日志中 CloudWatch 写入日志的成功SMS交付百分比。例如:

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

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

    如果您未指定百分比,Amazon SNS 会为所有成功交付写入日志。

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

    • 要创建新的服务角色,请选择 Create new service role(创建新的服务角色),然后选择 Create new roles(创建新角色)。在下一页上,选择 “允许” 以授予 Amazon 对您账户资源的SNS写入权限。

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

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

  8. 选择 Save changes(保存更改)

  9. 返回移动短信 (SMS) 页面,转至传送状态日志部分以查看所有可用的日志。

    注意

    根据目的地电话号码的承运人,送货日志最多可能需要 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, "numberOfMessageParts": 1, "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, "numberOfMessageParts": 1, "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

  • 电话位于阻止列表中

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

  • 电话号码已退出

  • 此传输会超过最高价格

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