Skip to content

Commit c593bb1

Browse files
committed
feat: updated Pipes implementation
1 parent be854fd commit c593bb1

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

unicorn_contracts/template.yaml

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -359,29 +359,37 @@ Resources:
359359
SourceParameters:
360360
DynamoDBStreamParameters:
361361
MaximumRetryAttempts: 3
362+
BatchSize: 1
363+
StartingPosition: LATEST
362364
DeadLetterConfig:
363365
Arn: !GetAtt ContractsTableStreamToEventPipeDLQ.Arn
364-
StartingPosition: LATEST
365-
OnPartialBatchItemFailure: AUTOMATIC_BISECT
366-
BatchSize: 1
367366
FilterCriteria:
368367
Filters:
369-
- Pattern: !ToJsonString
370-
eventName: [INSERT, MODIFY]
371-
dynamodb:
372-
NewImage:
373-
contract_status:
374-
S: [DRAFT, APPROVED]
375-
Target: !GetAtt UnicornContractsEventBus.Arn
368+
- Pattern: >-
369+
{"eventName":["INSERT","MODIFY"],"dynamodb":{"NewImage":{"contract_status":{"S":["DRAFT","APPROVED"]}}}}
370+
LogConfiguration:
371+
CloudwatchLogsLogDestination:
372+
LogGroupArn: !GetAtt ContractsTableStreamToEventPipeLogGroup.Arn
373+
Level: ERROR
376374
TargetParameters:
377375
EventBridgeEventBusParameters:
378-
Source: "{{resolve:ssm:/uni-prop/UnicornContractsNamespace}}"
379376
DetailType: ContractStatusChanged
380-
InputTemplate: !ToJsonString
381-
property_id: "<$.dynamodb.NewImage.property_id.S>"
382-
contract_id: "<$.dynamodb.NewImage.contract_id.S>"
383-
contract_status: "<$.dynamodb.NewImage.contract_status.S>"
384-
contract_last_modified_on: "<$.dynamodb.NewImage.contract_last_modified_on.S>"
377+
Source: "{{resolve:ssm:/uni-prop/UnicornContractsNamespace}}"
378+
InputTemplate: |-
379+
{
380+
"property_id": "<$.dynamodb.Keys.property_id.S>",
381+
"contract_id": "<$.dynamodb.NewImage.contract_id.S>",
382+
"contract_status": "<$.dynamodb.NewImage.contract_status.S>",
383+
"contract_last_modified_on": "<$.dynamodb.NewImage.contract_last_modified_on.S>"
384+
}
385+
Target: !GetAtt UnicornContractsEventBus.Arn
386+
387+
ContractsTableStreamToEventPipeLogGroup:
388+
Type: AWS::Logs::LogGroup
389+
UpdateReplacePolicy: Delete
390+
DeletionPolicy: Delete
391+
Properties:
392+
RetentionInDays: !FindInMap [LogsRetentionPeriodMap, !Ref Stage, Days]
385393

386394
# IAM Role for Event Bridge Pipe
387395
ContractsTableStreamToEventPipeRole:
@@ -393,6 +401,9 @@ Resources:
393401
Effect: Allow
394402
Principal:
395403
Service: pipes.amazonaws.com
404+
Condition:
405+
StringEquals:
406+
aws:SourceAccount: !Ref AWS::AccountId
396407
Policies:
397408
- PolicyName: ContractsTableStreamToEventPipePolicy
398409
PolicyDocument:
@@ -407,6 +418,7 @@ Resources:
407418
- dynamodb:DescribeStream
408419
- dynamodb:GetRecords
409420
- dynamodb:GetShardIterator
421+
- dynamodb:ListStreams
410422
Resource: !GetAtt ContractsTable.StreamArn
411423
- Effect: Allow
412424
Action:

0 commit comments

Comments
 (0)