ALIYUN::ESS::ScalingGroup类型用于创建伸缩组。

语法

{
  "Type": "ALIYUN::ESS::ScalingGroup",
  "Properties": {
    "MultiAZPolicy": String,
    "NotificationConfigurations": List,
    "ProtectedInstances": List,
    "ScalingGroupName": String,
    "VSwitchIds": List,
    "DefaultCooldown": Integer,
    "MinSize": Integer,
    "GroupDeletionProtection": Boolean,
    "MaxSize": Integer,
    "VSwitchId": String,
    "LoadBalancerIds": List,
    "StandbyInstances": List,
    "RemovalPolicys": List,
    "HealthCheckType": String,
    "DBInstanceIds": List
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
MinSize integer 伸缩组内ECS实例个数的最小值。

取值范围:0~100。

当伸缩组内ECS实例数小于MinSize时,弹性伸缩会自动创建ECS实例。

MaxSize integer 伸缩组内ECS实例个数的最大值。

取值范围:0~100。

当伸缩组内ECS实例数大于MaxSize时,弹性伸缩会自动移出ECS实例。

ScalingGroupName string 伸缩组的显示名称。
  • 长度为2~40个英文或中文字符。
  • 以数字、大小字母或中文开头,可包含字母、汉字、数字,下划线(_)、连字符(-)、和点号(.)。
  • 同一账号同一地域内唯一。如果没有指定该参数,则默认值为 ScalingGroupId
RemovalPolicys list ECS实例移出伸缩组的策略。 取值范围:
  • OldestInstance:移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration:移出最早伸缩配置创建的ECS实例。

默认值:OldestScalingConfiguration或OldestInstance。

VSwitchId string 专有网络中虚拟交换机ID。 无。
LoadBalancerIds list 负载均衡实例的ID。 取值可以是由多台负载均衡实例ID组成一个JSON数组,最多支持5个ID,ID之间用半角逗号(,)隔开。
DefaultCooldown integer 一次伸缩活动(添加或移出ECS实例)结束后的一段冷却时间。

取值范围:0~86400。

单位:秒。

默认值:300 。

冷却时间内,该伸缩组不执行其它的伸缩活动,仅针对云监控报警任务触发的伸缩活动有效。

DBInstanceIds list 云数据库RDS版实例的ID。 取值可以是由多台RDS实例ID组成一个JSON数组,最多支持8个ID,ID之间用半角逗号(,)隔开。
VSwitchIds list 指定多个VSwitch ID。 最多可指定 5个VSwitch ID。当指定VSwitchIds时,将忽略VSwitchId的值。
MultiAZPolicy string 多可用区伸缩组ECS实例扩缩容策略。 取值范围:PRIORITY、BALANCE
NotificationConfigurations list 事件及资源变化通知配置列表。 无。
ProtectedInstances list 保护伸缩组内的ECS实例。 最多1000个。
StandbyInstances list 伸缩组中备用的ECS实例。 最多1000个。
HealthCheckType string 健康检查类型。 取值范围:ECS、NONE。
GroupDeletionProtection Boolean 是否开启伸缩组删除保护。 取值范围:
  • true:开启伸缩组删除保护,此时不能删除该伸缩组。
  • false:关闭伸缩组删除保护。

默认值:false。

返回值

Fn::GetAtt

ScalingGroupId:伸缩组的ID。由系统生成,全局唯一。

示例

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "ScalingGroup": {
      "Type": "ALIYUN::ESS::ScalingGroup",
      "Properties": {
        "MaxSize": 1,
        "MinSize": 1,
        # "ScalingGroupName": "HeatCreatedReal2",
        # "DefaultCooldown": 500,
        # "RemovalPolicy_1": "",
        # "RemovalPolicy_2": "",
      }
    }
  },
  "Outputs": {
    "ScalingGroup": {
         "Value": {"Fn::GetAtt": ["ScalingGroup", "ScalingGroupId"]}
    }
  }
}