華為云計(jì)算 云知識(shí) 創(chuàng)建監(jiān)聽器CreateListener
創(chuàng)建監(jiān)聽器CreateListener

 

功能介紹

創(chuàng)建與 負(fù)載均衡 器綁定的監(jiān)聽器。

接口約束

  • 只有具有ELB管理員權(quán)限的用戶才能指定connection_limit的值。
  • protocol參數(shù)只支持TCP、UDP、HTTP和TERMINATED_HTTPS。

調(diào)試

您可以在API Explorer中直接運(yùn)行調(diào)試該接口。

URI

POST /v2/{project_id}/elb/listeners

表1 參數(shù)說明

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

操作用戶的項(xiàng)目ID。

獲取方法詳見獲取項(xiàng)目ID。

請(qǐng)求消息

表2 請(qǐng)求參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

listener

Listener object

listener對(duì)象。詳見表3。

表3 listener字段說明

參數(shù)

是否必選

參數(shù)類型

描述

tenant_id

String

監(jiān)聽器所在的項(xiàng)目ID。

獲取方法詳見獲取項(xiàng)目ID

需要和token中的project_id一致。

支持的最大字符長度:255

name

String

監(jiān)聽器名稱。

注意:若名稱為空,則在控制臺(tái)的監(jiān)聽器列表無法選擇并查看監(jiān)聽器詳情。

支持的最大字符長度:255

description

String

監(jiān)聽器描述信息。

支持的最大字符長度:255

protocol

String

監(jiān)聽器的監(jiān)聽協(xié)議。

取值范圍:TCP、HTTP、UDP、TERMINATED_HTTPS。

protocol_port

Integer

監(jiān)聽器的監(jiān)聽端口。

取值范圍:[1, 65535]。

說明:

如果監(jiān)聽協(xié)議為UDP,端口號(hào)不支持4789。

loadbalancer_id

String

監(jiān)聽器關(guān)聯(lián)的負(fù)載均衡器 ID。

connection_limit

Integer

監(jiān)聽器的最大連接數(shù)。

取值范圍:[-1, 2147483647]。默認(rèn)為-1,無限制。

該字段為預(yù)留字段,暫未啟動(dòng)。

admin_state_up

Boolean

監(jiān)聽器的管理狀態(tài)。

該字段為預(yù)留字段,暫未啟用。默認(rèn)為true。

http2_enable

Boolean

HTTP2功能的開啟狀態(tài)。

取值范圍:true/false。true:開啟。false:關(guān)閉。

默認(rèn)為false。

僅針對(duì)監(jiān)聽器的協(xié)議為TERMINATED_HTTPS有意義。

default_pool_id

String

監(jiān)聽器的默認(rèn)后端 云服務(wù)器 組ID。

當(dāng)請(qǐng)求沒有匹配的轉(zhuǎn)發(fā)策略時(shí),轉(zhuǎn)發(fā)到默認(rèn)后端云服務(wù)器上處理。當(dāng)該字段為null時(shí),表示監(jiān)聽器無默認(rèn)的后端云服務(wù)器組。

default_pool_id有如下限制:
  • 不能更新為其他監(jiān)聽器的default_pool。
  • 不能更新為其他監(jiān)聽器關(guān)聯(lián)的轉(zhuǎn)發(fā)策略所使用的pool。
監(jiān)聽器和與之綁定的后端云服務(wù)器的對(duì)應(yīng)關(guān)系如下:
  • 監(jiān)聽器的protocol為TCP時(shí),后端云服務(wù)器組的protocol必須為TCP。
  • 監(jiān)聽器的protocol為UDP時(shí),后端云服務(wù)器組的protocol必須為UDP。
  • 監(jiān)聽器的protocol為HTTP或TERMINATED_HTTPS時(shí),后端云服務(wù)器組的protocol必須為HTTP。

default_tls_container_ref

String

監(jiān)聽器使用的服務(wù)器證書ID。詳細(xì)參見SSL證書管理。

當(dāng)protocol參數(shù)為TERMINATED_HTTPS時(shí),為必選字段。

當(dāng)protocol參數(shù)為非TERMINATED_HTTPS時(shí),默認(rèn)值:null。

支持的最大字符長度:128

說明:

僅針對(duì)監(jiān)聽器的協(xié)議為TERMINATED_HTTPS有意義。

client_ca_tls_container_ref

String

監(jiān)聽器使用的CA證書ID。詳細(xì)參見SSL證書管理。

默認(rèn)值:null

支持的最大字符長度:128

說明:

僅針對(duì)監(jiān)聽器的協(xié)議為TERMINATED_HTTPS有意義。

sni_container_refs

Array

監(jiān)聽器使用的SNI證書(帶域名的服務(wù)器證書)ID的列表。

該字段不為空列表時(shí),SNI特性開啟。該字段為空列表時(shí),SNI特性關(guān)閉。

默認(rèn)值:[]

說明:

僅針對(duì)監(jiān)聽器的協(xié)議為TERMINATED_HTTPS有意義。

insert_headers

InsertHeaders object

HTTP擴(kuò)展頭部,內(nèi)部字段全量同步,不選則為默認(rèn)值。

可以將從負(fù)載均衡器到后端云服務(wù)器的路徑中需要被后端云服務(wù)器用到的信息寫入HTTP中,隨報(bào)文傳遞到后端云服務(wù)器上。

例如可通過X-Forwarded-ELB-IP開關(guān),將負(fù)載均衡器的 彈性公網(wǎng)IP 傳到后端云服務(wù)器。詳細(xì)參見表4。

說明:

僅當(dāng)監(jiān)聽器的協(xié)議為HTTP、TERMINATED_HTTPS時(shí),該字段有意義。

tls_ciphers_policy

String

監(jiān)聽器使用的安全策略,僅對(duì)TERMINATED_HTTPS協(xié)議類型的監(jiān)聽器有效,且默認(rèn)值為tls-1-0。

取值包括:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict多種安全策略。各安全策略使用的加密套件列表詳細(xì)參見表5。

表4 insert_headers字段說明

參數(shù)

是否必選

參數(shù)類型

描述

X-Forwarded-ELB-IP

Boolean

負(fù)載均衡器彈性 公網(wǎng)IP 透傳開關(guān)。打開時(shí)可以將負(fù)載均衡器的彈性公網(wǎng)IP從報(bào)文的HTTP頭中帶到后端云服務(wù)器。

取值范圍:true/false。true:開啟。false:關(guān)閉。

默認(rèn):關(guān)閉。

X-Forwarded-Host

Boolean

負(fù)載均衡器X-Forwarded-Host重寫開關(guān)。打開時(shí)可以將客戶請(qǐng)求頭的X-Forwarded-Host設(shè)置為請(qǐng)求頭的Host帶到后端云服務(wù)器

取值范圍:true/false。true:開啟。false:關(guān)閉。

默認(rèn):開啟。

表5 tls_ciphers_policy取值說明

安全策略

支持的TLS版本類型

使用的加密套件列表

tls-1-0-inherit

TLS 1.2 TLS 1.1 TLS 1.0

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA:DHE-DSS-AES128-SHA:CAMELLIA128-SHA:EDH-RSA-DES-CBC3-SHA:DES-CBC3-SHA:ECDHE-RSA-RC4-SHA:RC4-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:CAMELLIA256-SHA:EDH-DSS-DES-CBC3-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA

tls-1-0

TLS 1.2 TLS 1.1 TLS 1.0

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA

tls-1-1

TLS 1.2 TLS 1.1

tls-1-2

TLS 1.2

tls-1-2-strict

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384

響應(yīng)消息

表6 響應(yīng)參數(shù)

參數(shù)

參數(shù)類型

描述

listener

Listener object

監(jiān)聽器對(duì)象。詳見表7 listener字段說明。

表7 listener字段說明

參數(shù)

參數(shù)類型

描述

id

String

監(jiān)聽器ID。

tenant_id

String

監(jiān)聽器所在的項(xiàng)目ID。

支持的最大字符長度:255

project_id

String

此參數(shù)和tenant_id參數(shù)含義一樣,均指監(jiān)聽器所在的項(xiàng)目ID。

name

String

監(jiān)聽器名稱。

注意:若名稱為空,則在控制臺(tái)的監(jiān)聽器列表無法選擇并查看監(jiān)聽器詳情。

支持的最大字符長度:255

description

String

監(jiān)聽器描述信息。

支持的最大字符長度:255

protocol

String

監(jiān)聽器的監(jiān)聽協(xié)議。

支持TCP、HTTP、UDP、TERMINATED_HTTPS。

protocol_port

Integer

監(jiān)聽器的監(jiān)聽端口。

取值范圍:[1, 65535]。

loadbalancers

Array of Loadbalancers objects

監(jiān)聽器關(guān)聯(lián)的負(fù)載均衡器 ID。詳細(xì)參見表8。

connection_limit

Integer

監(jiān)聽器的最大連接數(shù)。

取值范圍:[-1, 2147483647]。默認(rèn)為-1,無連接數(shù)限制。

該字段為預(yù)留字段,暫未啟動(dòng)。

admin_state_up

Boolean

監(jiān)聽器的管理狀態(tài)。

該字段為預(yù)留字段,暫未啟用。取值范圍:true/false。

  • true表示開啟。
  • false表示關(guān)閉。

http2_enable

Boolean

HTTP2功能的開啟狀態(tài)。

取值范圍:true/false。true:開啟。false:關(guān)閉。

僅針對(duì)監(jiān)聽器的協(xié)議為TERMINATED_HTTPS有意義。

default_pool_id

String

監(jiān)聽器的默認(rèn)后端云服務(wù)器組ID。

當(dāng)請(qǐng)求沒有匹配的轉(zhuǎn)發(fā)策略時(shí),轉(zhuǎn)發(fā)到默認(rèn)后端云服務(wù)器上處理。當(dāng)該字段為null時(shí),表示監(jiān)聽器無默認(rèn)的后端云服務(wù)器組。

default_tls_container_ref

String

監(jiān)聽器使用的服務(wù)器證書ID。詳細(xì)參見SSL證書管理

當(dāng)protocol參數(shù)為TERMINATED_HTTPS時(shí),為必選字段。

支持的最大字符長度:128

client_ca_tls_container_ref

String

監(jiān)聽器使用的CA證書ID。

支持的最大字符長度:128

詳細(xì)參見SSL證書管理

sni_container_refs

Array

監(jiān)聽器使用的SNI證書(帶域名的服務(wù)器證書)ID的列表。

該字段不為空列表時(shí),SNI特性開啟。該字段為空列表時(shí),SNI特性關(guān)閉。

tags

Array

監(jiān)聽器的標(biāo)簽。

created_at

String

監(jiān)聽器的創(chuàng)建時(shí)間。YYYY-MM-DDTHH:MM:SS

updated_at

String

監(jiān)聽器的更新時(shí)間。YYYY-MM-DDTHH:MM:SS

insert_headers

InsertHeaders object

HTTP擴(kuò)展頭部,內(nèi)部字段全量同步,不選則為默認(rèn)值。

可以將從負(fù)載均衡器到后端云服務(wù)器的路徑中需要被后端云服務(wù)器用到的信息寫入HTTP中,隨報(bào)文傳遞到后端云服務(wù)器上。

例如可通過X-Forwarded-ELB-IP開關(guān),將負(fù)載均衡器的彈性公網(wǎng)IP傳到后端云服務(wù)器。詳細(xì)參見表9。

tls_ciphers_policy

String

監(jiān)聽器使用的安全策略,僅對(duì)TERMINATED_HTTPS協(xié)議類型的監(jiān)聽器有效,且默認(rèn)值為tls-1-0。

取值包括:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict多種安全策略。各安全策略使用的加密套件列表。詳細(xì)參見表10。

表8 loadbalancers字段說明

參數(shù)

是否必選

參數(shù)類型

描述

id

String

關(guān)聯(lián)的負(fù)載均衡器id

表9 insert_headers字段說明

參數(shù)

是否必選

參數(shù)類型

描述

X-Forwarded-ELB-IP

Boolean

負(fù)載均衡器彈性公網(wǎng)IP透傳開關(guān)。打開時(shí)可以將負(fù)載均衡器的彈性公網(wǎng)IP從報(bào)文的HTTP頭中帶到后端云服務(wù)器。

取值范圍:true/false。true:開啟。false:關(guān)閉。

默認(rèn):關(guān)閉。

X-Forwarded-Host

Boolean

負(fù)載均衡器X-Forwarded-Host重寫開關(guān)。打開時(shí)可以將客戶請(qǐng)求頭的X-Forwarded-Host設(shè)置為請(qǐng)求頭的Host帶到后端云服務(wù)器

取值范圍:true/false。true:開啟。false:關(guān)閉。

默認(rèn):開啟。

表10 tls_ciphers_policy取值說明

安全策略

支持的TLS版本類型

使用的加密套件列表

tls-1-0-inherit

TLS 1.2 TLS 1.1 TLS 1.0

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA:DHE-DSS-AES128-SHA:CAMELLIA128-SHA:EDH-RSA-DES-CBC3-SHA:DES-CBC3-SHA:ECDHE-RSA-RC4-SHA:RC4-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:CAMELLIA256-SHA:EDH-DSS-DES-CBC3-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA

tls-1-0

TLS 1.2 TLS 1.1 TLS 1.0

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA

tls-1-1

TLS 1.2 TLS 1.1

tls-1-2

TLS 1.2

tls-1-2-strict

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384

請(qǐng)求示例

  • 請(qǐng)求樣例1 創(chuàng)建TCP監(jiān)聽器
    POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/listeners
    
    {
        "listener": {
            "protocol_port": 80,
            "protocol": "TCP",
            "loadbalancer_id": "0416b6f1-877f-4a51-987e-978b3f084253",
            "name": "listener-test",
            "insert_headers":{},
           
            "admin_state_up": true
        }
    }
  • 請(qǐng)求樣例2 創(chuàng)建TERMINATED_HTTPS類型的監(jiān)聽器
    POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/listeners
    
    { 
        "listener": { 
            "protocol_port": 25, 
            "protocol": "TERMINATED_HTTPS", 
            "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6",
            "loadbalancer_id": "0416b6f1-877f-4a51-987e-978b3f084253", 
            "name": "listener-test",
            "admin_state_up": true
        } 
    }
  • 請(qǐng)求樣例3 創(chuàng)建開啟SNI的監(jiān)聽器
    POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/listeners
    
    {
        "listener": {
            "protocol_port": 27, 
            "protocol": "TERMINATED_HTTPS", 
            "loadbalancer_id": "6bb85e33-4953-457a-85a9-336d76125b7b", 
            "name": "listener-test", 
            "admin_state_up": true,
            "default_tls_container_ref":"02dcd56799e045bf8b131533cc911dd6",
            "sni_container_refs": ["e15d1b5000474adca383c3cd9ddc06d4",
            	              "5882325fd6dd4b95a88d33238d293a0f"]
        }
    }

響應(yīng)示例

  • 響應(yīng)樣例1
    {
        "listener": {
            "protocol_port": 80,
            "protocol": "TCP",
            "description": "",
            "client_ca_tls_container_ref": null,
            "default_tls_container_ref": null,
            "admin_state_up": true,
            "http2_enable": false,
            "loadbalancers": [
                {
                    "id": "0416b6f1-877f-4a51-987e-978b3f084253"
                }
            ],
            "tenant_id": "145483a5107745e9b3d80f956713e6a3",
            "project_id": "145483a5107745e9b3d80f956713e6a3",
            "sni_container_refs": [],
            "connection_limit": -1,
            "default_pool_id": null,
            "tags": [],
            "insert_headers":{},
            "id": "b7f32b52-6f17-4b16-9ec8-063d71b653ce",
            "name": "listener-test",
            "created_at": "2018-07-25T01:54:13", 
            "updated_at": "2018-07-25T01:54:14"
         }
    }
  • 響應(yīng)樣例2
    {
        "listener": {
            "insert_headers": {},
            "protocol_port": 25,
            "protocol": "TERMINATED_HTTPS",
            "description": "",
            "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6",
            "sni_container_refs": [],
            "loadbalancers": [
                {
                    "id": "0416b6f1-877f-4a51-987e-978b3f084253"
                }
            ],
            "tenant_id": "601240b9c5c94059b63d484c92cfe308",
            "project_id": "601240b9c5c94059b63d484c92cfe308", 
            "created_at": "2019-01-21T12:38:31",
            "client_ca_tls_container_ref": null,
            "connection_limit": -1,
            "updated_at": "2019-01-21T12:38:31",
            "http2_enable": false,
            "admin_state_up": true,
            "default_pool_id": null,
            "insert_headers":{},
            "id": "b56634cd-5ba8-460e-b5a2-6de5ba8eaf60",
            "tags": [],
            "name": "listener-test"
        }
    }
  • 響應(yīng)樣例3
    {
        "listener": {
            "insert_headers": {},
            "protocol_port": 27,
            "protocol": "TERMINATED_HTTPS",
            "description": "",
            "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6",
            "sni_container_refs": [
                "5882325fd6dd4b95a88d33238d293a0f",
                "e15d1b5000474adca383c3cd9ddc06d4"
            ],
            "loadbalancers": [
                {
                    "id": "6bb85e33-4953-457a-85a9-336d76125b7b"
                }
            ],
            "tenant_id": "601240b9c5c94059b63d484c92cfe308",
            "project_id": "601240b9c5c94059b63d484c92cfe308",
            "created_at": "2019-01-21T12:43:55", 
            "client_ca_tls_container_ref": null,
            "connection_limit": -1,
            "updated_at": "2019-01-21T12:43:55",
            "http2_enable": false,
            "admin_state_up": true,
            "default_pool_id": null,
            "insert_headers":{},
            "id": "b2cfda5b-52fe-4320-8845-34e8d4dac2c7",
            "tags": [],
            "name": "listener-test"
        }
    }

返回碼

請(qǐng)參見狀態(tài)碼。