Cloudformation Error(属性Stepadjustments的值必须是对象列表)

时间:2018-02-21 16:23:27

标签: json ruby amazon-web-services yaml amazon-cloudformation

当我尝试启动堆栈

时,我不断收到此资源创建错误
    ServiceScalingPolicyIn:
    Properties:
      PolicyName: StepDown
      PolicyType: StepScaling
      ScalingTargetId:
        Ref: ServiceScalingTarget
      StepScalingPolicyConfiguration:
        AdjustmentType: ChangeInCapacity
        Cooldown: '300'
        MetricAggregationType: Average
        StepAdjustments:
        - - MetricIntervalLowerBound: '0'
            ScalingAdjustment:
              Ref: TasksCount
    Type: AWS::ApplicationAutoScaling::ScalingPolicy

CPUAlarmScalein:
    Properties:
      EvaluationPeriods: '1'
      Statistic: Average
      Threshold: '25'
      AlarmDescription: Alarm if CPU usage is lower, this will always be
      Period: '300'
      AlarmActions:
      - Ref: ServiceScalingPolicyIn
      Namespace: AWS/ECS
      Dimensions:
      - Name: ClusterName
        Value: ECS365-sandbox
      - Name: ServiceName
        Value: ECSService365
      ComparisonOperator: LessThanThreshold
      MetricName: CPUUtilization
    Type: AWS::CloudWatch::Alarm

我尝试调整更改

ServiceScalingTarget:
DependsOn: ECSService365
Properties:
  MaxCapacity: '10'
  MinCapacity: '1'
  ResourceId:
    Fn::Join:
    - ''
    - - service/
      - Ref: Cluster365
      - "/"
      - Fn::GetAtt:
        - ECSService365
        - Name
  RoleARN:
    Fn::GetAtt:
    - AutoscalingRole
    - Arn
  ScalableDimension: ecs:service:DesiredCount
  ServiceNamespace: ecs
Type: AWS::ApplicationAutoScaling::ScalableTarget

完整堆栈链接https://github.com/manideep444/cloudformations/blob/master/365sandbox.yml AWS Doc: Amazon EC2 Auto Scaling最初仅支持简单的扩展策略。如果您在引入目标跟踪和步骤策略之前创建了扩展策略,则会将您的策略​​视为简单的扩展策略。

enter image description here

1 个答案:

答案 0 :(得分:1)

" StepAdjustments"应该是list,而不是列表中的列表。

以下是official documentation的示例。

StepAdjustments: 
      - 
        MetricIntervalLowerBound: "0"
        MetricIntervalUpperBound: "50"
        ScalingAdjustment: "1"
      - 
        MetricIntervalLowerBound: "50"
        ScalingAdjustment: "2"