(aws-s3-notifications): Straightforward implementation of NotificationConfiguration
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
Hi,
regarding to these issues:
* https://github.com/aws/aws-cdk/issues/9552
* https://github.com/aws/aws-cdk/issues/16173
My proposition is to add an alternative way to implement `AWS::S3::Bucket NotificationConfiguration` that doesn't need to create four resources with no control on it.
### Use Case
I really don't understand the choice of aws to create by default an internal lambda with role and policy to avoid a really specific case of circular dependency.
Something very simple in cloudformation like the code below create a lots of noise in the cloudformation and a lost of control on resources deployed. Right know i'm stuck with the CfnBucket because on this downside
```
...
"NotificationConfiguration": {
"TopicConfigurations": [{
"Event": "s3:ObjectCreated:*",
"Topic": { "Ref": "SNSTopic" }
}]
}
```
### Proposed Solution
Add a cdk features like `"@aws-cdk/aws-s3:straightForwardCfnNotification:true"` that doesn't require to create unecessary resources when adding a event Notification to the bucket.
### Other Information
The internal implementation as severe impact on cloudformation deployment for us.
The cloudformation size increase with 4 aditionnal resources (with python code on lambda side) and a lots of us as strict constraint on role deployment and it's not the first time i see aws create role without giving control on it (specifically the naming).
### Acknowledgements
- [ ] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### CDK version used
2.24.1
### Environment details (OS name and version, etc.)
linux
Contributor guide
Research direction
Start by reviewing the linked issues and the current CfnBucket NotificationConfiguration behavior described here. Compare that behavior with the proposed feature flag and the existing S3 notification implementation; done means providing the requested alternative without the additional resources, while preserving the stated CloudFormation notification configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100