
# 创建后端云服务器组 - CreatePool
#### 功能介绍
创建后端云服务器组。将多个后端云服务器添加到后端云服务器组中后，请求会在后端云服务器间按后端云服务器组的负载均衡算法和后端云服务器的权重来做请求分发。
#### 接口约束
- 指定session-persistence参数时，只有当type是APP_COOKIE时，才可以设置cookie_name。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ELB&api=CreatePool&version=v2)中直接运行调试该接口。
#### URI
POST /v2/{project_id}/elb/pools
表1参数说明 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | 操作用户的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 |
   
#### 请求消息
表2请求参数 
| 参数   | 是否必选 | 参数类型                                                           | 描述                                                                |
|:---|:---|:---|:---|
| pool | 是    | [Pool] object | 后端云服务器组对象。详见[表3] |
   
 表3pool字段说明 
| 参数                  | 是否必选 | 参数类型                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| tenant_id           | 否    | String                                                                         | 后端云服务器组所属的项目 ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 需要和token中的project_id一致。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| name                | 否    | String                                                                         | 后端云服务器组名称。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| description         | 否    | String                                                                         | 后端云服务器组的描述信息。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| protocol            | 是    | String                                                                         | 后端云服务器组的后端协议。 支持TCP、UDP和HTTP。 当指定listener_id创建后端云服务器组时，后端云服务器组的protocol和它关联的监听器的protocol有如下关系： - 监听器的protocol为UDP时，后端云服务器组的protocol必须为UDP；  - 监听器的protocol为TCP时，后端云服务器组的protocol必须为TCP；  - 监听器的protocol为HTTP或TERMINATED_HTTPS时，后端云服务器组的protocol必须为HTTP。   |
| lb_algorithm        | 是    | String                                                                         | 后端云服务器组的负载均衡算法。 取值范围： - ROUND_ROBIN：加权轮询算法。  - LEAST_CONNECTIONS：加权最少连接算法。  - SOURCE_IP：源IP算法。   当该字段的取值为SOURCE_IP时，后端云服务器组绑定的后端云服务器的weight字段无效。                                                                                                                                                                                                                    |
| admin_state_up      | 否    | Boolean                                                                        | 后端云服务器组的管理状态。 该字段为预留字段，暂未启用。默认为true。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| listener_id         | 否    | String                                                                         | 后端云服务器组关联的监听器的ID。 listener_id和loadbalancer_id中至少指定一个。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| loadbalancer_id     | 否    | String                                                                         | 后端云服务器组关联的负载均衡器ID。 listener_id和loadbalancer_id中至少指定一个。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| session_persistence | 否    | [SessionPersisten]ce object | 会话持久性。详细参见[表4]。 取值为null时，表示会话保持关闭。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| protection_status   | 否    | String                                                                         | 当前资源保护状态, 取值： - nonProtection: 不保护，默认值为nonProtection  - consoleProtection: 控制台修改保护                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| protection_reason   | 否    | String                                                                         | 资源保护的原因。仅当protection_status为consoleProtection时有效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表4session_persistence字段说明 
| 参数                  | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| type                | 是    | String  | 会话保持的类型。 取值范围： - SOURCE_IP：根据请求的源IP，将同一IP的请求发送到同一个后端云服务器上。  - HTTP_COOKIE：客户端第一次发送请求时，负载均衡器自动生成cookie并将该cookie插入响应消息中，后续请求会发送到处理第一个请求的后端云服务器上。  - APP_COOKIE：客户端第一次发送请求时，后端服务器生成cookie并将该cookie插入响应消息中，后续请求会发送到处理第一个请求的后端云服务器上。   当后端云服务器组的protocol为TCP时，只按SOURCE_IP生效；当后端云服务器组的protocol为HTTP时，只按HTTP_COOKIE、APP_COOKIE生效。 |
| cookie_name         | 否    | String  | cookie名称。支持字母、数字、中划线(-)和下划线(_)，最大长度64个字符。 当会话保持类型是APP_COOKIE时，为必选字段，其它类型时不可指定。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| persistence_timeout | 否    | Integer | 会话保持的超时时间。 当type为APP_COOKIE时不生效。 取值范围： - \[1,60\]（分钟）：当后端云服务器组的protocol为TCP、UDP时。  - \[1,1440\]（分钟）：当后端云服务器组的protocol为HTTP、HTTPS时。                                                                                                                                                                                                                                 |
   
#### 响应消息
表5响应参数 
| 参数   | 参数类型                                                             | 描述                                                                           |
|:---|:---|:---|
| pool | [Pool] object | 后端云服务器组对象。详见[表6 pool字段说明] |
   
 表6pool字段说明 
| 参数                  | 参数类型                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| id                  | String                                                                          | 后端云服务器组 ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| tenant_id           | String                                                                          | 后端云服务器组所属的项目 ID。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| project_id          | String                                                                          | 此参数和tenant_id参数含义一样，均指后端云服务器组所属的项目 ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| name                | String                                                                          | 后端云服务器组名称。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| description         | String                                                                          | 后端云服务器组的描述信息。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| protocol            | String                                                                          | 后端云服务器组的后端协议。 取值范围：TCP、UDP和HTTP。 当指定listener_id创建后端云服务器组时，后端云服务器组的protocol和它关联的监听器的protocol有如下关系： - 监听器的protocol为UDP时，后端云服务器组的protocol必须为UDP；  - 监听器的protocol为TCP时，后端云服务器组的protocol必须为TCP；  - 监听器的protocol为HTTP或TERMINATED_HTTPS时，后端云服务器组的protocol必须为HTTP。   |
| lb_algorithm        | String                                                                          | 后端云服务器组的负载均衡算法。 取值范围： - ROUND_ROBIN：加权轮询算法。  - LEAST_CONNECTIONS：加权最少连接算法。  - SOURCE_IP：源IP算法。当该字段的取值为SOURCE_IP时，后端云服务器组绑定的后端云服务器的weight字段无效。                                                                                                                                                                                                                     |
| members             | Array of [Members] objects                | 后端云服务器组关联的后端云服务器ID的列表。详见[表7]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| healthmonitor_id    | String                                                                          | 后端云服务器组关联的健康检查的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| admin_state_up      | Boolean                                                                         | 后端云服务器组的管理状态。 该字段为预留字段，暂未启用。取值范围：true/false。 - true表示开启。  - false表示关闭。                                                                                                                                                                                                                                                                                                                                         |
| listeners           | Array of [Listeners] objects                | 后端云服务器组关联的监听器ID列表。详见[表8]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| loadbalancers       | Array of [Loadbalancers] objects          | 后端云服务器组关联的负载均衡器ID列表。详见[表9]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| session_persistence | [SessionPersistence] object | 后端云服务器组的会话持久性。详见[表10]。 当开启会话保持后，在一定时间内，来自同一客户端的请求会发送到同一个后端云服务器上。 取值范围：当会话保持关闭时，该字段取值为null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| protection_status   | String                                                                          | String 当前资源保护状态, 取值： - nonProtection: 不保护，默认值为nonProtection  - consoleProtection: 控制台修改保护                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| protection_reason   | String                                                                          | String 资源保护的原因。仅当protection_status为consoleProtection时有效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表7members字段说明 
| 参数 | 参数类型   | 描述         |
|:---|:---|:---|
| id | String | 关联的后端服务器id |
   
 表8listeners字段说明 
| 参数 | 参数类型   | 描述          |
|:---|:---|:---|
| id | String | 关联的后端服务器组id |
   
 表9loadbalancers字段说明 
| 参数 | 参数类型   | 描述         |
|:---|:---|:---|
| id | String | 关联的负载均衡器id |
   
 表10session_persistence字段说明 
| 参数                  | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| type                | 是    | String  | 会话保持的类型。 取值范围： - SOURCE_IP：根据请求的源IP，将同一IP的请求发送到同一个后端云服务器上。  - HTTP_COOKIE：客户端第一次发送请求时，负载均衡器自动生成cookie并将该cookie插入响应消息中，后续请求会发送到处理第一个请求的后端云服务器上。  - APP_COOKIE：客户端第一次发送请求时，后端服务器生成cookie并将该cookie插入响应消息中，后续请求会发送到处理第一个请求的后端云服务器上。   当后端云服务器组的protocol为TCP时，只按SOURCE_IP生效；当后端云服务器组的protocol为HTTP时，只按HTTP_COOKIE、APP_COOKIE生效。 |
| cookie_name         | 否    | String  | cookie名称。支持字母、数字、中划线(-)和下划线(_)，最大长度64个字符。 当会话保持类型是APP_COOKIE时，为必选字段，其它类型时不可指定。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| persistence_timeout | 否    | Integer | 会话保持的超时时间。 当type为APP_COOKIE时不生效。 取值范围： - \[1,60\]（分钟）：当后端云服务器组的protocol为TCP、UDP时。  - \[1,1440\]（分钟）：当后端云服务器组的protocol为HTTP、HTTPS时。                                                                                                                                                                                                                                                |
   
#### 请求示例
- 请求样例1 创建HTTP后端云服务器组
  ```
  POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools
  {
      "pool": {
          "lb_algorithm":"ROUND_ROBIN",
          "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117",
          "protocol":"HTTP"
      }
  }
  ```
  
- 请求样例2 创建后端云服务器组，并开启APP_COOKIE类型的会话保持
  ```
  POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/pools
  {
    "pool": {
      "lb_algorithm": "ROUND_ROBIN",
      "loadbalancer_id": "370fb112-e920-486a-b051-1d0d30704dd3",
      "protocol": "HTTP",
      "session_persistence": {
        "cookie_name": "my_cookie",
        "type": "APP_COOKIE"
      },
      "admin_state_up": true
    }
  }
  ```
  

- 请求样例3 创建HTTP后端云服务器组，并开启HTTP_COOKIE类型的会话保持
  ```
  POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools 
  {
      "pool": {
          "lb_algorithm":"ROUND_ROBIN",
          "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117",
          "protocol":"HTTP",
          "session_persistence":{
          "type":"HTTP_COOKIE"
          }
      }
  }
  ```
  
 
#### 响应示例
- 响应样例1
  ```
  {
      "pool": {
          "lb_algorithm": "ROUND_ROBIN",
          "protocol": "HTTP",
          "description": "",
          "admin_state_up": true,
          "loadbalancers": [
              {
                  "id": "63ad9dfe-4750-479f-9630-ada43ccc8117"
              }
          ],
          "tenant_id": "601240b9c5c94059b63d484c92cfe308",
          "project_id": "601240b9c5c94059b63d484c92cfe308",
          "session_persistence": null,
          "healthmonitor_id": null,
          "listeners": [],
          "members": [],
          "id": "4e496951-befb-47bf-9573-c1cd11825c07",
          "name": ""
      }
  }
  ```
  

- 响应样例2
  ```
  {
    "pool": {
      "lb_algorithm": "ROUND_ROBIN",
      "protocol": "HTTP",
      "description": "",
      "admin_state_up": true,
      "loadbalancers": [
        {
          "id": "6b041b9e-976b-40ba-b075-375be6110b53"
        }
      ],
      "tenant_id": "145483a5107745e9b3d80f956713e6a3",
      "project_id": "145483a5107745e9b3d80f956713e6a3",
      "session_persistence": {
        "cookie_name": "my_cookie",
        "type": "APP_COOKIE",
        "persistence_timeout": 1
      },
      "healthmonitor_id": null,
      "listeners": [
        {
          "id": "370fb112-e920-486a-b051-1d0d30704dd3"
        }
      ],
      "members": [],
      "id": "307f8968-9474-4d0c-8434-66be09dabcc1",
      "name": ""
    }
  }
  ```
  
- 响应样例3
  ```
  {
      "pool": {
          "lb_algorithm": "ROUND_ROBIN",
          "protocol": "HTTP",
          "description": "",
          "admin_state_up": true,
          "loadbalancers": [
              {
                  "id": "63ad9dfe-4750-479f-9630-ada43ccc8117"
              }
          ],
          "tenant_id": "601240b9c5c94059b63d484c92cfe308",
          "project_id": "601240b9c5c94059b63d484c92cfe308",
          "session_persistence": {
              "persistence_timeout": 1440,
              "cookie_name": null,
              "type": "HTTP_COOKIE"
          },
          "healthmonitor_id": null,
          "listeners": [],
          "members": [],
          "id": "d46eab56-d76b-4cd3-8952-3c3c4cf113aa",
          "name": ""
      }
  }
  ```
  
 
#### 返回码
请参见[状态码](https://support.huaweicloud.com/api-elb/elb_gc_1102.html)。
