ALIYUN::ESS::ScalingRule类型用于创建伸缩规则。

语法

{
  "Type": "ALIYUN::ESS::ScalingRule",
  "Properties": {
    "AdjustmentValue": Integer,
    "Cooldown": Integer,
    "ScalingGroupId": String,
    "AdjustmentType": String,
    "ScalingRuleName": String,
    "MetricName": String,
    "PredictiveTaskBufferTime": Integer,
    "ScalingRuleType": String,
    "PredictiveValueBuffer": Integer,
    "TargetValue": Number,
    "StepAdjustment": List,
    "PredictiveValueBehavior": String,
    "DisableScaleIn": Boolean,
    "InitialMaxSize": Integer,
    "MinAdjustmentMagnitude": Integer,
    "EstimatedInstanceWarmup": Integer,
    "PredictiveScalingMode": String,
    "ScaleInEvaluationCount": Integer,
    "ScaleOutEvaluationCount": Integer
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
AdjustmentValue Integer

伸缩规则的调整值,适用于简单规则和步进规则。

不同调整方式对应的取值范围:
  • QuantityChangeInCapacity:-500~500。
  • PercentChangeInCapacity:-100~10,000。
  • TotalCapacity:0~1000。
说明 任何情况下,单次调整的ECS实例台数都不能超过500。
Cooldown Integer 伸缩规则的冷却时间,仅适用于简单规则。 取值范围:0~86400。

单位:秒。

默认值为空。

ScalingGroupId String 伸缩规则所属的伸缩组ID。
AdjustmentType String 伸缩规则的调整方式,适用于简单规则和步进规则。 取值:
  • QuantityChangeInCapacity:增加或减少指定数量的ECS实例。
  • PercentChangeInCapacity:增加或减少指定比例的ECS实例。
  • TotalCapacity: 将当前伸缩组的ECS实例数量调整到指定数量。
ScalingRuleName String 伸缩规则的名称。 长度为2~64个字符,以数字、字母或汉字开头。可包含数字、字母、汉字、下划线(_)、短划线(-)和英文句点(.)。

如果没有指定该参数,默认为ScalingRuleId的取值。

MetricName String 预定义监控项,适用于目标追踪规则和预测规则。 取值:
  • 目标追踪规则:
    • CpuUtilization:平均CPU使用率。
    • ClassicInternetRx:经典网络公网入流量平均值。
    • ClassicInternetTx:经典网络公网出流量平均值。
    • VpcInternetRx:专有网络公网入流量平均值。
    • VpcInternetTx:专有网络公网出流量平均值。
    • IntranetRx:内网入流量平均值。
    • IntranetTx :内网出流量平均值。
  • 预测规则:
    • CpuUtilization:平均CPU使用率。
    • IntranetRx:内网入流量平均值。
    • IntranetTx :内网出流量平均值。
PredictiveTaskBufferTime Integer 预测规则自动创建的预测任务,默认在整点执行。您可以设置预启动时间提前执行预测任务,预先准备资源。 取值范围:0~60。

单位:分钟。

默认值:0。
ScalingRuleType String 伸缩规则类型。 取值:
  • SimpleScalingRule(默认值):简单规则。根据调整方式(AdjustmentType)和调整值(AdjustmentValue)调整ECS实例数量。
  • TargetTrackingScalingRule:目标追踪规则。根据预定义监控项(MetricName)动态计算需要扩缩容的ECS实例数量,尽量将预定义监控项的指标值维持在目标值(TargetValue)附近。
  • StepScalingRule: 步进规则,根据阈值和指标值提供分步扩展方式。
  • PredictiveScalingRule:预测规则,基于机器学习能力分析伸缩组的历史监控数据预测未来监控指标值,并支持自动创建定时任务设置伸缩组边界。
PredictiveValueBuffer Integer PredictiveValueBehavior为PredictiveValueOverrideMaxWithBuffer时生效,预测值会按照该比例增加,当增加后的值大于初始最大值时,会采用增加后的值。 取值范围:0~100。

默认值:0。

TargetValue Number 目标值,适用于目标追踪规则和预测规则。 TargetValue最多保留小数点后三位,且必须大于0。
StepAdjustment List 分步步骤。 更多信息,请参见StepAdjustment属性
PredictiveValueBehavior String 预测规则最大值处理方式。 取值:
  • MaxOverridePredictiveValue(默认值):初始最大值会覆盖预测值。预测值大于初始最大值时,预测任务的最大值采用初始最大值。
  • PredictiveValueOverrideMax:预测值会覆盖初始最大值。预测值大于初始最大值时, 预测任务的最大值采用预测值。
  • PredictiveValueOverrideMaxWithBuffer:预测值会附加一定比例。预测值会按照PredictiveValueBuffer比例增加,当增加后的值大于初始最大值时,会采用增加后的值。
DisableScaleIn Boolean 是否禁用缩容,仅适用于目标追踪规则。 取值:
  • true
  • false(默认值)
InitialMaxSize Integer 伸缩组实例数上限,和PredictiveValueBehavior结合使用。 默认值为伸缩组最大实例数(MaxSize的取值)。
MinAdjustmentMagnitude Integer 伸缩规则最小调整实例数。 仅当伸缩规则类型为SimpleScalingRule或StepScalingRule,且AdjustmentType为PercentChangeInCapacity时该参数生效。
EstimatedInstanceWarmup Integer 实例预热时间,适用于目标追踪规则和步进规则。 取值范围:0~86,400。

单位:秒。

默认值:300。

处于预热状态的ECS实例将正常的加入伸缩组,但是期间将不会向云监控上报监控数据。

说明 动态计算需要扩缩容的ECS实例数量时,处于预热状态的实例不计入现有实例数量。
PredictiveScalingMode String 预测规则的模式。 取值:
  • PredictAndScale(默认值):产生预测结果并创建预测任务。
  • PredictOnly:产生预测结果,但不会创建预测任务。
ScaleInEvaluationCount Integer 指定对应的缩容报警任务触发报警时,需要连续满足阈值条件的次数。 创建目标追踪规则后,会自动创建报警任务。

默认值:15。

ScaleOutEvaluationCount Integer 指定对应的扩容报警任务触发报警时,需要连续满足阈值条件的次数。 创建目标追踪规则后,会自动创建报警任务。

默认值:3。

StepAdjustment语法

"StepAdjustment": [
  {
    "MetricIntervalUpperBound": Number,
    "ScalingAdjustment": Integer,
    "MetricIntervalLowerBound": Number
  }
]

StepAdjustment属性

属性名称 类型 必须 允许更新 描述 约束
MetricIntervalUpperBound Number 分步步骤的上边界,仅适用于步进规则。 取值范围:-9.999999E18~9.999999E18。
ScalingAdjustment Integer 分步步骤对应的实例扩展数量,仅适用于步进规则。
MetricIntervalLowerBound Number 分步步骤的下边界,仅适用于步进规则。 取值范围:-9.999999E18~9.999999E18。

返回值

Fn::GetAtt

  • ScalingRuleAri:伸缩规则的唯一标识符。
  • ScalingRuleId:伸缩规则的ID。由系统生成,全局唯一。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Description: Test ESS ScalingRule
    Parameters:
      AutoScalingGroupId:
        Type: String
        AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
    Resources:
      ScalingRule:
        Type: ALIYUN::ESS::ScalingRule
        Properties:
          AdjustmentType: QuantityChangeInCapacity
          ScalingGroupId:
            Ref: AutoScalingGroupId
          AdjustmentValue: 1
    Outputs: {}
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "Test ESS ScalingRule",
      "Parameters": {
        "AutoScalingGroupId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
        }
      },
      "Resources": {
        "ScalingRule": {
          "Type": "ALIYUN::ESS::ScalingRule",
          "Properties": {
            "AdjustmentType": "QuantityChangeInCapacity",
            "ScalingGroupId": {
              "Ref": "AutoScalingGroupId"
            },
            "AdjustmentValue": 1
          }
        }
      },
      "Outputs": {
      }
    }