Not sure if this entirely fits your needs, but I've had success with configuring a Lambda function with a CloudWatch event that will trigger on CloudFormation API calls.
You'll need CloudTrail enabled to do this.
You could probably limit the function's execution to specific stacks (probably using the resources attribute in the CloudTrail event)
...
functions:
stack-deployment-function:
handler: stack-deployment-function.handler
description: Lambda function triggered by Stack changes/deployments
timeout: 300
environment:
FOO: bar
events:
- cloudwatchEvent:
name: ${self:service}-${opt:stage, self:provider.stage}-stack-deployment-function
description: 'Updates XYZ after CloudFormation update'
event:
source:
- "aws.cloudformation"
detail-type:
- "AWS API Call via CloudTrail"
detail:
eventName:
# Need to call DescribeStacks in Lambda to confirm successful deployment before making any changes
- "UpdateStack"
- "CreateStack"