-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemplate.yaml
More file actions
221 lines (221 loc) · 7.52 KB
/
Copy pathtemplate.yaml
File metadata and controls
221 lines (221 loc) · 7.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: Video processing app with AWS Fargate using Stackery
Resources:
objectStore6A12D98C:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${AWS::StackName}-objectstore6a12d98c
AccessControl: PublicRead
Metadata:
StackeryName: rg-stackery-video-files
objectStore3B0DC7B6:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${AWS::StackName}-objectstore3b0dc7b6
AccessControl: PublicRead
Metadata:
StackeryName: rg-stackery-thumbnails
dockerTask4259BAF6:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- Image: rupakg/docker-ffmpeg-thumb:latest
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: !Ref dockerTask4259BAF6LogGroup
awslogs-region: !Ref AWS::Region
awslogs-stream-prefix: rupakg-docker-ffmpeg-thumb-latest
Name: video-to-thumb-container
Environment:
- Name: AWS_REGION
Value: us-east-1
- Name: INPUT_VIDEO_FILE_URL
Value: https://s3.amazonaws.com/your-s3-bucket-name/test.mp4
- Name: OUTPUT_S3_PATH
Value: your-s3-bucket-name/your-thumbnail-folder-name
- Name: OUTPUT_THUMBS_FILE_NAME
Value: test.png
- Name: POSITION_TIME_DURATION
Value: 00:01
- Name: BUCKET_NAME
Value: !Ref objectStore3B0DC7B6
- Name: BUCKET_ARN
Value: !GetAtt objectStore3B0DC7B6.Arn
Cpu: 256
ExecutionRoleArn: !GetAtt dockerTask4259BAF6ExecutionRole.Arn
Memory: 512
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
TaskRoleArn: !GetAtt dockerTask4259BAF6TaskRole.Arn
Volumes: []
DependsOn: dockerTask4259BAF6LogGroup
Metadata:
StackeryName: stackery-video-to-thumb-task-def
dockerTask4259BAF6LogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: !Sub /stackery/task/${AWS::StackName}-dockerTask4259BAF6/rupakg-docker-ffmpeg-thumb-latest
dockerTask4259BAF6ExecutionRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub ${AWS::StackName}-DockerTaskExecutionRole
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
Effect: Allow
Principal:
Service: ecs-tasks.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: DownloadDockerImagesFromECR
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- logs:CreateLogStream
- logs:PutLogEvents
Resource: !Sub arn:aws:logs:*:*:log-group:/stackery/task/${AWS::StackName}-*
- Effect: Allow
Action:
- ecr:GetAuthorizationToken
- ecr:BatchCheckLayerAvailability
- ecr:GetDownloadUrlForLayer
- ecr:BatchGetImage
Resource: '*'
dockerTask4259BAF6TaskRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub ${AWS::StackName}-DockerTaskTaskRole
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
Effect: Allow
Principal:
Service: ecs-tasks.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: StackeryPolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- s3:GetObject
- s3:ListBucket
- s3:GetBucketLocation
- s3:GetObjectVersion
- s3:PutObject
- s3:GetLifecycleConfiguration
- s3:PutLifecycleConfiguration
Resource:
- !Sub arn:${AWS::Partition}:s3:::${objectStore3B0DC7B6}
- !Sub arn:${AWS::Partition}:s3:::${objectStore3B0DC7B6}/*
function17279F64:
Type: AWS::Serverless::Function
Properties:
FunctionName: !Sub ${AWS::StackName}-function17279F64
Description: !Sub
- Stackery Stack ${StackeryStackTagName} Environment ${StackeryEnvironmentTagName} Function ${ResourceName}
- ResourceName: triggerOnUploadVideoStackery
CodeUri: src/triggerOnUploadVideoStackery
Handler: index.handler
Runtime: nodejs8.10
MemorySize: 512
Timeout: 30
Tracing: Active
Policies:
- AWSXrayWriteOnlyAccess
- Statement:
- Effect: Allow
Action:
- ecs:RunTask
- ecs:DescribeTasks
- ecs:StopTask
Resource:
- !Ref dockerTask4259BAF6
- !Sub arn:aws:ecs:${AWS::Region}:${AWS::AccountId}:task/*
- Statement:
- Effect: Allow
Action:
- iam:PassRole
Resource:
- !GetAtt dockerTask4259BAF6ExecutionRole.Arn
- !GetAtt dockerTask4259BAF6TaskRole.Arn
- S3CrudPolicy:
BucketName: !Sub ${AWS::StackName}-objectstore3b0dc7b6
- S3CrudPolicy:
BucketName: !Sub ${AWS::StackName}-objectstore6a12d98c
Events:
objectStore6A12D98C:
Type: S3
Properties:
Bucket: !Ref objectStore6A12D98C
Events:
- s3:ObjectCreated:*
Environment:
Variables:
DOCKER_TASK_ARN: !Ref dockerTask4259BAF6
DOCKER_TASK_SUBNETS: !Join
- ','
- !Ref DefaultVPCSubnets
BUCKET_NAME: !Sub ${AWS::StackName}-objectstore3b0dc7b6
BUCKET_NAME_2: !Sub ${AWS::StackName}-objectstore6a12d98c
Metadata:
StackeryName: triggerOnUploadVideoStackery
functionF9A32476:
Type: AWS::Serverless::Function
Properties:
FunctionName: !Sub ${AWS::StackName}-functionF9A32476
Description: !Sub
- Stackery Stack ${StackeryStackTagName} Environment ${StackeryEnvironmentTagName} Function ${ResourceName}
- ResourceName: triggerOnThumbnailCreationStackery
CodeUri: src/triggerOnThumbnailCreationStackery
Handler: index.handler
Runtime: nodejs8.10
MemorySize: 512
Timeout: 30
Tracing: Active
Policies:
- AWSXrayWriteOnlyAccess
Events:
objectStore3B0DC7B6:
Type: S3
Properties:
Bucket: !Ref objectStore3B0DC7B6
Events:
- s3:ObjectCreated:*
Metadata:
StackeryName: triggerOnThumbnailCreationStackery
thumbOutputBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref objectStore3B0DC7B6
PolicyDocument:
Statement:
-
Action:
- "s3:GetObject"
Effect: "Allow"
Resource:
Fn::Join:
- ""
-
- "arn:aws:s3:::"
-
Ref: "objectStore3B0DC7B6"
- "/*"
Principal: "*"
Parameters:
StackeryStackTagName:
Type: String
Description: Stack Name (injected by Stackery at deployment time)
StackeryEnvironmentTagName:
Type: String
Description: Environment Name (injected by Stackery at deployment time)
DefaultVPCSubnets:
Type: List<AWS::EC2::Subnet::Id>
Description: AWS account-specific default VPC subnets (injected by Stackery at deployment time)