# 修改弹性伸缩策略 - UpdateScalingPolicy
#### 功能介绍
修改指定弹性伸缩策略。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AS/doc?api=UpdateScalingPolicy)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-as/as_07_0200.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                      | 访问级别   | 资源类型（\*为必须） | 条件键                                                                                                          | 别名                             | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | as:scalingPolicy:update | write | -         | [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2) | as:policies:update | -      |
     
  
 
#### URI
PUT /autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}
表1参数说明 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| project_id        | 是    | String | **参数解释：** 项目ID。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-as/as_04_0106.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                           |
| scaling_policy_id | 是    | String | **参数解释：** 伸缩策略ID，可参考[查询伸缩组绑定的伸缩策略 - ListScalingPolicies](https://support.huaweicloud.com/api-as/as_06_0405.html)获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求参数 
| 参数                     | 是否必选 | 参数类型                                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| scaling_policy_name   | 否    | String                                                                                             | **参数解释：** 伸缩策略名称。 **约束限制：** 不涉及 **取值范围：** 1-64个字符，只能包含中文、字母、数字、下划线或中划线。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                |
| scaling_policy_type   | 否     | String                                                                                            | **参数解释：** 策略类型。 **约束限制：** 不涉及 **取值范围：** - ALARM：告警策略，与alarm_id对应。  - SCHEDULED：定时策略，与scheduled_policy对应。  - RECURRENCE：周期策略，与scheduled_policy对应。   **默认取值：** 不涉及 |
| alarm_id              | 否    | String                                                                                            | **参数解释：** 告警ID，即告警规则的ID。修改成功后，会自动为该告警ID对应的告警规则的alarm_actions字段增加类型为autoscaling的告警触发动作。 告警ID通过查询云监控告警规则列表获取，请参考《云监控API参考》的"[查询告警规则列表](https://support.huaweicloud.com/zh-cn/api-ces/ces_03_0027.html)"。 **约束限制：** 当scaling_policy_type为ALARM时该项必选，此时scheduled_policy不生效。 **取值范围：** 不涉及 **默认取值：** 不涉及                   |
| scheduled_policy      | 否    | [scheduled_policy] object | **参数解释：** 定时、周期任务策略。请参考[表 scheduled_policy字段数据结构说明]。 **约束限制：** 当scaling_policy_type为SCHEDULED或RECURRENCE时该项必选，此时alarm_id不生效。                                                                                                                                                                                                                                                                                          |
| scaling_policy_action | 否    | [scaling_policy_action] object                | **参数解释：** 策略执行具体动作。请参考[表 scaling_policy_action字段数据结构说明]。 **约束限制：** 不涉及                                                                                                                                                                                                                                                                                                                                                 |
| cool_down_time        | 否    | Integer                                                                                           | **参数解释：** 冷却时间，单位是秒。 **约束限制：** 伸缩组在冷却时间内，会拒绝告警策略的触发，其他类型的伸缩策略（如定时策略和周期策略）及手动触发不受限制。 **取值范围：** 0-86400秒。 **默认取值：** 300                                                                                                                                                                                                                                  |
   
 表3scheduled_policy字段数据结构说明 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| launch_time      | 是    | String | **参数解释：** 触发时间，遵循UTC时间。 **约束限制：** - 如果scaling_policy_type为SCHEDULED，则格式为：YYYY-MM-DDThh:mmZ。  - 如果scaling_policy_type为RECURRENCE，则格式为：hh:mm。   **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                    |
| recurrence_type  | 否    | String | **参数解释：** 周期触发类型。 **约束限制：** scaling_policy_type为RECURRENCE时该项必选。 **取值范围：** - Daily：每天执行一次  - Weekly：每周指定天执行一次。  - Monthly：每月指定天执行一次。   **默认取值：** 不涉及                                                                                                 |
| recurrence_value | 否     | String | **参数解释：** 周期触发任务数值。 **约束限制：** scaling_policy_type为RECURRENCE时该项必选。 **取值范围：** - 类型为Daily时，该字段为null，表示每天执行。  - 类型为Weekly时，该字段取值范围为1-7，1表示星期日，以此类推，以","分隔，例如：1,3,5。  - 类型为Monthly时，该字段取值范围为1-31，分别表示每月的日期，以","分隔，例如：1,10,13,28。   **默认取值：** 不涉及 |
| start_time       | 否    | String | **参数解释：** 周期策略重复执行开始时间，遵循UTC时间。 格式为：YYYY-MM-DDThh:mmZ。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 默认为当前时间。                                                                                                                                                                                                                                                                           |
| end_time         | 否    | String | **参数解释：** 周期策略重复执行结束时间，遵循UTC时间。 格式为：YYYY-MM-DDThh:mmZ。 **约束限制：** - scaling_policy_type为RECURRENCE时该项必选。  - 当为周期类型策略时，不得早于当前时间和开始时间。   **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                       |
   
 表4scaling_policy_action字段数据结构说明 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| operation | 否   | String | **参数解释：** 操作选项。 **约束限制：** 不涉及 **取值范围：** - 当scaling_resource_type为SCALING_GROUP，支持如下操作： - ADD：增加  - REMOVE/REDUCE：减少  - SET：设置为    - 当scaling_resource_type为BANDWIDTH，支持如下操作： - ADD：增加  - REDUCE：减少  - SET：设置为     **默认取值：** 默认为ADD。 |
| instance_number             | 否  | Integer                  | **参数解释：** 操作实例个数。 **约束限制：** 配置参数时，instance_number和instance_percentage参数只能选其中一个进行配置。 **取值范围：** - operation为SET时，取值范围为：0\~300。  - operation为ADD或REMOVE/REDUCE时，取值范围为：1\~300。   **默认取值：** 默认为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| instance_percentage         | 否  | Integer                  | **参数解释：** 操作实例百分比，将伸缩组容量增加、减少或设置为伸缩组当前实例个数的百分比。 配置参数时，instance_number和instance_percentage参数只能选其中一个进行配置。 **约束限制：** - 当instance_number和instance_percentage参数均无配置时，则操作实例个数为1。  - 配置参数时，instance_number和instance_percentage参数只能选其中一个进行配置。   **取值范围：** - 操作为ADD或REMOVE/REDUCE时取值范围为1到20000的整数。  - 操作为SET时取值范围为0到20000的整数。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                   |
   
#### 请求示例
修改ID为0h327883-324n-4dzd-9c61-68d03ee191dd的伸缩策略，修改其名称为policy_01，修改其生效时间为从2016-01-08T17:31Z到2016-02-08T17:31Z且每天下午四点执行，设置实例数为2的周期性策略。
```
PUT https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_policy/0h327883-324n-4dzd-9c61-68d03ee191dd
{
    "scaling_policy_type": "RECURRENCE",
    "scaling_policy_name": "policy_01",
    "scheduled_policy": {
        "launch_time": "16:00",
        "recurrence_type": "Daily",
        "end_time": "2016-02-08T17:31Z",
        "start_time": "2016-01-08T17:31Z"
    },
    "scaling_policy_action": {
        "operation": "SET",
        "instance_number": 2
    }
}
```
#### 响应参数
| 参数               | 参数类型   | 描述                                                                                                                           |
|:---|:---|:---|
| scaling_policy_id | String | **参数解释：** 伸缩策略ID。 **取值范围：** 不涉及 |
   
#### 响应示例
```
{
    "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd"
}
```
#### 返回值
- 正常 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)。
