
# 创建负载均衡器
#### 功能介绍
创建私网类型的负载均衡器。创建成功后，该接口会返回创建的负载均衡器的ID、所属子网ID、负载均衡器内网IP等详细信息。
若要创建公网类型的负载均衡器，还需调用创建弹性公网IP的接口，将弹性公网IP与私网负载均衡器的vip_port_id绑定。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ELB&api=CreateLoadbalancer&version=v2)中直接运行调试该接口。
#### URI
POST /v2.0/lbaas/loadbalancers
#### 请求消息
表1请求参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                  |
|:---|:---|:---|:---|
| loadbalancer | 是    | Object | 负载均衡器对象。详见[表2]。 |
   
 表2loadbalancer字段说明 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| name           | 否    | String  | 负载均衡器名称。 支持的最大字符长度：255                                                                                                                                                                                                                       |
| description    | 否    | String  | 负载均衡器的描述信息。 支持的最大字符长度：255                                                                                                                                                                                                                      |
| tenant_id      | 否    | String  | 负载均衡器所在的项目ID。获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 支持的最大字符长度：255 需要和token中的project_id一致。                                                                                                |
| project_id     | 否    | String  | 此参数和tenant_id参数含义一样，均指负载均衡器所在的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 需要和token中的project_id一致。                                                                                         |
| vip_subnet_id  | 是    | String  | 负载均衡器所在的子网IPv4子网ID。 可通过[查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet02_0001.html)接口GET {vpc的endpoint}/v2.0/subnets获取。 vip_address将从该子网中产生。 只支持指定IPv4的子网ID。暂不支持IPv6。 |
| provider       | 否    | String  | 负载均衡器的生产者。 取值范围：vlb。                                                                                                                                                                                                                                                  |
| vip_address    | 否    | String  | 负载均衡器的内网IP。 该IP必须为vip_subnet_id字段指定的子网网段中的IP。若不指定，自动从vip_subnet_id字段指定的子网网段中生成一个IP地址。 支持的最大字符长度：64                                                                                                                           |
| admin_state_up | 否    | Boolean | 负载均衡器的管理状态。 该字段为预留字段，暂未启用。默认为true。                                                                                                                                                                                                                                  |
   
#### 响应消息
表3响应参数 
| 参数           | 参数类型   | 描述                                                                                  |
|:---|:---|:---|
| loadbalancer | Object | 负载均衡器对象。详见[表4]。 |
   
 表4loadbalancer字段说明 
| 参数                  | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| id                  | String  | 负载均衡器ID。                                                                                                                                                                                                                                                                                                                                                                                       |
| project_id          | String  | 此参数和tenant_id参数含义一样，均指负载均衡器所在的项目ID。                                                                                                                                                                                                                                                                                                                                                            |
| tenant_id           | String  | 负载均衡器所在项目的ID。 支持的最大字符长度：255                                                                                                                                                                                                                                                                             |
| name                | String  | 负载均衡器名称。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                 |
| description         | String  | 负载均衡器的描述信息。 支持的最大字符长度：255                                                                                                                                                                                                                                                                               |
| vip_subnet_id       | String  | 负载均衡器所在子网IPv4子网ID。                                                                                                                                                                                                                                                                                                                                                                             |
| vip_port_id         | String  | 负载均衡器内网IP对应的端口ID。 创建弹性负载均衡时，会自动为负载均衡创建一个port并关联一个默认的安全组，这个安全组对所有流量不生效。                                                                                                                                                                                                                                                          |
| provider            | String  | 负载均衡器的生产者名称。                                                                                                                                                                                                                                                                                                                                                                                   |
| vip_address         | String  | 负载均衡器的内网IP。 支持的最大字符长度：64                                                                                                                                                                                                                                                                                  |
| listeners           | Array   | 负载均衡器关联监听器ID的列表。详见[表5]                                                                                                                                                                                                                                                                                                                             |
| pools               | Array   | 负载均衡器关联后端服务器组ID的列表。详见[表6]                                                                                                                                                                                                                                                                                                                         |
| operating_status    | String  | 负载均衡器的操作状态。取值范围：可以为ONLINE和FROZEN。                                                                                                                                                                                                                                                                                                                                                              |
| provisioning_status | String  | 该字段为预留字段，暂未启用。 负载均衡器的配置状态。取值范围：可以为ACTIVE。                                                                                                                                                                                                                                                                                     |
| admin_state_up      | Boolean | 负载均衡器的管理状态。 该字段为预留字段，暂未启用。取值范围：true/false。 - true表示开启。  - false表示关闭。   |
| tags                | Array   | 负载均衡器的标签列表。                                                                                                                                                                                                                                                                                                                                                                                    |
| created_at          | String  | 负载均衡器的创建时间。 格式为UTC时间：YYYY-MM-DDTHH:MM:SS 支持的最大字符长度：19                                                                                                                                                                                       |
| updated_at          | String  | 负载均衡器的更新时间。 格式为UTC时间：YYYY-MM-DDTHH:MM:SS 支持的最大字符长度：19                                                                                                                                                                                   |
   
 表5listeners字段说明 
| 参数 | 参数类型   | 描述       |
|:---|:---|:---|
| id | String | 关联的监听器id |
   
 表6pools字段说明 
| 参数 | 参数类型   | 描述          |
|:---|:---|:---|
| id | String | 关联的后端服务器组id |
   
#### 请求示例
- 请求样例1 创建私网负载均衡器
  ```
  POST https://{Endpoint}/v2.0/lbaas/loadbalancers 
  { 
      "loadbalancer": { 
          "name": "loadbalancer1", 
          "description": "simple lb", 
          "tenant_id": "1867112d054b427e808cc6096d8193a1", 
          "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", 
          "vip_address": "192.168.0.100", 
          "admin_state_up": true 
      } 
  }
  ```
  
 
- 请求样例2 在[请求样例1 创建私网负载均衡器]的基础上，为私网负载均衡器的vip_port绑定弹性公网IP，具体参数说明参考[申请弹性公网IP](https://support.huaweicloud.com/api-eip/eip_api_0001.html)。
  - step1 请求样例 申请弹性公网IP。
    ```
    POST https://{VPCEndpoint}/v1/8b7e35ad379141fc9df3e178bd64f55c/publicips
    {
        "publicip": {
            "type": "5_bgp",
            "ip_version": 4
        },
        "bandwidth": {
            "name": "bandwidth123",
            "size": 10,
            "share_type": "PER"
        }
    }
    ```
    
  
  - step1 响应样例
    ```
    {
        "publicip": {
            "id": "f588ccfa-8750-4d7c-bf5d-2ede24414706",
            "status": "PENDING_CREATE",
            "type": "5_bgp",
            "public_ip_address": "139.9.204.183",
            "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c",
            "ip_version": 4,
            "create_time": "2019-06-29 06:45:32",
            "bandwidth_size": 1,
            "enterprise_project_id":"0"
        }
    }
    ```
    
  
  - step2 请求样例 绑定弹性公网IP，public_id为[▪step1 响应样例]中的publicip id，port_id为[响应样例1]的vip_port_id。
    ```
    PUT /v1/8b7e35ad379141fc9df3e178bd64f55c/publicips/f588ccfa-8750-4d7c-bf5d-2ede24414706
    {
        "publicip": {
            "port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7"
        }
    }
    ```
    
  
  - step2 响应样例
    ```
    {
      "publicip": {
        "id": "f588ccfa-8750-4d7c-bf5d-2ede24414706",
        "status": "ACTIVE",
        "type": "5_bgp",
        "port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7",
        "public_ip_address": "139.9.204.183",
        "private_ip_address": "192.168.1.131",
        "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c",
        "create_time": "2019-06-29 07:33:18",
        "bandwidth_size": 1,
        "ip_version": 4
      }
    }
    ```
    
  
  - 完成以上步骤，负载均衡器已具备公网访问的能力，可通过响应体中的public_ip_address：139.9.204.183来访问负载均衡器。
    
#### 响应示例
- 响应样例1
  ```
  {
      "loadbalancer": {
          "description": "simple lb",
          "provisioning_status": "ACTIVE",
          "tenant_id": "1867112d054b427e808cc6096d8193a1",
          "project_id": "1867112d054b427e808cc6096d8193a1",
          "created_at": "2019-01-19T05:32:56",
          "admin_state_up": true,
          "updated_at": "2019-01-19T05:32:57",
          "id": "ea2843da-4026-49ec-8338-8fa015b067fc",
          "pools": [],
          "listeners": [],
          "vip_port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7",
          "operating_status": "ONLINE",
          "vip_address": "192.168.0.100",
          "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b",
          "provider": "vlb",
          "tags": [],
          "name": "loadbalancer1"
      }
  }
  ```
  
 
- 响应样例 2
  ```
  POST https://{Endpoint}/v2.0/lbaas/loadbalancers 
  { 
      "loadbalancer": { 
          "name": "loadbalancer1", 
          "description": "simple lb", 
          "tenant_id": "1867112d054b427e808cc6096d8193a1", 
          "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", 
          "vip_address": "192.168.0.100", 
          "admin_state_up": true 
      } 
  }
  ```
  
完成以上步骤，负载均衡器已具备公网访问的能力，可通过响应体中的public_ip_address：139.9.204.183来访问负载均衡器。
#### 返回码
请参见[状态码](https://support.huaweicloud.com/api-elb/elb_gc_1102.html)。
