CloudFormation栈创建报错:Stepadjustments属性需为对象列表
解决CloudFormation中StepAdjustments的资源创建错误
我来帮你搞定这个CloudFormation栈的问题——你碰到的Value of property Stepadjustments must be a list of objects错误,核心原因是模板里的StepAdjustments格式不符合AWS的要求。
问题根源
CloudFormation要求步进缩放策略的StepAdjustments必须是对象组成的列表,如果你的模板里把它定义成了单个对象、或者格式有误(比如缺少列表的标识-),就会触发这个错误。另外结合AWS文档的说明:
AWS文档说明:Amazon EC2 Auto Scaling最初仅支持简单缩放策略,若在目标追踪和步进策略推出前创建的缩放策略,会被视为简单缩放策略。
如果你的模板是从旧的简单策略升级来的,很可能在切换到步进策略时,没有完全按照新的结构配置,导致格式冲突。
修复步骤
修正StepAdjustments的格式
确保StepAdjustments是包含多个对象的数组,正确的YAML格式示例如下:StepAdjustments: - MetricIntervalLowerBound: 0 ScalingAdjustment: 1 - MetricIntervalUpperBound: 0 ScalingAdjustment: -1重点检查是否给每个调整项加上了前缀
-,这是标识列表项的关键。避免混合策略配置
如果之前用的是简单缩放策略,切换到步进策略时,要移除简单策略的相关属性(比如ScalingAdjustment直接作为顶层属性),确保所有配置都符合步进策略的结构要求。提前验证模板
使用AWS CLI的模板验证命令提前排查语法问题:aws cloudformation validate-template --template-body file://your-template.yml这个命令能帮你在部署前发现格式错误,节省调试时间。
额外提示
如果还是有问题,可以逐一检查StepAdjustments里每个对象的属性:
MetricIntervalLowerBound和MetricIntervalUpperBound必须是数值类型(不能是字符串)ScalingAdjustment必须是整数,代表实例数的调整量(正数扩容,负数缩容)
内容的提问来源于stack exchange,提问作者rotwar
相关产品推荐
相关产品推荐

