aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap
[AWS::Kinesis::StreamConsumer] - [Enhancement] - Tags should not require Replacement
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
### Name of the resource
AWS::Kinesis::StreamConsumer
### Resource name
_No response_
### Description
Currently, **CloudFormation** changes to the `Tags` property of an `AWS::Kinesis::StreamConsumer` result in `Replacement`: https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-kinesis-streamconsumer.html#aws-resource-kinesis-streamconsumer-properties
I couldn't find any source as to why that is the case. But, I assume it was probably caused by missing _APIs_ in the **Kinesis** side.
However, I checked the **Kinesis** _API_. And, at least currently, it seems modifying the `Tags` should be possible without requiring a `Replacement`; which is the standard for all other constructs: https://docs.aws.amazon.com/streams/latest/dev/tagging.html#tagging-consumers-api & https://docs.aws.amazon.com/kinesis/latest/APIReference/API_TagResource.html#API_TagResource_Examples
Thus, I am requesting **CloudFormation** to improve its `AWS::Kinesis::StreamConsumer` support and allow modifying the `Tags` property without a `Replacement` by using the `TagResource` **Kinesis** _API_ call.
### Other Details
Note: This blocked a very critical deployment, and we had to workaround the issue by hacking the `Tags` of a nested `Construct` in our **CDK** `Stack`.
Thus, while we unblocked the deployment, the resulting code is very brittle.
As such, we would like to request that this issue be handled with an appropriate level of priority, considering that the `Replacement` of infrastructure assets is a costly and dangerous operation. And that the fix feels relatively straightforward.
Thanks for your attention.
Contributor guide
Research direction
Start by reviewing the AWS::Kinesis::StreamConsumer resource behavior for its Tags property and the referenced Kinesis TagResource API documentation. Done means changing Tags no longer causes resource replacement and uses the tagging API instead; verify the behavior through the repository's relevant coverage process.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100