跳至内容

如何访问 SMS 消息的 Amazon SNS 主题传输日志?

2 分钟阅读
0

我想访问 SMS 消息的 Amazon Simple Notification Service(Amazon SNS)主题传输日志。

解决方法

为 Amazon CloudWatch Logs 配置 SMS 传输状态属性

完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航窗格上,展开 Mobile(移动),然后选择 Text messaging (SMS)(短信 (SMS))。
  3. Text messaging preferences(短信首选项)部分,选择 Edit(编辑)。
  4. 展开传输状态日志记录 - 可选
  5. 对于 Success sample rate(成功采样率),在 % 文本框中输入 100
    **注意:**成功采样率是成功传输到日志的消息的百分比。
  6. IAM 角色部分中,对于服务角色,选择创建新的服务角色,然后选择创建新角色。将打开 AWS Identity and Access Management (IAM) 控制台。
    **注意:**如果您已经拥有具有正确权限的 IAM 角色,请改为选择 Use existing service role(使用现有服务角色)。
  7. 在 IAM 控制台权限请求页面上,选择 Allow(允许)。
  8. 返回 Amazon SNS 控制台后,选择 Save changes(保存更改)。

这样会为成功和失败的传输创建 IAM 角色,并为 Amazon SNS 配置以下策略和信任关系。

IAM 角色:

arn:aws:iam::1111111111:role/SNSSuccessFeedback

策略:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:PutMetricFilter",
        "logs:PutRetentionPolicy"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

信任关系:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

查看传输状态日志

完成以下步骤:

  1. 打开 Amazon CloudWatch 控制台

  2. 在导航窗格中,展开 Logs(日志),然后选择 Log groups(日志组)。

  3. 在筛选搜索框中,输入 DirectPublishToPhoneNumber 以仅查找 Amazon SNS 的 SMS 日志组。
    注意: 根据目标电话号码运营商的不同,传输日志最多可能需要 72 小时才会显示在 Amazon SNS 控制台中。
    例如:
    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber 日志组包含成功传输日志:

    sns/us-east-1/1111111111/DirectPublishToPhoneNumber
    

    成功传输日志示例:

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

    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber/Failure 日志组包含失败传输日志:

    sns/us-east-1/1111111111/DirectPublishToPhoneNumber/Failure

    失败传输日志示例:

    {
        "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"
    }
  4. 选择要查看的 SNS 日志组。

  5. Log streams(日志流)选项卡上,选择特定的日志流以查看 SMS 传输日志。

  6. 要查看您的 SMS 消息的传输状态,请展开日志事件并检查 providerResponse

查看已退出的电话号码

接收者可以选择不在手机上接收其 AWS 账户的 SMS 消息。有关详细信息,请参阅退出接收 SMS 消息

完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航窗格上,展开移动部分,然后选择文本消息(SMS)
  3. 要查看已选择退出的电话号码,请转到已退出的电话号码部分。

相关信息

使用 CloudWatch 监控 Amazon SNS 主题

在 Amazon SNS 中设置短信收发首选项

使用 Amazon CloudWatch 指标和日志监控 Amazon SNS 短信传输情况