# ModifyListener

## 1. 接口描述

本接口用于修改负载均衡监听器的属性，包括监听器的名称、健康检查参数、转发方式等。不支持修改监听器的监听协议。

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称           | 必选 | 类型                                                                                                       | 描述                                                                                                                     |
| -------------- | -- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| loadBalancerId | 是  | String                                                                                                   | 负载均衡器ID。                                                                                                               |
| listenerId     | 是  | String                                                                                                   | 负载均衡器的监听器ID。                                                                                                           |
| listenerName   | 否  | String                                                                                                   | <p>负载均衡器的监听器名称。</p><p>不传则不会进行修改。</p>                                                                                   |
| healthCheck    | 否  | [HealthCheck](https://docs.console.zenlayer.com/api/cn/networking/datastructure#healthcheck)             | <p>负载均衡器的监听器健康检查。</p><p>不传则不会进行修改，如果开启或关闭，请设置<code>HealthCheck.enabled</code>字段。</p>                                   |
| scheduler      | 否  | [ListenerScheduler](https://docs.console.zenlayer.com/api/cn/networking/datastructure#listenerscheduler) | <p>负载均衡器的监听器调度方式。</p><p>不传则不会进行修改。</p>                                                                                 |
| port           | 否  | String                                                                                                   | <p>监听器端口。</p><p>多个端口使用,分隔。</p><p>当端口是范围时用<code>-</code>连接，例如：10000-10005。</p><p>端口的取值范围为1～65535。</p><p>不指定将不会进行修改。</p> |
| kind           | 否  | [LoadBalancerKind](https://docs.console.zenlayer.com/api/cn/networking/datastructure#loadbalancerkind)   | 工作模式。                                                                                                                  |

## 3. 响应结果

| 参数名称      | 类型     | 描述                                                       |
| --------- | ------ | -------------------------------------------------------- |
| requestId | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 修改负载均衡监听器的名称、健康检查参数以及转发策略**

```json
POST /api/v2/zlb HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: ModifyListener
<Common Request Params>

Request：
{
  "loadBalancerId" : "<loadBalancerId>",
  "listenerId" : "<listenerId>",
  "listenerName" : "sampleName",
  "healthCheck" : {
    "enabled": true,
    "checkType": "PING_CHECK",
    "checkPort": 0,
    "checkDelayLoop": 4,
    "checkConnTimeout": 3,
    "checkRetry": 4,
    "checkDelayTry": 5,
    "checkHttpGetUrl": "",
    "checkHttpStatusCode": null
  },
  "scheduler" : "mh"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](https://docs.console.zenlayer.com/api/cn/api-introduction/toolkit)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](https://docs.console.zenlayer.com/api/cn/api-introduction/instruction/commonerrorcode)

| HTTP状态码 | 错误码                                     | 说明              |
| ------- | --------------------------------------- | --------------- |
| 404     | INVALID\_LB\_LISTENER\_NOT\_FOUND       | 监听器不存在。         |
| 400     | INVALID\_PORT\_FORMAT\_ERROR            | 端口格式不合法。        |
| 409     | INVALID\_LISTENER\_PORT\_CONFLICT       | 端口和其他监听器端口冲突。   |
| 400     | INVALID\_PORT\_RANGE                    | 端口范围超出临界值。      |
| 409     | INVALID\_LISTENER\_PORT\_CONFLICT\_SELF | 当前配置的端口不合法，有冲突。 |
