创建弹性伸缩组 - CreateScalingGroup
功能介绍
伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。
- 默认最多可以创建10个伸缩组。
- 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。
- 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。
- 如果您将多个负载均衡器添加到伸缩组,则只有在所有负载均衡器均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个负载均衡器检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。
- 如果您将负载均衡器的多个端口绑定到伸缩组,则只有在所有端口均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个端口检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。
- 当实例绑定负载均衡器的多个端口时,推荐伸缩策略与云服务器实例告警指标关联,避免伸缩策略与单一业务或网络指标关联,否则当不同告警指标分别指向扩容和缩容时,会导致扩缩容同时触发。
- 弹性伸缩活动中,若实例与负载均衡器的多个端口依次绑定或解绑,未全部成功时,则认为实例伸缩失败。扩容触发实例释放并创建新实例,缩容失败不释放实例。
调试
您可以在API Explorer中调试该接口。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
as:scalingGroup:create
write
-
as:groups:create
-
URI
POST /autoscaling-api/v1/{project_id}/scaling_group
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 参数解释: 项目ID。获取方式请参见获取项目ID。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| scaling_group_name | 是 | String | 参数解释: 伸缩组名称。 约束限制: 不涉及 取值范围: 1-64个字符,只能包含中文、字母、数字、下划线或中划线。 默认取值: 不涉及 |
| scaling_configuration_id | 是 | String | 参数解释: 伸缩配置ID,通过查询弹性伸缩配置列表接口获取,请参考查询弹性伸缩配置列表 - ListScalingConfigs。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| desire_instance_number | 否 | Integer | 参数解释: 期望实例数量。 约束限制: 最小实例数≤期望实例数≤最大实例数。 取值范围: 不涉及 默认取值: 默认值为最小实例数。 |
| min_instance_number | 否 | Integer | 参数解释: 最小实例数量。 约束限制: 最小实例数≤期望实例数≤最大实例数。 取值范围: 不涉及 默认取值: 默认值为0 |
| max_instance_number | 否 | Integer | 参数解释: 最大实例数量。 约束限制: 最小实例数≤期望实例数≤最大实例数。 取值范围: 0-300的整数。 默认取值: 默认值为1。 |
| cool_down_time | 否 | Integer | 参数解释: 指冷却时间,单位为秒。 在每次伸缩活动完成之后,系统开始计算冷却时间。 说明:
约束限制: 伸缩组在冷却时间内,会拒绝告警策略的触发,其他类型的伸缩策略(如定时策略和周期策略)及手动触发不受限制。 取值范围: 0-86400秒。 默认取值: 默认为300秒。 |
| lb_listener_id | 否 | String | 参数解释: 弹性负载均衡监听器ID。获取监听器ID的方法请参考查询负载均衡器列表。 约束限制:
取值范围: 不涉及 默认取值: 不涉及 |
| lbaas_listeners | 否 | Array of lbaas_listeners objects | 参数解释: 弹性负载均衡器信息,列表数据结构请参考表3。获取负载均衡器的信息请参考查询后端云服务器组。 约束限制:
|
| available_zones | 否 | Array of strings | 参数解释: 可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区,会由系统自动指定可用区。详情请参考地区和终端节点。 约束限制: 仅当伸缩组中无伸缩活动时,才可以修改可用区配置。 |
| networks | 是 | Array of networks objects | 参数解释: 网络信息,传入的第一个子网默认作为云服务器的主网卡,其余子网会全部作为云服务器的辅助网卡。获取子网信息请参考查询子网列表。数据结构信息请参考表4。 约束限制: 最多支持选择5个子网。 |
| security_groups | 否 | Array of security_groups objects | 参数解释: 安全组信息。获取安全组信息请参考查询安全组列表。数据结构信息请参考表7。 当伸缩配置和伸缩组同时指定安全组时,将以伸缩配置中的安全组为准;当伸缩配置和伸缩组都没有指定安全组时,增加的弹性云服务器将使用默认安全组。为了使用灵活性更高,推荐在伸缩配置中指定安全组。 约束限制: 仅支持选择1个安全组。 |
| vpc_id | 是 | String | 参数解释: 虚拟私有云(VPC)ID,获取VPC ID具体操作请参考查询VPC列表。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| health_periodic_audit_method | 否 | String | 参数解释: 伸缩组实例健康检查方式。 约束限制: 伸缩组未设置ELB时,不能使用负载均衡健康检查方式。 取值范围: ELB_AUDIT和NOVA_AUDIT。
默认取值: 当伸缩组设置负载均衡时,默认为ELB_AUDIT; 否则默认为NOVA_AUDIT。 |
| health_periodic_audit_time | 否 | Integer | 参数解释: 伸缩组实例的健康检查周期,单位为分钟。 约束限制: 不涉及 取值范围: 可设置为1、5、15、60、180(分钟),若设置为0,可以实现10秒级健康检查。 默认取值: 默认为5(分钟)。 |
| health_periodic_audit_grace_period | 否 | Integer | 参数解释: 伸缩组实例健康状况检查宽限期,单位为秒。 当实例加入伸缩组并且进入已启用状态后,健康状况检查宽限期才会启动,伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。 约束限制: 当伸缩组实例健康检查方式为ELB_AUDIT时,该参数生效。 取值范围: 取值范围0-86400,单位为秒。 默认取值: 默认为600,单位为秒。 |
| instance_terminate_policy | 否 | String | 参数解释: 伸缩组实例移除策略 约束限制: 不涉及 取值范围:
默认取值: 默认为OLD_CONFIG_OLD_INSTANCE |
| delete_publicip | 否 | Boolean | 参数解释: 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的弹性IP。 约束限制: 当弹性IP的计费方式为包年包月时,不会被删除。 取值范围: 取值为true或false。
默认取值: 默认为false |
| delete_volume | 否 | Boolean | 参数解释: 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的数据盘。 约束限制: 当数据盘的计费方式为包年包月时,不会被删除。 取值范围: 取值为true或false。
默认取值: 默认为false |
| enterprise_project_id | 否 | String | 参数解释: 企业项目ID,用于指定伸缩组归属的企业项目。如何获取企业项目ID,请参考查询企业项目列表。关于企业项目特性的详细信息,请参见企业项目管理。 约束限制: 当伸缩组配置企业项目时,由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。 取值范围:
默认取值: 不涉及 |
| multi_az_priority_policy | 否 | String | 参数解释: 伸缩组扩缩容时目标AZ选择的优先级策略。 约束限制: 不涉及 取值范围:
默认取值: 默认为EQUILIBRIUM_DISTRIBUTE |
| description | 否 | String | 参数解释: 伸缩组描述。 约束限制: 不涉及 取值范围: 1-256个字符。 默认取值: 不涉及 |
| iam_agency_name | 否 | String | 参数解释: 委托的名称。委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以为弹性云服务器提供访问云服务的临时凭证。 约束限制:
取值范围: 1-64个字符 默认取值: 不涉及 |
| tags | 否 | Array of tags objects | 参数解释: 创建特定标签并将其添加到伸缩组。每个伸缩组最多添加10个标签。详情请参考表8。 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| pool_id | 是 | String | 参数解释: 后端服务器组ID。如何获取请参见查询后端服务器组列表。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| protocol_port | 是 | Integer | 参数解释: 后端协议端口,指后端云服务器监听的端口。 约束限制: 不涉及 取值范围: [1, 65535] 默认取值: 不涉及 |
| weight | 是 | Integer | 参数解释: 后端服务器的权重,请求将根据pool配置的负载均衡算法和后端服务器的权重进行负载分发。权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 约束限制: 若所在pool的lb_algorithm取值为SOURCE_IP或QUIC_CID,该字段无效。 取值范围: [0, 100] 默认取值: 不涉及 |
| protocol_version | 否 | String | 参数解释: 绑定到负载均衡云服务器组的IP地址版本。 约束限制:
取值范围: 支持ipv4和ipv6。
默认取值: ipv4 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| id | 是 | String | 参数解释: 子网的网络ID。获取方式请参考查询子网列表。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| ipv6_enable | 否 | Boolean | 参数解释: 是否启用IPv6。 约束限制: 子网需要支持ipv6。 取值范围:
默认取值: 默认值为false |
| ipv6_bandwidth | 否 | ipv6_bandwidth object | 参数解释: 绑定的IPv6共享带宽。默认为空,表示未绑定IPv6的共享带宽。 约束限制: 不涉及 |
| allowed_address_pairs | 否 | Array of allowed_address_pairs objects | 参数解释: 是否开启源/目的检查开关。数据结构请参考表6。 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| id | 是 | String | 参数解释: IPv6共享带宽的ID。可通过查询租户下的共享带宽类型列表获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| ip_address | 否 | String | 参数解释: IP地址,用于控制是否开启源/目的检查开关。 约束限制: 不涉及 取值范围:
默认取值: 默认是开启,不允许置空。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| id | 是 | String | 参数解释: 安全组ID。获取方式请参考查询安全组列表。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| key | 是 | String | 参数解释: 键。 约束限制:
取值范围:
默认取值: 不涉及 |
| value | 否 | String | 参数解释: 值。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
请求示例
创建一个伸缩组,伸缩组名称为GroupNameTest,伸缩配置ID为47683a91-93ee-462a-a7d7-484c006f4440,虚拟私有云ID为a8327883-6b07-4497-9c61-68d03ee193a,网卡ID为3cd35bca-5a10-416f-8994-f79169559870,最大实例数为10,期望实例数为0,最小实例数为0,健康检查方式为云服务器健康检查,设置具体企业项目,伸缩组扩缩容时目标AZ选择的优先级策略为PICK_FIRST(选择优先)。
POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group
{
"scaling_group_name": "GroupNameTest",
"scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440",
"desire_instance_number": 0,
"min_instance_number": 0,
"max_instance_number": 10,
"health_periodic_audit_method": "NOVA_AUDIT",
"vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a",
"available_zones": ["XXXa","XXXb"],
"networks": [
{
"id": "3cd35bca-5a10-416f-8994-f79169559870"
}
],
"enterprise_project_id":"c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
"multi_az_priority_policy":"PICK_FIRST",
"iam_agency_name":"test",
"tags":[{"key":"1"}]
} 响应参数
| 参数 | 参数类型 | 描述 |
|---|---|---|
| scaling_group_id | String | 参数解释: 伸缩组ID。 取值范围: 不涉及 |
响应示例
{
"scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
} 返回值
- 正常
- 异常
返回值
说明
400 Bad Request
服务器未能处理请求。
401 Unauthorized
被请求的页面需要用户名和密码。
403 Forbidden
对被请求的页面访问禁止。
404 Not Found
服务器无法找到被请求的页面。
405 Method Not Allowed
请求中指定的方法不被允许。
406 Not Acceptable
服务器生成的响应无法被客户端所接受。
407 Proxy Authentication Required
用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout
请求超出了服务器的等待时间。
409 Conflict
由于冲突,请求无法被完成。
500 Internal Server Error
请求未完成。服务异常。
501 Not Implemented
请求未完成。服务器不支持所请求的功能。
502 Bad Gateway
请求未完成。服务器从上游服务器收到一个无效的响应。
503 Service Unavailable
请求未完成。系统暂时异常。
504 Gateway Timeout
网关超时。
错误码
请参考错误码。