本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用 Amazon CloudWatch 和 Amaz CloudWatch on Logs 来监控您的短信发送情况。
查看亚马逊 CloudWatch 指标
Amazon SNS 会自动收集有关您发送短信的指标并将其推送到亚马逊。 CloudWatch您可以使用 CloudWatch 监控这些指标并创建警报,以便在指标超过阈值时提醒您。例如,您可以监控 CloudWatch 指标以了解您的短信发送率和 month-to-date短信费用。
有关监控 CloudWatch 指标、设置 CloudWatch 警报和可用指标类型的信息,请参阅使用监控亚马逊 SNS 主题 CloudWatch。
查看 CloudWatch 日志
通过启用 Amazon SNS 写入亚马逊 CloudWatch 日志,您可以收集有关成功和不成功发送短信的信息。对于您发送的每条 SMS 消息,Amazon SNS 会写入日志,其中包括消息价格、成功或失败状态、失败原因(如果消息发送失败)、消息停留时间以及其他信息。
启用和查看 SMS 消息的 CloudWatch 日志
登录 Amazon SNS 控制台
。 -
在控制台菜单上,将区域选择器设置为支持 SMS 消息收发的区域。
-
在导航面板上,选择文本消息(SMS)。
-
在移动文本消息(SMS) 页上,在文本消息发送首选项部分中,选择编辑。
-
在下一页上,展开 Delivery status logging(传输状态日志记录)部分。
-
对于成功采样率,请指定 Amazon SNS 将在日志中 CloudWatch 写入日志的成功发送短信的百分比。例如:
-
要仅将失败传输写入日志,请将此值设为 0。
-
要将 10% 的成功传输写入日志,请将其设为 10。
如果您不指定百分比,Amazon SNS 会将所有成功传输写入日志。
-
-
为提供所需的权限,请执行以下操作之一:
-
要创建新的服务角色,请选择 Create new service role(创建新的服务角色),然后选择 Create new roles(创建新角色)。在下一页上,选择 Allow(允许)以授予 Amazon SNS 对您账户资源的写入访问权限。
-
要使用现有服务角色,请选择 Use existing service role(使用现有服务角色),然后将 ARN 名称粘贴到 IAM role for successful and failed deliveries(成功和失败传输的 IAM 角色)框中。
您指定的服务角色必须允许对账户资源进行写入访问。有关创建 IAM 角色的更多信息,请参阅 I AM 用户指南中的为 AWS 服务创建角色。
-
-
选择 Save changes(保存更改)。
-
回到 Mobile text messaging (SMS)(移动文本消息 (SMS))页面上,转至 Delivery status logs(传输状态日志)部分查看任何可用的日志。
注意
根据目标电话号码的运营商,Amazon SNS 控制台中显示传输日志最长可能需要 72 小时。
成功 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
-
电话位于阻止列表中
-
电话当前无法访问/可用
-
电话号码已退出
-
此传输会超过最高价格
-
尝试联系电话时发生未知错误