
# 新增/修改弹性伸缩策略 - CreateOrUpdateScalingPolicy
#### 功能介绍
新增/修改弹性伸缩策略,仅按需的服务器支持。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/WorkspaceApp/doc?api=CreateOrUpdateScalingPolicy)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                            | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | workspace:scalingPolicy:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
PUT /v1/{project_id}/scaling-policy
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述      |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目唯一标识。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数                         | 是否必选 | 参数类型                                                                                            | 描述                                                                                                                                |
|:---|:---|:---|:---|
| enable                     | 否    | Boolean                                                                                         | 是否启用策略,默认启用： 'true': 启用 'false': 禁用 |
| max_scaling_amount         | 是    | Integer                                                                                         | 最大扩容数量。                                                                                                                           |
| single_expansion_count     | 是    | Integer                                                                                         | 单次扩容数量。                                                                                                                           |
| scaling_policy_by_session  | 是    | [ScalingPolicyBySession] object   | 基于会话的弹性策略。                                                                                                                        |
| scaling_policy_by_resource | 否    | [ScalingPolicyByResource] object | 基于资源的弹性策略。                                                                                                                        |
| server_group_id            | 是    | String                                                                                          | 服务器组唯一标识(仅按需服务器组支持该操作)。                                                                                                           |
   
 表4ScalingPolicyBySession 
| 参数                                | 是否必选 | 参数类型    | 描述                   |
|:---|:---|:---|:---|
| session_usage_threshold           | 否    | Integer | 分组的总会话使用率(达到该阈值后扩容)。 |
| shrink_after_session_idle_minutes | 是    | Integer | 给定时间内无会话连接的的实例进行释放。  |
   
 表5ScalingPolicyByResource 
| 参数                  | 是否必选 | 参数类型    | 描述                    |
|:---|:---|:---|:---|
| cpu_usage_threshold | 否    | Integer | 分组的总cpu使用率(达到阈值后扩容)。  |
| mem_usage_threshold | 否    | Integer | 分组的总mem使用率(达到该阈值后扩容)。 |
| gpu_usage_threshold | 否    | Integer | 分组的总显存使用率(达到该阈值后扩容)。  |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数                         | 参数类型                                                                                             | 描述                                                                                                                                |
|:---|:---|:---|
| enable                     | Boolean                                                                                          | 是否启用策略,默认启用： 'true': 启用 'false': 禁用 |
| max_scaling_amount         | Integer                                                                                          | 最大扩容数量。                                                                                                                           |
| single_expansion_count     | Integer                                                                                          | 单次扩容数量。                                                                                                                           |
| scaling_policy_by_session  | [ScalingPolicyBySession] object   | 基于会话的弹性策略。                                                                                                                        |
| scaling_policy_by_resource | [ScalingPolicyByResource] object | 基于资源的弹性策略。                                                                                                                        |
   
 表7ScalingPolicyBySession 
| 参数                                | 参数类型    | 描述                   |
|:---|:---|:---|
| session_usage_threshold           | Integer | 分组的总会话使用率(达到该阈值后扩容)。 |
| shrink_after_session_idle_minutes | Integer | 给定时间内无会话连接的的实例进行释放。  |
   
 表8ScalingPolicyByResource 
| 参数                  | 参数类型    | 描述                    |
|:---|:---|:---|
| cpu_usage_threshold | Integer | 分组的总cpu使用率(达到阈值后扩容)。  |
| mem_usage_threshold | Integer | 分组的总mem使用率(达到该阈值后扩容)。 |
| gpu_usage_threshold | Integer | 分组的总显存使用率(达到该阈值后扩容)。  |
   
**状态码：400**
表9响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：401**
表10响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：403**
表11响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：404**
表12响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：405**
表13响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：500**
表14响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：503**
表15响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
#### 请求示例
```
{
  "enable" : true,
  "max_scaling_amount" : 10,
  "single_expansion_count" : 1,
  "scaling_policy_by_session" : {
    "session_usage_threshold" : 85,
    "shrink_after_session_idle_minutes" : 60
  },
  "scaling_policy_by_resource" : {
    "cpu_usage_threshold" : 85,
    "mem_usage_threshold" : 60,
    "gpu_usage_threshold" : 55
  },
  "server_group_id" : "1c873056-9f4d-11ec-b909-0242ac120002"
}
```
#### 响应示例
**状态码：200**
成功响应。
```
{
  "enable" : true,
  "max_scaling_amount" : 10,
  "single_expansion_count" : 1,
  "scaling_policy_by_session" : {
    "session_usage_threshold" : 85,
    "shrink_after_session_idle_minutes" : 60
  },
  "scaling_policy_by_resource" : {
    "cpu_usage_threshold" : 85,
    "mem_usage_threshold" : 60,
    "gpu_usage_threshold" : 55
  }
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 成功响应。                   |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 405 | 请求中指定的方法不被允许。           |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
| 503 | 服务不可用。                  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode_0.html)。
