ALIYUN::ESS::ScalingGroup类型用于创建伸缩组。伸缩组是具有相同应用场景的ECS实例的集合,创建成功后不会立即生效,需要使用ALIYUN::ESS::ScalingGroupEnable启用伸缩组,才能触发伸缩活动,执行伸缩规则。

语法

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

属性

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

取值范围:0~1000。

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

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

取值范围:0~1000。

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

ScalingGroupName String 伸缩组的显示名称
  • 长度为2~40个字符。
  • 以数字、英文字母(区分大小写)或中文字符开头,可包含字母、中文字符、数字、下划线(_)、短横线(-)、和英文句点(.)。
  • 同一账号同一地域内名称唯一。默认值:ScalingGroupId。
LaunchTemplateId String 实例启动模板ID,用于指定伸缩组从实例启动模板获取启动配置信息。
LaunchTemplateVersion String ECS实例启动模板的版本 取值:
  • 固定的模板版本号
  • Default:始终使用模板默认版本
  • Latest:始终使用模板最新版本
RemovalPolicys List ECS实例移出伸缩组的策略 取值:
  • OldestInstance(默认值):移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration(默认值):移出最早伸缩配置创建的ECS实例。
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 多个交换机ID 最多可指定5个交换机ID。当指定VSwitchIds时,将忽略VSwitchId的值。交换机的优先级按照指定顺序依次减小。 当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动选择下一优先级的虚拟交换机创建ECS实例。
MultiAZPolicy String 多可用区伸缩组ECS实例扩缩容策略 取值:
  • PRIORITY:根据您定义的虚拟交换机扩缩容。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动使用下一优先级的虚拟交换机创建ECS实例。
  • BALANCE:在伸缩组指定的多可用区之间均匀分配ECS实例。
  • COST_OPTIMIZED:按vCPU单价从低到高进行尝试创建。当伸缩配置设置了抢占式计费方式的多实例规格时,优先创建对应抢占式计费实例。当抢占式计费实例由于库存等原因无法创建时,自动尝试以按量付费的方式创建。
NotificationConfigurations List 事件及资源变化通知的配置列表
ProtectedInstances List 伸缩组内处于保护模式的ECS实例个数 最多1000个
StandbyInstances List 伸缩组内处于备用模式的ECS实例个数 最多1000个
HealthCheckType String 健康检查类型 取值:
  • ECS
  • NONE
GroupDeletionProtection Boolean 是否开启伸缩组删除保护 取值:
  • true:开启伸缩组删除保护,此时不能删除该伸缩组。
  • false(默认值):关闭伸缩组删除保护。
DesiredCapacity Integer 伸缩组内ECS实例的期望数量,伸缩组会自动将ECS实例数量维持在期望实例数。 取值大于等于MinSize,小于等于MaxSize。
InstanceId String ECS实例的ID。创建伸缩组时,将从指定的实例获取所需的配置信息,并自动创建伸缩配置。

返回值

Fn::GetAtt

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

示例

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