

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

# 订阅 Amazon SNS 每日短信使用量报告
<a name="sms_stats_usage"></a>

您可以通过从 Amazon SNS 订阅每日使用量报告来监控您的 SMS 消息传输。在每个您至少发送了一条 SMS 消息的日子，Amazon SNS 都将向您指定的 Amazon S3 存储桶发送 CSV 文件格式的使用情况报告。SMS 使用报告需要 24 小时才在 Amazon S3 存储桶中可用。

## 每日使用量报告信息
<a name="daily_usage_info"></a>

该使用情况报告包括通过您的账户发送的每条 SMS 消息的以下信息。

 请注意，此报告不包含发送到已选择退出的收件人的消息。
+ 消息发布时间（UTC 时间）
+ 消息 ID
+ 目标电话号码
+ 消息类型
+ 传输状态
+ 消息价格 (USD)
+ 分段编号（如果一条消息过长，则会拆分为多个分段）
+ 分段总数

**注意**  
如果 Amazon SNS 没有收到部分编号，我们将其值设置为零。

## 订阅每日使用量报告
<a name="subscribe-to-daily-usage-reports"></a>

要订阅每日使用情况报告，您必须通过适当的权限创建 Amazon S3 存储桶。

**为您的每日使用情况报告创建 Amazon S3 存储桶**

1. 从发送短信 AWS 账户 的，登录 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)。

1. 选择**创建存储桶**。

1. 对于**存储桶名称**，我们建议您输入对账户和组织唯一的名称。例如，使用模式 `<my-bucket-prefix>-<account_id>-<org-id>`。

   有关存储桶名称约定和限制的信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)。

1. 选择**创建**。

1. 在 **All Buckets**（所有存储桶）表中，选择存储桶。

1. 在 **Permissions**（权限）部分中，选择 **Bucket policy**（存储桶策略）。

1. 在 **Bucket Policy Editor**（存储桶策略编辑器窗口中，提供允许 Amazon SNS 服务委托人写入您的存储桶的策略。有关示例，请参阅[存储桶策略的示例](#example_bucket_policy)。

   如果您使用示例策略，请记得*my-s3-bucket*使用您在步骤 3 中选择的存储桶名称进行替换。

1. 选择**保存**。

**订阅每日使用情况报告**

1. 登录 [Amazon SNS 控制台](https://console.aws.amazon.com/sns/)。

1. 在导航面板上，选择**文本消息(SMS)**。

1. 在 **Text messaging (SMS) (文本消息收发(SMS))** 页上，在 **Text messaging preferences (文本消息收发首选项)** 部分中，选择 **Edit (编辑)**。  
![\[Amazon SNS 控制台中的“文本消息首选项”部分\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/images/daily-usage-report1.png)

1. 在 **Edit text messaging preferences (编辑文本消息收发首选项)** 页上，在 **Details (详细信息)** 部分中，指定 **Amazon S3 bucket name for usage reports (使用率报告的 Amazon S3 存储桶名称)**。  
![\[Amazon SNS 控制台中“编辑文本消息发送首选项”页面的“详细信息”部分\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/images/daily-usage-report2.png)

1. 选择**保存更改**。

### 存储桶策略的示例
<a name="example_bucket_policy"></a>

以下策略允许 Amazon SNS 服务委托人执行 `s3:PutObject`、`s3:GetBucketLocation` 和 `s3:ListBucket` 操作。

AWS 为所有服务提供工具，其服务委托人已被授予访问您账户中资源的权限。当 Amazon S3 存储桶策略声明中的主体是[混淆代理问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)时。要限制哪些存储桶中的哪些区域和账户可以接收每日使用情况报告，请使用 `aws:SourceArn`，如下面的示例所示。如果您不想限制可生成这些报告的区域，请使用 `aws:SourceAccount` 限制生成报告的账户。如果您不知道源的 ARN，请参阅 `aws:SourceAccount`。

在您创建 Amazon S3 存储桶以便从 Amazon SNS 接收每日 SMS 使用情况报告时，请使用以下包含混淆代理人保护的示例。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**注意**  
您可以将使用情况报告发布到 Amazon S3 存储桶，这些存储桶由 Amazon S3 策略中 `Condition` 元素指定的 AWS 账户 拥有。要将使用情况报告发布到其他人 AWS 账户 拥有的 Amazon S3 存储桶，请参阅[如何从另一个存储桶复制 Amazon S3 对象 AWS 账户？](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/) 。

### 每日使用量报告的示例
<a name="example_report"></a>

在您订阅每日使用量报告后，Amazon SNS 会每天将包含使用量数据的 CSV 文件放在以下位置：

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

每个文件可包含最多 50000 条记录。如果一天内的记录超出此配额，则 Amazon SNS 会添加多个文件。下面显示了一个示例报告：

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```