amazon-web-services - 用于接收每日 SMS 使用报告的 Amazon S3 策略 - 不起作用
问题描述
我们已将 S3 存储桶配置为接收来自 AWS SNS 的每日 SMS 使用报告。
但是 S3 存储桶没有收到任何报告。
这是我们正在使用的政策:
{
"Version": "2012-10-17",
"Id": "sns-sms-daily-usage-policy",
"Statement": [
{
"Sid": "AllowPutObject",
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket-name/*"
},
{
"Sid": "AllowGetBucketLocation",
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws:s3:::bucket-name"
}
]
}
解决方案
为了测试这一点,我做了以下事情:
- 创建了一个 Amazon S3 存储桶
- 应用上述 Bucket 策略(替换我的 Bucket 名称)
- 在 Amazon SNS 中,将 SMS 使用报告配置为传送到此存储桶
- 发送短信
- 等了两天
报告终于出现在我的 S3 存储桶中,名为:
SMSUsageReports/ap-southeast-2/2018/10/31/001.csv.gz
内容是:
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2018-10-31T06:40:29.247Z,xxx,+61xxx,Promotional,Message has been accepted by phone,0.05878,1,1
所以,它似乎需要很长时间才能到达,但它确实到达了。
我还注意到发送到美国号码的前 100 条 SMS 消息是免费的,因此免费消息可能不会生成使用情况报告(但我使用的是非美国号码,所以我不知道这是否是案子)。
推荐阅读
- java - Selenium Java:等到可点击
- algorithm - 嵌套 for 循环的运行时复杂度
- postgresql - 在 Postgres 中处理大表 (>1 TB) 的备份?
- python - Python套接字 - 消息并不总是在服务器上注册
- java - 算法:从多个有序列表中搜索整数的增量序列
- apache - htaccess 用于使用虚拟主机进行 url 重定向
- c++ - 发布模式下的 OpenGL 粉色
- sql - SQL Server - 优化 UPDATE 语句的执行
- python - Keras 序列:使用三个参数指定输入形状
- html - 将css网格行限制为特定数量的项目