S3에 오브젝트 업로드 시 SNS로 받은 후 HTTP(S) 트리거 시에 "Permissions on the destination topic do not allow S3 to publish notifications from this bucket" 같은 에러 발생.
이는 SNS의 Policy 문제로 SNS의 Access policy - optional에 아래와 같은 Policy를 넣어줘야 함.
CloudWatch Event Trigger에서도 S3가 Source일 경우 동일하게 동작하지 않음.
{
"Version": "2008-10-17",
"Id": "example-ID",
"Statement": [
{
"Sid": "example-statement-ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:ap-northeast-2:557652101750:test",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:*:*:lee-batch-test"
}
}
}
]
}
다른 AWS Source의 경우 SNS Policy 등록없이 동작했는데, S3의 경우 등록이 필요함...
왜인지는 모르겠음 그냥 Policy 넣으면 됨...
http(s)의 경우 confirm subscription 작업이 필요하다.
아래 링크를 참고
SNS POST Message 형태는 아래 참고
아래와 같은 형식으로 JSON을 받음.
{
"version":"0",
"id":"exx9-ae45-dc21-f644-5bc016edc4f1",
"detail-type":"MediaConvert Job State Change",
"source":"aws.mediaconvert",
"account":"588xxx06",
"time":"2020-03-20T06:37:36Z",
"region":"ap-northeast-2",
"resources":[
"arn:aws:mediaconvert:ap-northeast-2:5881xxx906:jobs/15xxx5222-qvs7iy"
],
"detail":{
"timestamp":1584686256265,
"accountId":"588xxxx906",
"queue":"arn:aws:mediaconvert:ap-northeast-2:58xxxx906:queues/Default",
"jobId":"1584686235222-qvs7iy",
"status":"COMPLETE",
"userMetadata":{
"assetID":"496e109d-3c93-4288-bd5f-45ebcee9c9fb"
},
"outputGroupDetails":[
{
"outputDetails":[
{
"outputFilePaths":[
"s3://txx-ad-encoded/TRAILER/HLS/TRAILER_1080p.m3u8"
],
"durationInMs":21021,
"videoDetails":{
"widthInPx":1920,
"heightInPx":1080
}
},
{
"outputFilePaths":[
"s3://txxx-ad-encoded/TRAILER/HLS/TRAILER_720p.m3u8"
],
"durationInMs":21021,
"videoDetails":{
"widthInPx":1280,
"heightInPx":720
}
},
{
"outputFilePaths":[
"s3://txx-ad-encoded/TRAILER/HLS/TRAILER_360p.m3u8"
],
"durationInMs":21021,
"videoDetails":{
"widthInPx":720,
"heightInPx":480
}
},
{
"outputFilePaths":[
"s3://txxx-ad-encoded/TRAILER/HLS/TRAILER_270p.m3u8"
],
"durationInMs":21021,
"videoDetails":{
"widthInPx":480,
"heightInPx":270
}
}
],
"playlistFilePaths":[
"s3://tving-ad-encoded/TRAILER/HLS/TRAILER.m3u8"
],
"type":"HLS_GROUP"
},
{
"outputDetails":[
{
"outputFilePaths":[
"s3://tving-ad-encoded/TRAILER/Thumbnails/TRAILER.0000000.jpg"
],
"durationInMs":10000,
"videoDetails":{
"widthInPx":480,
"heightInPx":270
}
}
],
"type":"FILE_GROUP"
}
]
}
}
이번 글과 별개로 CloudWatch Event에서 Schedule을 사용할 경우 UTC 기반으로 동작하는 점 참고.
'Storage&CDN > S3' 카테고리의 다른 글
Amazon S3 Intelligent-Tiering 30초 정리 (0) | 2021.01.19 |
---|---|
S3 sync shell(IDC -> S3 데이터 실시간 복제) (0) | 2020.05.13 |
Amazon S3-CloudFront Redirect(IDC Content S3로 이관 시) (0) | 2017.04.07 |
Amazon S3FS vs EBS Performance (2) | 2016.01.27 |
Amazon S3 Region 간 데이터 복제 (0) | 2016.01.12 |