# 修改弹性伸缩组 - UpdateScalingGroup
#### 功能介绍
修改一个指定弹性伸缩组中的信息。
- 更换伸缩组的伸缩配置，伸缩组中已经存在的使用之前伸缩配置创建的云服务器不受影响。
- 伸缩组没有正在进行的伸缩活动时，可以修改伸缩组的子网、可用区和负载均衡配置。
- 当伸缩组的期望实例数改变时，会触发伸缩活动加入或移出实例。期望实例数必须大于或等于最小实例数，必须小于或等于最大实例数。
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AS/doc?api=UpdateScalingGroup)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-as/as_07_0200.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                      | 访问级别    | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 别名                            | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | as:scalingGroup:update | write | -         | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)    - [as:ScalingConfigId](https://support.huaweicloud.com/api-as/as_07_0214.html#as_07_0214__zh-cn_topic_0000001492517298_table20369145455210)  - [as:VpcSubnetId](https://support.huaweicloud.com/api-as/as_07_0214.html#as_07_0214__zh-cn_topic_0000001492517298_table20369145455210)  - [as:ElbPoolId](https://support.huaweicloud.com/api-as/as_07_0214.html#as_07_0214__zh-cn_topic_0000001492517298_table20369145455210)  - [as:MaxInstanceSize](https://support.huaweicloud.com/api-as/as_07_0214.html#as_07_0214__zh-cn_topic_0000001492517298_table20369145455210)  - [as:MinInstanceSize](https://support.huaweicloud.com/api-as/as_07_0214.html#as_07_0214__zh-cn_topic_0000001492517298_table20369145455210)   | as:groups:update | -      |
     
  
 
#### URI
PUT /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
表1参数说明 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| project_id       | 是    | String | **参数解释：** 项目ID。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-as/as_04_0106.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                      |
| scaling_group_id | 是    | String | **参数解释：** 伸缩组ID。获取方式请参见[查询弹性伸缩组列表 - ListScalingGroups](https://support.huaweicloud.com/api-as/as_06_0102.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求参数 
| 参数                                       | 是否必选    | 参数类型                                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| scaling_group_name                      | 否       | String                                                                                  | **参数解释：** 伸缩组名称 **约束限制：** 不涉及 **取值范围：** 1-64个字符，只能包含中文、字母、数字、下划线或中划线。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| desire_instance_number                  | 否       | Integer                                                                                 | **参数解释：** 期望实例数量。 **约束限制：** 最小实例数≤期望实例数≤最大实例数。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| min_instance_number                     | 否       | Integer                                                                                  | **参数解释：** 最小实例数量。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| max_instance_number                     | 否        | Integer                                                                                 | **参数解释：** 最大实例数量。 **约束限制：** 大于等于最小实例数。 **取值范围：** 0-300的整数。 **默认取值：** 默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| cool_down_time                          | 否       | Integer                                                                                 | **参数解释：** 冷却时间，单位是秒。 **约束限制：** 伸缩组在冷却时间内，会拒绝告警策略的触发，其他类型的伸缩策略（如定时策略和周期策略）及手动触发不受限制。 **取值范围：** 0-86400秒。 **默认取值：** 300                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| available_zones                      | 否  | Array of strings                                                                   | **参数解释：** 可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区，会由系统自动指定可用区。详情请参考[地区和终端节点](https://developer.huaweicloud.com/endpoint)。 **约束限制：** 仅当同时满足以下条件时，才可以修改可用区配置。 - 伸缩组中无伸缩活动。  - 实例数为0。  - 伸缩组为非启用状态。                                                                                                                                                                                                                                                             |
| networks                                 | 否        | Array of [networks] objects         | **参数解释：** 网络信息。获取子网信息请参考[查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet01_0003.html)。数据结构信息请参考[表4]。 **约束限制：** - 最多支持选择5个子网，传入的第一个子网默认作为云服务器的主网卡，其余子网会全部作为云服务器的辅助网卡。  - 仅当同时满足以下条件时，才可以修改： - 伸缩组中无伸缩活动  - 实例数为0  - 伸缩组为非启用状态                                                          |
| security_groups                         | 否        | Array of [security_groups] objects | **参数解释：** 安全组信息，仅支持选择1个安全组。获取安全组信息请参考[查询安全组列表](https://support.huaweicloud.com/api-vpc/vpc_sg01_0003.html)。数据结构信息请参考[表7]。 **约束限制：** - 当伸缩配置和伸缩组同时指定安全组时，将以伸缩配置中的安全组为准；当伸缩配置和伸缩组都没有指定安全组时，增加的弹性云服务器将使用默认安全组。为了使用灵活性更高，推荐在伸缩配置中指定安全组。  - 仅当同时满足以下条件时，才可以修改： - 伸缩组中无伸缩活动  - 实例数为0  - 伸缩组为非启用状态     |
| lb_listener_id                          | 否       | String                                                                                  | **参数解释：** 弹性负载均衡监听器ID。获取监听器ID的方法请参考[查询负载均衡器列表](https://support.huaweicloud.com/api-elb/elb_qy_fz_0002.html)。 **约束限制：** - 最多支持绑定6个负载均衡监听器，多个负载均衡监听器ID以逗号分隔。  - 仅当同时满足以下条件时，才可以修改： - 伸缩组中无伸缩活动     **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                       |
| lbaas_listeners                    | 否  | Array of [lbaas_listeners] objects               | **参数解释：** 弹性负载均衡器信息。列表数据结构请参考[表3]。获取负载均衡器的信息请参考[查询后端云服务器组](https://support.huaweicloud.com/api-elb/elb_qy_hz_0002.html)。 **约束限制：** 最多支持绑定6个负载均衡。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 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分钟                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| instance_terminate_policy               | 否       | String                                                                                  | **参数解释：** 伸缩组实例移除策略。 **约束限制：** 不涉及 **取值范围：** - OLD_CONFIG_OLD_INSTANCE：从"较早创建的配置"创建的实例中选择较早创建的实例进行优先移除。  - OLD_CONFIG_NEW_INSTANCE：从"较早创建的配置"创建的实例中选择较晚创建的实例进行优先移除。  - OLD_INSTANCE：较早创建的实例被优先移除。  - NEW_INSTANCE：较晚创建的实例将被优先移除。   **默认取值：** OLD_CONFIG_OLD_INSTANCE：从"较早创建的配置"创建的实例中选择较早创建的实例进行优先移除。              |
| health_periodic_audit_grace_period | 否  | Integer                                                                            | **参数解释：** 伸缩组实例健康状况检查宽限期，单位是秒。 **约束限制：** - 当实例加入伸缩组并且进入已启用状态后，健康状况检查宽限期才会启动，伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。  - 当伸缩组实例健康检查方式为ELB_AUDIT时，该参数生效。   **取值范围：** 0-86400，单位是秒 **默认取值：** 600                                                                                                                                                                                                                                                           |
| scaling_configuration_id                | 否       | String                                                                                  | **参数解释：** 伸缩配置ID，通过查询弹性伸缩配置列表接口获取，请参考[查询弹性伸缩配置列表 - ListScalingConfigs](https://support.huaweicloud.com/api-as/as_06_0202.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                |
| delete_publicip                   | 否  | Boolean                                                                           | **参数解释：** 配置删除云服务器是否删除云服务器绑定的弹性IP。如果选择不删除，则系统仅做解绑定操作，保留弹性IP资源。 **约束限制：** 当弹性IP的计费方式为包年包月时，不会被删除。 **取值范围：** - true：删除云服务器时会同时删除绑定在云服务器上的弹性IP。  - false：删除云服务器时，仅解绑定在云服务器上的弹性IP，不删除弹性IP。   **默认取值：** false                                                                                                                                                                                                                                 |
| delete_volume                      | 否   | Boolean                                                                            | **参数解释：** 配置删除云服务器时是否删除云服务器绑定的数据盘。 **约束限制：** 当数据盘的计费方式为包年包月时，不会被删除。 **取值范围：** - true：删除云服务器时，会同时删除绑定在云服务器上的数据盘。当数据盘的计费方式为包年包月时，不会被删除。  - false：删除云服务器时，仅解绑定在云服务器上的数据盘，不删除数据盘。   **默认取值：** 默认为false。                                                                                                                                                                                                                                   |
| enterprise_project_id              | 否   | String                                                                             | **参数解释：** 企业项目ID，用于指定伸缩组归属的企业项目。关于企业项目特性的详细信息，请参见[企业项目管理](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0131965280.html)。 **约束限制：** 当伸缩组配置企业项目时，由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。 **取值范围：** - 取值为0或无该值，表示属于default企业项目。  - 取值为UUID，表示属于该UUID对应的企业项目，如何获取企业项目ID，请参考[查询企业项目列表](https://support.huaweicloud.com/api-em/zh-cn_topic_0121230880.html)。   **默认取值：** 不涉及                                                                  |
| multi_az_priority_policy           | 否 | String                                                                              | **参数解释：** 伸缩组扩缩容时目标AZ选择的优先级策略： **约束限制：** 当选择两个及以上可用区时，才需要配置该选项。 **取值范围：** - EQUILIBRIUM_DISTRIBUTE：均衡分布，虚拟机扩缩容时优先保证available_zones列表中各AZ下虚拟机数量均衡，当无法在目标AZ下完成虚拟机扩容时，按照PICK_FIRST原则选择其他可用AZ。  - PICK_FIRST：选择优先，虚拟机扩缩容时目标AZ的选择按照available_zones列表的顺序进行优先级排序。   **默认取值：** EQUILIBRIUM_DISTRIBUTE：均衡分布。                                                                                                                                                |
| description                        | 否     | String                                                                                | **参数解释：** 伸缩组描述 **约束限制：** 不涉及 **取值范围：** 1-256个字符 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| iam_agency_name                     | 否  | String                                                                              | **参数解释：** 委托的名称。委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的，可以为弹性云服务器提供访问云服务的临时凭证。 **约束限制：** - iam_agency_name为无值则无需修改。  - iam_agency_name为空字符串或者其他字符串，则需修改。   **取值范围：** 1-64个字符。 **默认取值：** 不涉及                                                                                                                                                                                                                       |
   
 表3lbaas_listeners字段数据结构说明 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| pool_id          | 是    | String  | **参数解释：** 后端服务器组ID。如何获取请参见[查询后端服务器组列表](https://support.huaweicloud.com/api-elb/ListPools.html)。 **约束限制：** 仅当同时满足以下条件时，才可以修改： - 伸缩组中无伸缩活动   **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                           |
| protocol_port    | 是    | Integer | **参数解释：** 后端协议号，指后端云服务器监听的端口。 **约束限制：** 不涉及 **取值范围：** \[1, 65535\] **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| weight            | 是    | Integer | **参数解释：** 权重，指后端云服务器经分发得到的请求数量的比例。 **约束限制：** 若所在pool的lb_algorithm取值为SOURCE_IP或QUIC_CID，该字段无效。 **取值范围：** \[0, 100\] **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| protocol_version | 否    | String    | **参数解释：** 绑定到负载均衡云服务器组的IP地址版本。 **约束限制：** - 伸缩组实例不支持多网卡双栈，仅支持首网卡双栈，其他网卡地址会被忽略。首网卡是指从弹性云服务器查询到的第一张支持所选IP地址版本的网卡，可能是主网卡，也可能是扩展网卡。  - 只有选择支持IPv6的弹性云服务器，才可以使用IPv4/IPv6双栈网络，请务必选择支持的区域和规格。  - 当pool_id、protocol_port、protocol_version均一致时，会进行去重。   **取值范围：** - ipv4：表示使用IPv4地址版本。  - ipv6：表示使用IPv6地址版本。   **默认取值：** ipv4 |
   
 表4networks字段数据结构说明 
| 参数 | 是否必选 | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| id | 是    | String                                                 | **参数解释：** 子网的网络ID。获取方式请参考[查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet01_0003.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                       |
| ipv6_enable         | 否     | Boolean                                                                    | **参数解释：** 是否启用IPv6。 **约束限制：** 子网需要支持ipv6。 **取值范围：** - true：表示此网卡已启用ipv6。  - false：表示此网卡未启用ipv6。   **默认取值：** false |
| ipv6_bandwidth      | 否    | [ipv6_bandwidth] object                 | **参数解释：** 绑定的IPv6共享带宽。默认为空，表示未绑定IPv6的共享带宽。字段数据结构说明请参见[表5]。 **约束限制：** 不涉及                                                                                                                                                                                                                                                            |
| allowed_address_pairs | 否    | Array of [allowed_address_pairs]objects | **参数解释：** 是否开启源/目的检查开关。字段数据结构说明请参见[表6]。 **约束限制：** 不涉及                                                                                                                                                                                                                                                                |
   
 表5ipv6_bandwidth字段数据结构说明 
| 参数 | 是否必选 | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| id   | 是      | String | **参数解释：** IPv6共享带宽的ID。可通过[查询租户下的共享带宽类型列表](https://support.huaweicloud.com/api-eip/ListShareBandwidthTypes.html)获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表6allowed_address_pairs字段数据结构说明 
| 参数       | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| ip_address | String | **参数解释：** IP地址，用于控制是否开启源/目的检查开关。 **约束限制：** 不涉及 **取值范围：** - 关闭：1.1.1.1/0  - 开启：除"1.1.1.1/0"以外的其余值均按开启处理   **默认取值：** 默认开启，不允许置空。 |
   
 表7security_groups字段数据结构说明 
| 参数 | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| id | 是    | String | **参数解释：** 安全组ID。获取方式请参考[查询安全组列表](https://support.huaweicloud.com/api-vpc/vpc_apiv3_0011.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求示例
修改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,   
    "iam_agency_name": "test",
    "multi_az_priority_policy": "PICK_FIRST"
}
```
#### 响应消息
表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               | 网关超时。                        |
     
  
 
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-as/as_07_0102.html)。
