Skip to content

Commit 2cd914c

Browse files
committed
chore: update CloudFormation templates to include DeletionPolicy and UpdateReplacePolicy for resource management, adjust logging format, and correct condition for production stage
1 parent 8017348 commit 2cd914c

2 files changed

Lines changed: 28 additions & 26 deletions

File tree

Unicorn.Properties/template.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,17 @@ Resources:
7373
# Services share their event bus name and arn
7474
UnicornPropertiesEventBusNameParam:
7575
Type: AWS::SSM::Parameter
76+
DeletionPolicy: Delete
77+
UpdateReplacePolicy: Delete
7678
Properties:
7779
Type: String
7880
Name: !Sub /uni-prop/${Stage}/UnicornPropertiesEventBus
7981
Value: !GetAtt UnicornPropertiesEventBus.Name
8082

8183
UnicornPropertiesEventBusArnParam:
8284
Type: AWS::SSM::Parameter
85+
DeletionPolicy: Delete
86+
UpdateReplacePolicy: Delete
8387
Properties:
8488
Type: String
8589
Name: !Sub /uni-prop/${Stage}/UnicornPropertiesEventBusArn
@@ -197,6 +201,8 @@ Resources:
197201
#### STATE MACHINE
198202
ApprovalStateMachine:
199203
Type: AWS::Serverless::StateMachine
204+
DeletionPolicy: Delete
205+
UpdateReplacePolicy: Delete
200206
Properties:
201207
Name: !Sub "${AWS::StackName}-ApprovalStateMachine"
202208
DefinitionUri: ./StateMachine/PropertyApproval.asl.yaml
@@ -326,12 +332,16 @@ Resources:
326332
# Event bus for Unicorn Properties Service, used to publish and consume events
327333
UnicornPropertiesEventBus:
328334
Type: AWS::Events::EventBus
335+
DeletionPolicy: Delete
336+
UpdateReplacePolicy: Delete
329337
Properties:
330338
Name: !Sub UnicornPropertiesBus-${Stage}
331339

332340
# Event bus policy to restrict who can publish events (should only be services from UnicornPropertiesNamespace)
333341
UnicornPropertiesEventsBusPublishPolicy:
334342
Type: AWS::Events::EventBusPolicy
343+
DeletionPolicy: Delete
344+
UpdateReplacePolicy: Delete
335345
Properties:
336346
EventBusName: !Ref UnicornPropertiesEventBus
337347
StatementId: !Sub OnlyPropertiesServiceCanPublishToEventBus-${Stage}
@@ -350,6 +360,8 @@ Resources:
350360
# Catchall rule used for development purposes. Logs all events matching any of the services to CloudWatch Logs
351361
UnicornPropertiesCatchAllRule:
352362
Type: AWS::Events::Rule
363+
DeletionPolicy: Delete
364+
UpdateReplacePolicy: Delete
353365
Properties:
354366
Name: properties.catchall
355367
Description: Catchall rule used for development purposes.

Unicorn.Web/template.yaml

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Metadata:
1414
- ES6000 # Rule disabled because SQS DLQs don't need a RedrivePolicy
1515
- WS2001 # Rule disabled because check does not support !ToJsonString transform
1616
- ES1001 # Rule disabled because our Lambda functions don't need DestinationConfig.OnFailure
17+
- W3002 # Rule disabled as nested templates are being packaged
1718
- W3002 # Rule disabled as nested templates are being packaged
1819
- E3030 # Rule disabled due to using cfn-lint-serverless rules v0.3
1920

@@ -39,7 +40,7 @@ Mappings:
3940
Value: "AWS Serverless Developer Experience"
4041

4142
Conditions:
42-
IsProd: !Equals [!Ref Stage, Prod]
43+
IsProd: !Equals [!Ref Stage, prod]
4344

4445
Globals:
4546
Api:
@@ -183,24 +184,13 @@ Resources:
183184
- MetricsEnabled: true
184185
ResourcePath: /*
185186
HttpMethod: "*"
186-
LoggingLevel: !If
187-
- IsProd
188-
- ERROR
189-
- INFO
187+
LoggingLevel: !If [IsProd, ERROR, INFO]
190188
ThrottlingBurstLimit: 10
191189
ThrottlingRateLimit: 100
192190
AccessLogSetting:
193191
DestinationArn: !GetAtt UnicornWebApiLogGroup.Arn
194-
Format: !Join
195-
- ""
196-
- - '{"requestId":"$context.requestId",'
197-
- '"integration-error":"$context.integration.error",'
198-
- '"integration-status":"$context.integration.status",'
199-
- '"integration-latency":"$context.integration.latency",'
200-
- '"integration-requestId":"$context.integration.requestId",'
201-
- '"integration-integrationStatus":"$context.integration.integrationStatus",'
202-
- '"response-latency":"$context.responseLatency",'
203-
- '"status":"$context.status"}'
192+
Format: >
193+
{"requestId": $context.requestId, "integration-error": $context.integration.error, "integration-status": $context.integration.status, "integration-latency": $context.integration.latency, "integration-requestId": $context.integration.requestId, "integration-integrationStatus": $context.integration.integrationStatus, "response-latency": $context.responseLatency, "status": $context.status}
204194
DefinitionBody: !Transform
205195
Name: "AWS::Include"
206196
Parameters:
@@ -445,23 +435,23 @@ Resources:
445435
Stage: !Ref Stage
446436

447437
# CloudFormation Stack with the Cross-service EventBus Rules for Web Service
448-
# SubscriptionsStack:
449-
# Type: AWS::Serverless::Application
450-
# UpdateReplacePolicy: Delete
451-
# DeletionPolicy: Delete
452-
# DependsOn:
453-
# - UnicornWebEventBusArnParam
454-
# Properties:
455-
# Location: "Integration/subscriptions.yaml"
456-
# Parameters:
457-
# Stage: !Ref Stage
438+
SubscriptionsStack:
439+
Type: AWS::Serverless::Application
440+
UpdateReplacePolicy: Delete
441+
DeletionPolicy: Delete
442+
DependsOn:
443+
- UnicornWebEventBusArnParam
444+
Properties:
445+
Location: "Integration/subscriptions.yaml"
446+
Parameters:
447+
Stage: !Ref Stage
458448

459449
Outputs:
460450
#### API GATEWAY OUTPUTS
461451
BaseUrl:
462452
Description: Web service API endpoint
463453
Value: !Sub "https://${UnicornWebApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}"
464-
UnicornWebRestApiUrl:
454+
UnicornWebApiUrl:
465455
Description: Web service API endpoint
466456
Value: !Sub "https://${UnicornWebApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${Stage}/"
467457

0 commit comments

Comments
 (0)