fix(autoscaling): AutoScalingGroup
requireImdsv2 with launchTemplate or mixedInstancesPolicy throws unclear error
#32220
+23
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #27586
Fixes #27586
The above issue is already marked as closed, but there is some discussion in it about an additional edge case that this pull request fixes.
Reason for this change
When defining an AutoScalingGroup with both the
requireImdsv2
prop and thelaunchTemplate
prop, the error message is not clear about the problem.It is not clear from the error that
requireImdsv2
should be set in the provided launchTemplate itself rather than the AutoScalingGroup.The error occurs because setting
requireImdsv2
on the AutoScalingGroup adds the aspect AutoScalingGroupRequireImdsv2Aspect to it, which expects there to be a child node called either'LaunchConfig'
or'LaunchTemplate'
depending on a feature flag. This child node is only set in the AutoScalingGroup when neitherlaunchTemplate
normixedInstancesPolicy
props are provided.Description of changes
Add the
requireImdsv2
prop to theverifyNoLaunchConfigPropIsGiven
method, which throws errors when certains props are set at the same time aslaunchTemplate
ormixedInstancesPolicy
.Description of how you validated changes
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license