更新时间:2022-08-15 GMT+08:00

更新监听器

功能介绍

更新监听器。包括名称、描述、关联的后端云服务器组、使用的服务器证书等。

接口约束

  • 如果监听器关联的负载均衡器的provisioning status不是ACTIVE,则不能更新该监听器。
  • 只有具有ELB管理员权限的用户才能指定connection_limit的值。
  • default_pool_id有如下限制:
    • 不能更新为其他监听器的default_pool。
    • 不能更新为其他监听器的关联的转发策略所使用的pool。
  • default_pool_id对应的后端云服务器组的protocol和监听器的protocol有如下关系:
    • 监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP。
    • 监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
    • 监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。

URI

PUT /v2/{project_id}/elb/listeners/{listener_id}

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

操作用户的项目ID。

listener_id

String

监听器id。

请求消息

表2 请求参数

参数

是否必选

参数类型

描述

listener

Listener object

监听器对象。详见表3

表3 listener字段说明

参数

是否必选

参数类型

描述

name

String

监听器名称。

支持的最大字符长度:255

description

String

监听器描述信息。

支持的最大字符长度:255

connection_limit

Integer

监听器最大连接数。

取值范围:[-1, 2147483647]。

该字段为预留字段,暂未启用,请勿使用。只有具有ELB管理员权限的用户可以指定。

http2_enable

Boolean

HTTP2功能的开启状态。

取值范围:true/false。true:开启。false:关闭。

仅针对监听器的协议为TERMINATED_HTTPS有意义。

default_pool_id

String

监听器的默认后端云服务器组ID。

当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。当该字段为null时,表示监听器无默认的后端云服务器组。

default_pool_id有如下限制:
  • 不能更新为其他监听器的default_pool。
  • 不能更新为其他监听器关联的转发策略所使用的pool。
监听器和与之绑定的后端云服务器的对应关系如下:
  • 监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP。
  • 监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
  • 监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。

admin_state_up

Boolean

监听器的管理状态。

该字段为预留字段,暂未启用。默认为true。

default_tls_container_ref

String

监听器使用的服务器证书ID。

支持的最大字符长度:128

当protocol参数为TERMINATED_HTTPS时,为必选字段。

client_ca_tls_container_ref

String

监听器使用的CA证书ID。

支持的最大字符长度:128

sni_container_refs

Array

监听器使用的SNI证书(带域名的服务器证书)ID的列表。

该字段不为空列表时,SNI特性开启。该字段为空列表时,SNI特性关闭。

响应消息

表4 响应参数

参数

参数类型

描述

listener

Listener object

监听器对象。详见表5

表5 listener字段说明

参数

参数类型

描述

id

String

监听器ID。

tenant_id

String

监听器所在的项目ID。

支持的最大字符长度:255

name

String

监听器名称。

支持的最大字符长度:255

description

String

监听器描述信息。

支持的最大字符长度:255

protocol

String

监听器的监听协议。

支持TCP、HTTP、UDP、TERMINATED_HTTPS。

protocol_port

Integer

监听器的监听端口。

取值范围:[1, 65535]。

loadbalancers

Array of Loadbalancers objects

监听器关联的负载均衡器 ID。详细参见表6

connection_limit

Integer

监听器的最大连接数。

取值范围:[-1, 2147483647]。默认为-1,无连接数限制。

该字段为预留字段,暂未启动。

admin_state_up

Boolean

监听器的管理状态。

该字段为预留字段,暂未启用。取值范围:true/false。

  • true表示开启。
  • false表示关闭。

http2_enable

Boolean

HTTP2功能的开启状态。

取值范围:true/false。true:开启。false:关闭。

仅针对监听器的协议为TERMINATED_HTTPS有意义。

default_pool_id

String

监听器的默认后端云服务器组ID。

当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。当该字段为null时,表示监听器无默认的后端云服务器组。

default_tls_container_ref

String

监听器使用的服务器证书ID。详细参见SSL证书管理

当protocol参数为TERMINATED_HTTPS时,为必选字段。

支持的最大字符长度:128

client_ca_tls_container_ref

String

监听器使用的CA证书ID。

支持的最大字符长度:128

详细参见SSL证书管理

sni_container_refs

Array

监听器使用的SNI证书(带域名的服务器证书)ID的列表。

该字段不为空列表时,SNI特性开启。该字段为空列表时,SNI特性关闭。

tags

Array

监听器的标签。

created_at

String

监听器的创建时间。YYYY-MM-DDTHH:MM:SS

updated_at

String

监听器的更新时间。YYYY-MM-DDTHH:MM:SS

表6 loadbalancers字段说明

参数

是否必选

参数类型

描述

id

String

关联的负载均衡器id

请求示例

  • 请求样例 更新监听器
    PUT https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/listeners/f622c150-72f5-4263-a47a-e5003c652aa3
    { 
        "listener": { 
            "description": "my listener", 
            "name": "listener-jy-test2",
            "default_pool_id": "c61310de-9a06-4f0c-850c-6f4797b9984c",
            "default_tls_container_ref": "23b58a961a4d4c95be585e98046e657a",
            "client_ca_tls_container_ref": "417a0976969f497db8cbb083bff343ba"
        } 
    }

响应示例

  • 响应样例
    {
        "listener": {
            "client_ca_tls_container_ref": "417a0976969f497db8cbb083bff343ba",
            "protocol": "TERMINATED_HTTPS",
            "description": "my listener",
            "default_tls_container_ref": "23b58a961a4d4c95be585e98046e657a",
            "admin_state_up": true,
            "http2_enable": false,
            "loadbalancers": [
                {
                    "id": "165b6a38-5278-4569-b747-b2ee65ea84a4"
                }
            ],
            "tenant_id": "601240b9c5c94059b63d484c92cfe308",
            "sni_container_refs": [],
            "connection_limit": -1,
            "protocol_port": 443,
            "tags": [],
            "default_pool_id": "c61310de-9a06-4f0c-850c-6f4797b9984c",
            "id": "f622c150-72f5-4263-a47a-e5003c652aa3",
            "name": "listener-jy-test2",
            "created_at": "2018-07-25T01:54:13", 
     
            "updated_at": "2018-07-25T01:54:14"
     
        }
    }

返回码

请参见状态码