更新时间:2023-11-08 GMT+08:00

修改弹性伸缩组

功能介绍

修改一个指定弹性伸缩组中的信息。

  • 更换伸缩组的伸缩配置,伸缩组中已经存在的使用之前伸缩配置创建的云服务器不受影响。
  • 伸缩组为没有正在进行的伸缩活动时,可以修改伸缩组的子网、可用区和负载均衡配置。
  • 当伸缩组的期望实例数改变时,会触发伸缩活动加入或移出实例。期望实例数必须大于或等于最小实例数,必须小于或等于最大实例数。

URI

PUT /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

项目ID

scaling_group_id

String

伸缩组ID

请求参数

表2 请求参数

参数

是否必选

参数类型

描述

scaling_group_name

String

伸缩组名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。

desire_instance_number

Integer

期望实例数量。

最小实例数≤期望实例数≤最大实例数。

min_instance_number

Integer

最小实例数量。

max_instance_number

Integer

最大实例数量,大于等于最小实例数。

cool_down_time

Integer

冷却时间,取值范围0-86400,默认为300,单位是秒。

available_zones

Array of strings

可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区,会由系统自动指定可用区。

详情请参考地区和终端节点

仅当伸缩组中无伸缩活动时,才可以修改可用区配置。

networks

Array of networks objects

网络信息,最多支持选择5个子网,传入的第一个子网默认作为云服务器的主网卡。获取子网信息请参考查询子网列表。数据结构信息请参考表4

仅当同时满足以下条件时,才可以修改:

  • 伸缩组中无伸缩活动
  • 实例数为0
  • 伸缩组为非启用状态

security_groups

Array of security_groups objects

安全组信息,仅支持选择1个安全组。获取安全组信息请参考查询安全组列表。数据结构信息请参考表7

当伸缩配置和伸缩组同时指定安全组时,将以伸缩配置中的安全组为准;当伸缩配置和伸缩组都没有指定安全组时,增加的弹性云服务器将使用默认安全组。为了使用灵活性更高,推荐在伸缩配置中指定安全组。仅当同时满足以下条件时,才可以修改:

  • 伸缩组中无伸缩活动
  • 实例数为0
  • 伸缩组为非启用状态

lb_listener_id

String

弹性负载均衡监听器ID,最多支持绑定6个负载均衡监听器,多个负载均衡监听器ID以逗号分隔。获取监听器ID的方法请参考查询负载均衡器列表

仅当同时满足以下条件时,才可以修改:

  • 伸缩组中无伸缩活动
  • 实例数为0
  • 伸缩组为非启用状态

lbaas_listeners

Array of lbaas_listeners objects

弹性负载均衡器信息,最多支持绑定6个负载均衡。列表数据结构请参考表3。获取负载均衡器的信息请参考查询后端云服务器组

health_periodic_audit_method

String

伸缩组实例健康检查方式:ELB_AUDIT和NOVA_AUDIT。当伸缩组设置负载均衡时,默认为ELB_AUDIT;否则默认为NOVA_AUDIT。

  • ELB_AUDIT:负载均衡健康检查方式,在有监听器的伸缩组中有效。
  • NOVA_AUDIT:云服务器健康检查方式,是弹性伸缩自带的健康检查方式。

health_periodic_audit_time

Integer

伸缩组实例健康检查周期(分钟):1、5、15、60、180。

若设置为0,可以实现10秒级健康检查。

instance_terminate_policy

String

伸缩组实例移除策略:

  • OLD_CONFIG_OLD_INSTANCE(默认):从“较早创建的配置”创建的实例中选择较早创建的实例进行优先移除。
  • OLD_CONFIG_NEW_INSTANCE:从“较早创建的配置”创建的实例中选择较晚创建的实例进行优先移除。
  • OLD_INSTANCE:较早创建的实例被优先移除。
  • NEW_INSTANCE:较晚创建的实例将被优先移除。

health_periodic_audit_grace_period

Integer

伸缩组实例健康状况检查宽限期,取值范围0-86400,单位是秒,默认为600。

当实例加入伸缩组并且进入已启用状态后,健康状况检查宽限期才会启动,伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。

当伸缩组实例健康检查方式为ELB_AUDIT时,该参数生效。

scaling_configuration_id

String

伸缩配置ID,通过查询弹性伸缩配置列表接口获取,请参考查询弹性伸缩配置列表

notifications

Array of strings

通知方式:

EMAIL为发送邮件通知。

该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知

delete_publicip

Boolean

配置删除云服务器是否删除云服务器绑定的弹性IP。如果选择不删除,则系统仅做解绑定操作,保留弹性IP资源。

  • true:删除云服务器时会同时删除绑定在云服务器上的弹性IP。当弹性IP的计费方式为包年包月时,不会被删除。
  • false:删除云服务器时,仅解绑定在云服务器上的弹性IP,不删除弹性IP。

delete_volume

Boolean

配置删除云服务器时是否删除云服务器绑定的数据盘。取值为true或false,默认为false。

  • true:删除云服务器时,会同时删除绑定在云服务器上的数据盘。当数据盘的计费方式为包年包月时,不会被删除。
  • false:删除云服务器时,仅解绑定在云服务器上的数据盘,不删除数据盘。

enterprise_project_id

String

企业项目ID,用于指定伸缩组归属的企业项目。

  • 取值为0或无该值,表示属于default企业项目。
  • 取值为UUID,表示属于该UUID对应的企业项目,如何获取企业项目ID,请参考查询企业项目列表

当伸缩组配置企业项目时,由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。

说明:

关于企业项目特性的详细信息,请参见企业项目管理

multi_az_priority_policy

String

伸缩组扩缩容时目标AZ选择的优先级策略:

  • EQUILIBRIUM_DISTRIBUTE(默认):均衡分布,虚拟机扩缩容时优先保证available_zones列表中各AZ下虚拟机数量均衡,当无法在目标AZ下完成虚拟机扩容时,按照PICK_FIRST原则选择其他可用AZ。
  • PICK_FIRST:选择优先,虚拟机扩缩容时目标AZ的选择按照available_zones列表的顺序进行优先级排序。

description

String

伸缩组描述(1-256个字符)。

iam_agency_name

String

委托(1-64个字符)。

  • iam_agency_name为无值则无需修改。
  • iam_agency_name为空字符串或者其他字符串,则需修改。
表3 lbaas_listeners字段数据结构说明

参数

是否必选

参数类型

描述

pool_id

String

后端云服务器组ID。

仅当同时满足以下条件时,才可以修改:

  • 伸缩组中无伸缩活动
  • 实例数为0
  • 伸缩组为非启用状态

protocol_port

Integer

后端协议号,指后端云服务器监听的端口,取值范围[1, 65535]。

weight

Integer

权重,指后端云服务器经分发得到的请求数量的比例,取值范围[0, 100]。

protocol_version

String

绑定到负载均衡云服务器组的IP地址版本,枚举值支持ipv4和ipv6。

说明:
  • 伸缩组实例不支持多网卡双栈,仅支持首网卡双栈,其他网卡地址会被忽略。首网卡是指从弹性云服务器查询到的第一张支持所选IP地址版本的网卡,可能是主网卡,也可能是扩展网卡。
  • 只有选择支持IPv6的弹性云服务器,才可以使用IPv4/IPv6双栈网络,请务必选择支持的区域和规格。
  • 当pool_id、protocol_port、protocol_version均一致时,会进行去重。
表4 networks字段数据结构说明

参数

是否必选

参数类型

描述

id

String

子网的网络ID。

ipv6_enable

Boolean

是否启用IPv6。

true:标识此网卡已启用ipv6。

false:标识此网卡未启用ipv6。默认取值为false。

ipv6_bandwidth

ipv6_bandwidth object

绑定的IPv6共享带宽。默认为空,表示未绑定IPv6的共享带宽。

allowed_address_pairs

Array of allowed_address_pairs objects

是否开启源/目的检查开关。

表5 ipv6_bandwidth字段数据结构说明

参数

是否必选

参数类型

描述

id

String

IPv6共享带宽的ID

表6 allowed_address_pairs字段数据结构说明

参数

参数类型

描述

ip_address

String

是否开启源/目的检查开关。

默认是开启,不允许置空。

  • 关闭:1.1.1.1/0
  • 开启:除“1.1.1.1/0”以外的其余值均按开启处理
表7 security_groups字段数据结构说明

参数

是否必选

参数类型

描述

id

String

安全组ID。

请求示例

修改ID为a8327883-6b07-4497-9c61-68d03ee193a1的伸缩组,修改其名称、伸缩配置、企业项目、期望实例数、最小实例数、最大实例数和冷却时间等参数。
PUT https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group/a8327883-6b07-4497-9c61-68d03ee193a1

{
    "scaling_group_name": "group_1",
    "scaling_configuration_id": "f8327883-6a07-4497-9a61-68c03e8e72a2",
    "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
    "desire_instance_number": 1,
    "min_instance_number": 1,
    "max_instance_number": 3,
    "cool_down_time": 200,
    "multi_az_priority_policy": "PICK_FIRST",
    "iam_agency_name":"test"
}

响应参数

表8 响应参数

参数

参数类型

描述

scaling_group_id

String

伸缩组ID。

响应示例

{
    "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
}

返回值

  • 正常

    200

  • 异常

    返回值

    说明

    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

    网关超时。

错误码

请参考错误码