Mercurial > public > finance-parser
annotate template.yaml @ 7:7c5fb7573dd8
first working version
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Mon, 05 Jun 2023 19:06:34 +0100 |
parents | d15ccf5f1373 |
children | f2442b8f43de |
rev | line source |
---|---|
2 | 1 AWSTemplateFormatVersion: '2010-09-09' |
2 Transform: AWS::Serverless-2016-10-31 | |
6 | 3 Description: Serverless finance staments analyzer using Textract and a serverless API |
2 | 4 |
5 Conditions: | |
6 CreateProdResources: !Equals | |
7 - !Ref AWS::AccountId | |
8 - 572540046516 # Dennis account ID (Production) | |
9 | |
10 Globals: | |
11 Function: | |
12 Runtime: python3.7 | |
13 Handler: app.lambda_handler | |
14 Architectures: | |
15 - x86_64 | |
16 Timeout: 20 | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
17 MemorySize: 128 |
2 | 18 Tracing: Active |
19 | |
20 Resources: | |
21 S3Bucket: | |
22 Type: AWS::S3::Bucket | |
23 Properties: | |
24 BucketName: !If | |
25 - CreateProdResources | |
26 - finance-parser-data | |
27 - sandbox-finance-parser-data | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
28 NotificationConfiguration: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
29 EventBridgeConfiguration: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
30 EventBridgeEnabled: true |
2 | 31 |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
32 StateMachine: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
33 Type: AWS::Serverless::StateMachine |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
34 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
35 Tracing: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
36 Enabled: true |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
37 DefinitionUri: statemachine/statemachine.asl.json |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
38 DefinitionSubstitutions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
39 AnalyzeDocumentFunctionArn: !GetAtt AnalyzeDocumentFunction.Arn |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
40 ProcessDocumentFunctionArn: !GetAtt ProcessDocumentFunction.Arn |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
41 UploadDocumentFunctionArn: !GetAtt UploadDocumentFunction.Arn |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
42 Events: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
43 StateChange: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
44 Type: EventBridgeRule |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
45 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
46 Pattern: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
47 source: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
48 - aws.s3 |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
49 detail-type: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
50 - Object Created |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
51 detail: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
52 bucket: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
53 name: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
54 - !Ref S3Bucket |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
55 object: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
56 key: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
57 - "prefix": "unprocessed/" |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
58 Connectors: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
59 StateMachineConnector: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
60 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
61 Destination: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
62 - Id: AnalyzeDocumentFunction |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
63 - Id: ProcessDocumentFunction |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
64 - Id: UploadDocumentFunction |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
65 Permissions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
66 - Write |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
67 |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
68 AnalyzeDocumentFunction: |
2 | 69 Type: AWS::Serverless::Function |
70 Properties: | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
71 CodeUri: analyze_document/ |
2 | 72 Policies: |
73 - Version: "2012-10-17" | |
74 Statement: | |
75 - Effect: Allow | |
76 Action: | |
77 - textract:AnalyzeDocument | |
78 Resource: "*" | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
79 Connectors: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
80 S3Connector: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
81 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
82 Destination: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
83 Id: S3Bucket |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
84 Permissions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
85 - Read |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
86 - Write |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
87 |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
88 ProcessDocumentFunction: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
89 Type: AWS::Serverless::Function |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
90 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
91 CodeUri: process_document/ |
2 | 92 Connectors: |
93 S3Connector: | |
94 Properties: | |
95 Destination: | |
96 Id: S3Bucket | |
97 Permissions: | |
98 - Read | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
99 - Write |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
100 |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
101 UploadDocumentFunction: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
102 Type: AWS::Serverless::Function |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
103 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
104 CodeUri: upload_document/ |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
105 Connectors: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
106 DynamoConnector: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
107 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
108 Destination: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
109 Id: DynamoTable |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
110 Permissions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
111 - Write |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
112 S3Connector: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
113 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
114 Destination: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
115 Id: S3Bucket |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
116 Permissions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
117 - Read |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
118 |
5 | 119 Api: |
120 Type: AWS::Serverless::Api | |
121 Properties: | |
122 StageName: Prod | |
7 | 123 Cors: |
124 AllowMethods: "'GET, POST, OPTIONS'" | |
125 AllowHeaders: "'content-type, x-api-key'" | |
126 AllowOrigin: "'*'" | |
5 | 127 Models: |
128 Empty: | |
129 type: object | |
130 | |
131 GetReportFunction: | |
132 Type: AWS::Serverless::Function | |
133 Properties: | |
134 CodeUri: get_report/ | |
135 Events: | |
136 GetProductEvent: | |
137 Type: Api | |
138 Properties: | |
139 RestApiId: !Ref Api | |
140 Path: /report | |
141 Method: get | |
142 RequestParameters: | |
143 - method.request.querystring.ticker: | |
144 Required: true | |
145 - method.request.querystring.type: | |
146 Required: true | |
147 - method.request.querystring.year: | |
148 Required: true | |
149 Connectors: | |
150 DynamoConnector: | |
151 Properties: | |
152 Destination: | |
153 Id: DynamoTable | |
154 Permissions: | |
155 - Read | |
156 | |
7 | 157 GetTickersFunction: |
158 Type: AWS::Serverless::Function | |
159 Properties: | |
160 CodeUri: get_tickers/ | |
161 Events: | |
162 GetProductEvent: | |
163 Type: Api | |
164 Properties: | |
165 RestApiId: !Ref Api | |
166 Path: /tickers | |
167 Method: get | |
168 Connectors: | |
169 DynamoConnector: | |
170 Properties: | |
171 Destination: | |
172 Id: DynamoTable | |
173 Permissions: | |
174 - Read | |
175 | |
3
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
176 DynamoTable: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
177 Type: AWS::DynamoDB::Table |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
178 Properties: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
179 TableName: FinanceParser |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
180 BillingMode: PAY_PER_REQUEST |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
181 DeletionProtectionEnabled: !If |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
182 - CreateProdResources |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
183 - True |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
184 - False |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
185 KeySchema: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
186 - AttributeName: pk |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
187 KeyType: HASH |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
188 - AttributeName: sk |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
189 KeyType: RANGE |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
190 AttributeDefinitions: |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
191 - AttributeName: pk |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
192 AttributeType: S |
2e5f3664f3e4
documents analyzer almost finished
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
193 - AttributeName: sk |
6 | 194 AttributeType: S |
195 | |
196 Outputs: | |
197 GetReportEndpoint: | |
198 Description: "Endpoint to get a report" | |
7 | 199 Value: !Sub "https://${Api}.execute-api.${AWS::Region}.amazonaws.com/Prod/report" |
200 | |
201 GetTickersEndpoint: | |
202 Description: "Endpoint to get tickers" | |
203 Value: !Sub "https://${Api}.execute-api.${AWS::Region}.amazonaws.com/Prod/ticker" |