查看每日 SMS 使用量报告 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

查看每日 SMS 使用量报告

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

每日使用量报告信息

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

请注意,此报告不包含发送到已选择退出的收件人的消息。

  • 消息发布时间(UTC 时间)

  • 消息 ID

  • 目标电话号码

  • 消息类型

  • 传输状态

  • 消息价格 (USD)

  • 分段编号(如果一条消息过长,则会拆分为多个分段)

  • 分段总数

注意

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

订阅每日使用量报告

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

为您的每日使用情况报告创建 Amazon S3 存储桶
  1. 从发送 SMS 消息的 Amazon Web Services 账户 中,登录 Amazon S3 控制台

  2. 选择 Create Bucket(创建存储桶)。

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

    有关存储桶名称约定和限制的信息,请参阅 Amazon Simple Storage Service 用户指南中的存储桶命名规则

  4. 选择创建

  5. All Buckets(所有存储桶)表中,选择存储桶。

  6. Permissions(权限)部分中,选择 Bucket policy(存储桶策略)。

  7. Bucket Policy Editor(存储桶策略编辑器窗口中,提供允许 Amazon SNS 服务委托人写入您的存储桶的策略。有关示例,请参阅 存储桶策略的示例

    如果您使用示例策略,请记住将 my-s3-bucket 替换为您在步骤 3 中选择的存储桶名称。

  8. 选择保存

订阅每日使用情况报告
  1. 登录 Amazon SNS 控制台

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

  3. Text messaging (SMS) (文本消息收发(SMS)) 页上,在 Text messaging preferences (文本消息收发首选项) 部分中,选择 Edit (编辑)

    
                                    文本消息发送首选项部分
  4. Edit text messaging preferences (编辑文本消息收发首选项) 页上,在 Details (详细信息) 部分中,指定 Amazon S3 bucket name for usage reports (使用率报告的 Amazon S3 存储桶名称)

    
                                    “编辑文本消息发送首选项”页面上的“详细信息”
  5. 选择保存更改

存储桶策略的示例

以下策略允许 Amazon SNS 服务委托人执行 s3:PutObjects3:GetBucketLocations3:ListBucket 操作。

Amazon 为所有服务的工具提供已授予其账户中资源的访问权限的服务主体。当 Amazon S3 存储桶策略语句中的主体为Amazon服务主体时,您可以使用 aws:SourceArnaws:SourceAccount全局条件键以防止出现混淆代理人问题。要限制哪些存储桶中的哪些区域和账户可以接收每日使用情况报告,请使用 aws:SourceArn,如下面的示例所示。如果您不想限制可生成这些报告的区域,请使用 aws:SourceAccount 限制生成报告的账户。如果您不知道源的 ARN,请参阅 aws:SourceAccount

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

{ "Version": "2008-10-17", "Statement": [{ "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-s3-bucket/*", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:region:account_id:*" } } }, { "Sid": "AllowGetBucketLocation", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::my-s3-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:region:account_id:*" } } }, { "Sid": "AllowListBucket", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::my-s3-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sns:region:account_id:*" } } } ] }
注意

您可以将使用情况报告发布到 Amazon S3 存储桶,这些存储桶由 Amazon S3 策略中 Condition 元素指定的 Amazon Web Services 账户 拥有。要将使用情况报告发布到另一个 Amazon Web Services 账户 拥有的 Amazon S3 存储桶,请参阅我如何从另一个 Amazon Web Services 账户 复制 S3 对象?

每日使用量报告的示例

在您订阅每日使用量报告后,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