AWS CloudFormation参数默认值小于最小长度的可行方案咨询
AWS CloudFormation 参数默认值与验证规则冲突问题
问题场景
我正在构建AWS CloudFormation模板,其中包含如下参数定义:
Naming: Type: String Default: aws-ab- MinLength: 12 Description: 'aws-ab-{customer}-{environment}'
该参数前缀固定为aws-ab-,其余部分需用户配置。但当前模板报错:
Template contains errors.: Parameter 'Naming' must contain at least 12 characters
请问是否可以设置明知违反验证规则的默认占位值,由用户后续补全?
解答
不行。CloudFormation在模板验证阶段就会检查所有参数的默认值是否符合定义的约束(比如这里的MinLength:12),如果默认值不满足,直接就会抛出模板错误,根本无法完成模板的创建或部署流程,更无法等待用户后续补全。
可行替代方案
- 设置符合长度要求的占位默认值:比如把默认值设为
aws-ab-customer-dev,既满足12字符的最小长度要求,又能明确提示用户需要替换的部分 - 移除默认值,设为必填参数:去掉
Default字段,这样用户必须在部署时输入符合规则的命名值,避免默认值带来的验证问题 - 使用动态拼接逻辑:单独定义
Customer和Environment参数,再通过Fn::Sub函数拼接出完整的命名格式,无需用户直接输入长串命名
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

