-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathadler-template.yml
116 lines (111 loc) · 3.27 KB
/
adler-template.yml
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
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: |
GONet v2 Cameras - Image Pre-Processing, reads source image and splits into a JPEG and TIFF Image,
adds Metadata into DynamoDB
#! Adler Deployment template, Buckets pre-exist so trigger and creation removed
Parameters:
ENV:
Type: String
Default: prod
AllowedValues:
- prod
- dev
ImageSourceBucketName:
Type: String
Default: 'gonet'
JpgOutputBucketName:
Type: String
Default: 'gonet.split.jpeg'
TiffOutputBucketName:
Type: String
Default: 'gonet.split.tiff'
Resources:
metadataTable:
Type: AWS::Serverless::SimpleTable
DeletionPolicy: Retain
UpdateReplacePolicy: Retain
Properties:
PrimaryKey:
Name: "image_name"
Type: String
TableName: "gonet-image-metadata"
MetadataTableV2:
Type: AWS::Serverless::SimpleTable
DeletionPolicy: Retain
UpdateReplacePolicy: Retain
Properties:
PrimaryKey:
Name: "image_name"
Type: String
TableName: "gonet-image-metadata-v2"
imageSplitCatFunction:
Type: AWS::Serverless::Function
Properties:
Timeout: 60
Handler: appV2.lambda_handler
Runtime: python3.9
MemorySize: 2048
EphemeralStorage:
Size: 1024
Environment:
Variables:
app_env: !Ref ENV
source_bucket: !Ref ImageSourceBucketName
tiff_bucket: !Ref TiffOutputBucketName
jpeg_bucket: !Ref JpgOutputBucketName
ddb_table: !Ref MetadataTableV2
CodeUri: imageSplitCatalog/
Policies:
- AWSLambdaExecute
- S3ReadPolicy:
BucketName: !Ref ImageSourceBucketName
- S3CrudPolicy:
BucketName: !Ref JpgOutputBucketName
- S3CrudPolicy:
BucketName: !Ref TiffOutputBucketName
- DynamoDBCrudPolicy:
TableName: !Ref MetadataTableV2
JpgOutputBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Retain
UpdateReplacePolicy: Retain
Properties:
AccessControl: Private
PublicAccessBlockConfiguration:
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
BucketName: !Ref JpgOutputBucketName
TiffOutputBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Retain
UpdateReplacePolicy: Retain
Properties:
AccessControl: Private
PublicAccessBlockConfiguration:
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
BucketName: !Ref TiffOutputBucketName
Outputs:
ImageSourceBucketName:
Value: !Ref ImageSourceBucketName
Description: S3 Bucket for Uploaded GONet Images
JpgOutputBucketName:
Value: !Ref JpgOutputBucketName
Description: S3 destination Bucket for Split JPG Images
TiffOutputBucketName:
Value: !Ref TiffOutputBucketName
Description: S3 destination Bucket for Split TIFF Images
metadataTableName:
Value: !Ref metadataTable
Description: DynamoDB Table Name
MetadataTableV2Name:
Value: !Ref MetadataTableV2
Description: DynamoDB Table Name
FunctionArn:
Value: !Ref imageSplitCatFunction
Description: imageSplitCatFunction Arn