ALIYUN::ESS::ScalingGroupEnable类型用于启用伸缩组。

语法

{
  "Type": "ALIYUN::ESS::ScalingGroupEnable",
  "Properties": {
    "ScalingConfigurationId": String,
    "ScalingRuleArisExecuteVersion": Integer,
    "ScalingRuleAris": List,
    "ScalingGroupId": String,
    "RemoveInstanceIds": List,
    "InstanceIds": List,
    "DetachOptions": Map,
    "AttachOptions": Map
  }
}

属性

属性名称类型必须允许更新描述约束
ScalingGroupId String 伸缩组ID。
ScalingConfigurationId String 需要在伸缩组内激活的伸缩配置ID。
InstanceIds List 启用后需要加入伸缩组的ECS实例ID 。最多支持20个。
ScalingRuleArisExecuteVersionInteger伸缩规则标识符执行版本。改变属性会执行一次ScalingRuleAris中的所有的缩放规则。最小值:0。
ScalingRuleArisList伸缩规则的唯一标识符列表。查询结果会忽略失效的伸缩规则唯一标识符,并且不报错。最多支持10个。
RemoveInstanceIdsList待删除ECS实例ID列表。最多支持1000个。
DetachOptionsMap卸载实例的配置项。更多信息,请参见DetachOptions属性
AttachOptionsMap挂载实例的配置项。更多信息,请参见AttachOptions属性

AttachOptions语法

{
    "LifecycleHook": Boolean,
    "Entrusted": Boolean
}

AttachOptions属性

属性名称类型必须允许更新描述约束
LifecycleHookBoolean伸缩组添加实例时,是否触发扩容生命周期挂钩。取值:
  • true:触发扩容生命周期挂钩。
  • false(默认值):不触发扩容生命周期挂钩。
EntrustedBoolean将已经存在的实例手动添加到伸缩组时,是否将该实例的生命周期托管给伸缩组。取值:
  • true:托管。该实例的生命周期由弹性伸缩管理,与伸缩组自动创建的实例一致。

    实例被移出伸缩组(不包括通过调用DetachInstances参数移出)时会自动释放。

  • false(默认值):不托管。该实例在被移出伸缩组时不会被释放。
说明 不支持托管包年包月实例。

DetachOptions语法

{
    "LifecycleHook": Boolean,
    "DecreaseDesiredCapacity": Boolean,
    "DetachOption": "String"
}

DetachOptions属性

属性名称类型必须允许更新描述约束
LifecycleHookBoolean伸缩组移出ECS实例或ECI实例时,是否触发缩容生命周期挂钩。取值:
  • true:触发缩容生命周期挂钩。
  • false(默认值):不触发缩容生命周期挂钩。
DecreaseDesiredCapacityBoolean是否修改期望实例数。取值:
  • true(默认值):ECS实例或ECI实例移出伸缩组后,期望实例数也减少相应数量。
  • false:ECS实例或ECI实例移出伸缩组后,期望实例数不会变化。
DetachOptionString指定是否停止使用ECS实例或ECI实例作为负载均衡实例的后端服务器(即将ECS实例或ECI实例移出负载均衡实例的默认服务器组和虚拟服务器组),以及是否将ECS实例或ECI实例移出RDS实例的访问白名单。取值:

both:将ECS实例或ECI实例移出负载均衡实例的默认服务器组和虚拟服务器组,并将ECS实例或ECI实例移出RDS实例的访问白名单。

返回值

Fn::GetAtt

  • LifecycleState: 伸缩组的状态。
  • ScalingInstances: 伸缩组自动创建的实例。
  • ScalingGroupId: 伸缩组ID。
  • ScalingRuleArisExecuteResultInstancesRemoved: 通过执行伸缩规则aris删除实例。
  • ScalingRuleArisExecuteResultNumberOfAddedInstances: 通过执行伸缩规则aris添加的vm数量。
  • ScalingInstanceDetails: 伸缩实例的详细信息。
  • ScalingRuleArisExecuteErrorInfo: 执行伸缩规则aris的错误信息。
  • ScalingRuleArisExecuteResultInstancesAdded: 通过执行伸缩规则aris添加实例。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      ECSInstanceIds:
        Type: CommaDelimitedList
        AssociationProperty: ALIYUN::ECS::Instance::InstanceId
      AutoScalingGroupId:
        Type: String
        AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
      ScalingConfigurationId:
        Type: String
        AssociationProperty: ALIYUN::ESS::ScalingConfiguration::ScalingConfigurationId
    Resources:
      ScalingGroupEnable:
        Type: ALIYUN::ESS::ScalingGroupEnable
        Properties:
          ScalingGroupId:
            Ref: AutoScalingGroupId
          ScalingConfigurationId:
            Ref: ScalingConfigurationId
          InstanceIds:
            Ref: InstanceIds
    Outputs:
      ScalingGroupEnable:
        Value:
          Fn::GetAtt:
            - ScalingGroupEnable
            - LifecycleState
                        
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "ECSInstanceIds": {
          "Type": "CommaDelimitedList",
          "AssociationProperty": "ALIYUN::ECS::Instance::InstanceId"
        },
        "AutoScalingGroupId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
        },
        "ScalingConfigurationId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ESS::ScalingConfiguration::ScalingConfigurationId"
        }
      },
      "Resources": {
        "ScalingGroupEnable": {
          "Type": "ALIYUN::ESS::ScalingGroupEnable",
          "Properties": {
            "ScalingGroupId": {
              "Ref": "AutoScalingGroupId"
            },
            "ScalingConfigurationId": {
              "Ref": "ScalingConfigurationId"
            },
            "InstanceIds": {
              "Ref": "InstanceIds"
            }
          }
        }
      },
      "Outputs": {
        "ScalingGroupEnable": {
          "Value": {
            "Fn::GetAtt": [
              "ScalingGroupEnable",
              "LifecycleState"
            ]
          }
        }
      }
    }