
# 创建健康检查
#### 功能介绍
为后端云服务器组创建健康检查，用来检查该后端云服务器组关联的后端云服务器的状态，如果检查状态为OFFLINE则表示后端云服务器的服务异常，请检查服务器的配置。
#### 接口约束
安全组需放通网段100.125.0.0/16流量，否则无法进行健康检查。
UDP的检查健康只能使用在UDP的后端云服务器组上。
#### URI
POST /v2.0/lbaas/healthmonitors
#### 请求消息
表1请求参数 
| 参数名称          | 是否必选 | 参数类型   | 描述                                                    |
|:---|:---|:---|:---|
| healthmonitor | 是    | Object | 健康检查对象。详见[表2]。 |
   
 表2healthmonitor字段说明 
| 参数               | 是否必选 | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| tenant_id        | 否    | String  | 健康检查所在的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 需要和token中的project_id一致。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                     |
| project_id       | 否    | String  | 此参数和tenant_id参数含义一样，均指健康检查所在的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 需要和token中的project_id一致。                                                                                                                                                                                                                                                                                                                                                                            |
| name             | 否    | String  | 健康检查名称。 支持的最大字符长度：255                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| delay            | 是    | Integer | 健康检查的间隔，单位秒，取值范围\[1，50\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| max_retries      | 是    | Integer | 健康检查连续成功多少次后，将后端服务器的健康检查状态由OFFLINE判定为ONLINE，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| max_retries_down | 否    | Integer | 健康检查连续失败多少次后，将后端服务器的健康检查状态由ONLINE判定为OFFLINE，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| pool_id          | 是    | String  | 健康检查关联的后端云服务器组ID。 每个后端云服务器组只能有一个健康检查。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| admin_state_up   | 否    | Boolean | 健康检查的管理状态。 该字段为预留字段，暂未启用。默认为true。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| timeout          | 是    | Integer | 健康检查超时时间，单位秒，取值范围\[1，50\]。 说明： 建议该值小于delay的值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| type             | 是    | String  | 健康检查的类型。 取值范围：TCP、UDP_CONNECT、HTTP。 健康检查的type与其关联的后端云服务器组的protocol有如下关系： - 后端云服务器组的protocol为UDP时，健康检查的type只能为UDP_CONNECT；  - 后端云服务器组的protocol为TCP时，健康检查的type可以为TCP、HTTP；  - 后端云服务器组的protocol为HTTP时，健康检查的type可以为TCP、HTTP。   |
| monitor_port     | 否    | Integer | 健康检查端口号，取值范围\[1，65535\]。 默认为空，表示使用后端云服务器的protocol_port作为健康检查的检查端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| domain_name      | 否    | String  | 健康检查时，发送的http请求的域名。 仅当type为HTTP时生效。 默认为空，表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头，只能包含数字、字母、'-'、'.'。 例如：www.test.com 支持的最大字符长度：100                                                                                                                                                                                                                                                                      |
| url_path         | 否    | String  | 健康检查时发送的http请求路径。默认为"/"。 以"/"开头。 仅当type为HTTP时生效。 例如："/test" 支持的最大字符长度：80                                                                                                                                                                                                                                                                                                                                                                     |
| expected_codes   | 否    | String  | 期望HTTP响应状态码，指定下列值： 单值，例如200； 列表，例如200，202； 区间，例如200-204。 仅当type为HTTP时生效。 支持的最大字符长度：64 说明： 该字段为预留字段，暂未启用。                                                                                                                                                                                                                                                               |
| http_method      | 否    | String  | HTTP请求的方法；默认值：GET 取值范围：GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明： 该字段为预留字段，暂未启用。                                                                                                                                                                                                                                                                                                                               |
   
#### 响应消息
表3响应参数 
| 参数            | 参数类型   | 描述                                                 |
|:---|:---|:---|
| healthmonitor | Object | 健康检查对象。详见[表4]。 |
   
 表4healthmonitor字段说明 
| 参数               | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| id               | String  | 健康检查ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| tenant_id        | String  | 健康检查所在的项目ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| project_id       | String  | 此参数和tenant_id参数含义一样，均指健康检查所在的项目ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| name             | String  | 健康检查名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| delay            | Integer | 健康检查间隔，单位秒，取值范围\[1，50\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| max_retries      | Integer | 健康检查连续成功多少次后，将后端服务器的健康检查状态由OFFLINE判定为ONLINE，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| max_retries_down | Integer | 健康检查连续失败多少次后，将后端服务器的健康检查状态由ONLINE判定为OFFLINE，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| pools            | Array   | 健康检查关联的后端云服务器组的ID列表。详见[表5]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| admin_state_up   | Boolean | 健康检查的管理状态。 该字段为预留字段，暂未启用。取值范围：true/false。 - true表示开启。  - false表示关闭。                                                                                                                                                         |
| timeout          | Integer | 健康检查超时时间，单位秒，取值范围\[1，50\]。 说明： 建议该值小于delay的值。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| type             | String  | 健康检查的类型。 取值范围：TCP、UDP_CONNECT、HTTP。 健康检查的type与其关联的后端云服务器组的protocol有如下关系： - 后端云服务器组的protocol为UDP时，健康检查的type只能为UDP_CONNECT；  - 后端云服务器组的protocol为TCP时，健康检查的type可以为TCP、HTTP；  - 后端云服务器组的protocol为HTTP时，健康检查的type可以为TCP、HTTP。   |
| monitor_port     | Integer | 健康检查端口号，取值范围\[1，65535\]。 默认为空，表示使用后端云服务器的protocol_port作为健康检查的检查端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| expected_codes   | String  | 期望HTTP响应状态码，指定下列值： 单值，例如200； 列表，例如200，202； 区间，例如200-204。 仅当type为HTTP时生效。 暂时不支持该字段，统一置为200。                                                                                                                                                                                                                                                                                                                                   |
| domain_name      | String  | 健康检查时，发送的http请求的域名。 仅当type为HTTP时生效。 默认为空，表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头，只能包含数字、字母、'-'、'.'。 例如：www.test.com                                                                                                                                                                                                                                                                                                     |
| url_path         | String  | 健康检查时发送的http请求路径。默认为"/"。 以"/"开头。 仅当type为HTTP时生效。 例如："/test"                                                                                                                                                                                                                                                                                                                                                                                                            |
| http_method      | String  | HTTP请求的方法；默认值：GET 取值范围：GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明： 该字段为预留字段，暂未启用。                                                                                                                                                                                                                                                                                                                    |
   
 表5pools字段说明 
| 参数 | 参数类型   | 描述          |
|:---|:---|:---|
| id | String | 关联的后端服务器组id |
   
#### 请求示例
- 请求样例 创建健康检查
  ```
  POST https://{Endpoint}/v2.0/lbaas/healthmonitors
  {
    "healthmonitor": {
      "admin_state_up": true,
      "pool_id": "bb44bffb-05d9-412c-9d9c-b189d9e14193",
      "domain_name": "www.test.com",
      "delay": 10,
      "max_retries": 10,
      "max_retries_down": 5,
      "timeout": 10,
      "type": "HTTP"
    }
  }
  ```
  
 
#### 响应示例
- 响应样例
  ```
  {
    "healthmonitor": {
      "name": "",
      "admin_state_up": true,
      "tenant_id": "145483a5107745e9b3d80f956713e6a3",
      "project_id": "145483a5107745e9b3d80f956713e6a3",
      "domain_name": "www.test.com",
      "delay": 10,
      "max_retries": 10,
      "expected_codes": "200", 
      "max_retries_down": 5,
      "http_method": "GET",
      "timeout": 10,
      "pools": [
        {
          "id": "bb44bffb-05d9-412c-9d9c-b189d9e14193"
        }
      ],
      "url_path": "/",
      "type": "HTTP",
      "id": "2dca3867-98c5-4cde-8f2c-b89ae6bd7e36",
      "monitor_port": 112
    }
  }
  ```
  
 
#### 返回码
请参见[状态码](https://support.huaweicloud.com/api-elb/elb_gc_1102.html)。
