创建伸缩组

最近更新时间:2018-08-21 16:13:52

1. 接口描述

本接口(CreateScalingGroup)用于创建新的伸缩组。
接口请求域名:

scaling.api.qcloud.com

1)伸缩组、负载均衡实例必须在同一个地域、同一项目。

2)每个项目最多只能创建20个伸缩组。

3)一个伸缩组只能对应1个启动配置。

2. 输入参数

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为CreateScalingGroup。

参数名称 是否必选 类型 描述
scalingConfigurationId String 待创建伸缩组所要使用的启动配置ID,其指定了通过弹性伸缩自动创建云服务器实例时所使用的模版。可调用查询启动配置(DescribeScalingConfiguration)接口查询。
scalingGroupName String 用户定义的伸缩组名称。
minSize Int 最小伸缩数,即伸缩组内最小CVM实例数,范围0-200,不大于maxSize。当伸缩组CVM实例数小于minSize时,AS会自动添加CVM实例,使得伸缩组内的当前实例数等于minSize。
maxSize Int 最大伸缩数,即伸缩组内最大CVM实例数,范围0-200,不小于minSize。当伸缩组CVM实例数大于maxSize时,AS会自动移出CVM实例,使得伸缩组内的当前实例数等于maxSize。
removePolicy String 移除策略。只有两种取值:RemoveOldestInstance,表示移除最旧策略,即当需要移除实例时,移除最先加入伸缩组的实例;RemoveNewestInstance,表示移除最新策略,即当需要移除实例时,移除最后加入伸缩组的实例。
vpcId String 私有网络ID。传0表示基础网络, 如需指定vpc网络,请填写查询私有网络列表(DescribeVpcEx)接口中返回的unVpcId(私有网络统一ID)字段。
zoneIds.n String 伸缩组所在地域Id。当vpcId为0时,此参数必传。可调用查询可用区(DescribeAvailabilityZones)接口查询。
loadBalancerIds.n String 与伸缩组绑定的各负载均衡的Id数组,可通过查询负载均衡实例列表 (DescribeLoadBalancers) 接口查询。
subnetIds.n String 伸缩组的子网Id。当vpcId不为0时,此参数必传。可调用查询子网列表(DescribeSubnetEx)接口查询。
projectId String 项目ID,不传为0,表示默认项目。如需指定其他项目,可调用查询项目列表(DescribeProject)接口查询。
desiredCapacity Int 起始实例数,即伸缩组刚创建时的云服务器数量
forwardLBInfos array of ForwardLBInfo object 伸缩组绑定的应用型负载均衡信息,伸缩组不支持同时绑定传统型负载均衡与应用型负载均衡,此参数与 loadBalancerIds 不可同时指定。目前仅支持绑定一个应用型负载均衡实例。

数据类型

ForwardLBInfo

参数名称 是否必选 类型 描述
listenerId String 应用型负载均衡监听器 ID,可通过 DescribeForwardLBListeners 接口查询。
loadBalancerId String 负载均衡实例 ID,可通过 DescribeLoadBalancers 接口查询。
locationId String 应用型负载均衡监听器的转发规则 ID。可通过 DescribeForwardLBListeners 接口查询。绑定七层监听器时需要指定此参数。
rsInfoSet array of RsInfo object 后端云服务器端口以及权重信息,目前仅支持指定一个端口的权重。

RsInfo

参数名称 是否必选 类型 描述
port String 负载均衡实例监听器后端云服务器监听端口,可选值:1~65535。
weight String 云服务器的权重,取值范围:0-100。

3. 输出参数

参数名称 类型 描述
code Int 公共错误码, 0表示成功,其他值表示失败。详见错误码页面的公共错误码
codeDesc String 业务侧错误码。成功时返回Success,错误时返回具体业务错误原因。
message String 模块错误信息描述,与接口相关。
data Array 输出结果,显示新创建的伸缩组信息。

其中,data参数的构成如下:

参数名称 类型 描述
scalingGroupIdSet Array 创建的新伸缩组的ID。

其中,scalingGroupIdSet是一个集合,包含了新创建的所有伸缩组ID。

4. 错误码

以下错误码表仅列出了该接口的业务逻辑错误码,更多公共错误码详见AS错误码

错误码 描述
Conflict.MaxsizeLessMinsize maxsize必须大于minsize
InvalidParameter.ZoneIdError zoneId不正确
InvalidParameter.VpcIdOrSubnetIdError vpcId或者subnetId不正确
Conflict.VpcIdVszoneId vpc和zone不能同时指定
InvalidParameter.LoadBalancerIdError LbId不正确
QuotaExceeded.ScalingGroup 伸缩组添加超过上限
QuotaExceeded.ZoneId zoneId添加超过上限
QuotaExceeded.SubnetId subnetId添加超过上限
QuotaExceeded.LoadBalancerId lbId添加超过上限
NameDuplicate.ScalingGroup 伸缩组名称已存在
Conflict.InsufficientBalance 账户余额不足,无法创建伸缩组

5. 示例

https://scaling.api.qcloud.com/v2/index.php?
&<公共请求参数>
&scalingGroupName=asgtest
&scalingConfigurationId=asc-hu7u8u96
&minSize=0
&maxSize=1
&zoneIds.0=100002
&removePolicy=RemoveOldestInstance
&vpcId=0
&forwardLBInfos.0.listenerId=lbl-hzrbg8ax
&forwardLBInfos.0.loadBalancerId=lb-ndt8w5sz
&forwardLBInfos.0.locationId=loc-fp4v1pt3
&forwardLBInfos.0.rsInfoSet.0.port=80
&forwardLBInfos.0.rsInfoSet.0.weight=10

返回示例如下,这里只创建了一个伸缩组,因此scalingGroupIdSet中只包含一个元素。

{
    "code":"0",
    "message":"",
    "codeDesc":"Success",      
    "data":{
        "scalingGroupIdSet":[
            "asg-hz5v140t"
        ]
    }
}