
# 创建健康检查 - CreateHealthMonitor
#### 功能介绍
为后端云服务器组创建健康检查，用来检查该后端云服务器组关联的后端云服务器的状态，如果检查状态为OFFLINE则表示后端云服务器的服务异常，请检查服务器的配置。
#### 接口约束
- 安全组需放通网段100.125.0.0/16流量。
- UDP的检查健康只能使用在UDP的后端云服务器组上。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ELB&api=CreateHealthmonitor&version=v2)中直接运行调试该接口。
#### URI
POST /v2/{project_id}/elb/healthmonitors
表1参数说明 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | 操作用户的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 |
   
#### 请求消息
表2请求参数 
| 参数            | 是否必选 | 参数类型                                                          | 描述                                                    |
|:---|:---|:---|:---|
| healthmonitor | 是    | [Healthmonitor] object | 健康检查对象。详见[表3]。 |
   
 表3healthmonitor字段说明 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| tenant_id      | 否    | String  | 健康检查所在的项目ID。 获取方法详见[获取项目ID](https://support.huaweicloud.com/api-elb/elb_fl_0008.html)。 需要和token中的project_id一致。 支持的最大字符长度：255                                                                                |
| name           | 否    | String  | 健康检查名称。 支持的最大字符长度：255                                                                                                                                                                                                                                                      |
| delay          | 是    | Integer | 健康检查的间隔，单位秒，取值范围\[1，50\]。                                                                                                                                                                                                                                                                                    |
| max_retries    | 是    | Integer | 健康检查最大重试次数，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                     |
| pool_id        | 是    | String  | 健康检查关联的后端云服务器组ID。 每个后端云服务器组只能有一个健康检查。                                                                                                                                                                                                                                      |
| admin_state_up | 否    | Boolean | 健康检查的管理状态。 该字段为预留字段，暂未启用。默认为true。                                                                                                                                                                                                                                          |
| timeout        | 是    | Integer | 健康检查超时时间，单位秒，取值范围\[1，50\]。 说明： 建议该值小于delay的值。                                                                                                                                                                                             |
| type           | 是    | String  | 健康检查协议的类型。 取值范围：TCP、UDP_CONNECT、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时生效。 说明： 该字段为预留字段，暂未启用。                                                            |
   
#### 响应消息
表4响应参数 
| 参数            | 参数类型                                                                      | 描述                                                                |
|:---|:---|:---|
| healthmonitor | [Healthmonitor] object | 健康检查对象。详见[表5]。 |
   
 表5healthmonitor字段说明 
| 参数               | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| id               | String                                                      | 健康检查ID。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| tenant_id        | String                                                      | 健康检查所在的项目ID。                                                                                                                                                                                                                                                                                                                                                                                                               |
| project_id       | String                                                      | 此参数和tenant_id参数含义一样，均指健康检查所在的项目ID。                                                                                                                                                                                                                                                                                                                                                                                         |
| name             | String                                                      | 健康检查名称。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| delay            | Integer                                                     | 健康检查间隔，单位秒，取值范围\[1，50\]。                                                                                                                                                                                                                                                                                                                                                                                                   |
| max_retries      | Integer                                                     | 健康检查最大重试次数，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                                                   |
| max_retries_down | Integer                                                     | 健康检查连续失败多少次后，将后端服务器的健康检查状态由ONLINE判定为OFFLINE，取值范围\[1，10\]。                                                                                                                                                                                                                                                                                                                                                                  |
| pools            | Array of [Pools] objects | 健康检查关联的后端云服务器组的ID列表。详见[表6]                                                                                                                                                                                                                                                                                                                                                              |
| admin_state_up   | Boolean                                                     | 健康检查的管理状态。 该字段为预留字段，暂未启用。取值范围：true/false。 - true表示开启。  - false表示关闭。   |
| timeout          | Integer                                                     | 健康检查超时时间，单位秒，取值范围\[1，50\]。 说明： 建议该值小于delay的值。                                                                                                                                                                                                                                                                                  |
| type             | String                                                      | 健康检查协议的类型。 取值范围：TCP、UDP_CONNECT、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时生效。 说明： 该字段为预留字段，暂未启用。                                                                                                              |
   
 表6pools字段说明 
| 参数 | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| id | 是    | String | 后端服务器组id |
   
#### 请求示例
- 请求样例1 创建健康检查
  ```
  POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/healthmonitors
  {
    "healthmonitor": {
      "admin_state_up": true,
      "pool_id": "bb44bffb-05d9-412c-9d9c-b189d9e14193",
      "domain_name": "www.test.com",
      "delay": 10,
      "max_retries": 10,
      "timeout": 5,
      "type": "HTTP"
    }
  }
  ```
  
 
#### 响应示例
- 响应样例1
  ```
  {
    "healthmonitor": {
      "name": "",
      "admin_state_up": true,
      "tenant_id": "145483a5107745e9b3d80f956713e6a3",
      "project_id": "145483a5107745e9b3d80f956713e6a3",
      "domain_name": "www.test.com",
      "delay": 10,
      "expected_codes": "200",
      "max_retries": 10,
      "max_retries_down": 5,
      "http_method": "GET",
      "timeout": 5,
      "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)。
