更新时间:2024-04-08 GMT+08:00

创建监听器

功能介绍

给负载均衡器下创建监听器,用于监听后端云服务器的状态。

URI

POST /v1.0/{project_id}/elbaas/listeners

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

操作用户的项目ID。

name

String

  • 监听器的名称。
  • 取值范围:1-64个字符,中英文、数字、下划线、中划线。

description

String

  • 描述。
  • 取值范围:0-128个字符,不能输入<>。

loadbalancer_id

String

所属负载均衡器ID。

protocol

String

  • 监听协议,用于区分四层和七层。

    当负载均衡类型为私网时,不允许创建UDP协议的监听器。

  • 取值范围:HTTP、TCP、HTTPS和UDP。

port

Integer

  • 监听端口。
  • 取值范围:1-65535个字符。

backend_protocol

String

  • 后端协议。

    当监听协议为UDP时,即protocol字段为UDP时,后端协议只能为UDP协议。

  • 取值范围:HTTP、TCP、UDP。

backend_port

Integer

  • 后端端口。
  • 取值范围:1-65535个字符。

lb_algorithm

String

  • 监听器负载均衡方式。
  • 取值范围:roundrobin|leastconn |source。

session_sticky

Boolean

  • 是否开启会话保持。true为开启会话保持,false为关闭会话保持。
  • 取值范围:true|false。
  • 当protocol值为HTTP、HTTPS或TCP且lb_algorithm不等于roundrobin时,该值只能为false。

sticky_session_type

String

  • cookie的处理方式,设置为insert表示由ELB插入。protocol为HTTP,session_sticky为true时有效,且默认insert方式。protocol为TCP、UDP时,此参数无效(不传或者为空)。
  • 取值范围:insert 。

cookie_timeout

Integer

  • cookie超时时间。protocol为HTTP,session_sticky为true时且sticky_session_type为insert有效。protocol为TCP、UDP时,此参数无效。
  • 取值范围: 1-1440(单位为分)。

tcp_timeout

Integer

  • TCP会话超时时间。protocol为TCP,此参数有效。
  • 取值范围: 1-1440(单位为分)。

tcp_draining

Boolean

  • 四层负载均衡器的后端主机删除后,该后端主机的TCP连接是否保持,不中断。protocol为“TCP”时tcp_draining有效。
  • 取值范围:true|false。

tcp_draining_timeout

Integer

  • 四层负载均衡器的后端主机删除后,该后端主机的TCP连接保持的超时时间。

    当protocol为“TCP”,且tcp_draining为“true”时该字段有效。

  • 取值范围:0-60(单位为分钟)。

certificate_id

String

  • 如protocol为HTTPS,该字段为必选字段。
  • 取值范围:该ID可通过查询证书列表来获取。

udp_timeout

Integer

  • UDP会话超时时间。protocol为UDP,此参数有效。
  • 取值范围: 1-1440(单位为分)。

ssl_protocols

String

  • 监听器支持的SSL协议标准,用于启动特定的加密协议。当protocol为HTTPS时,本字段才有效。
  • 取值范围:TLS 1.2或TLS 1.2 TLS 1.1 TLS 1.0。默认值为TLS 1.2 。

ssl_ciphers

String

  • 加密协议的加密套件,当protocol值为HTTPS时,本字段才有效。
  • 取值范围:Default或Extended或Strict。

    其中,Default对应的加密套件参数值为ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256;

    Extended对应的加密套件参数值为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;

    Strict对应的加密套件参数值为ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256。

    默认值为Default。当ssl_protocols为TLS 1.2 TLS 1.1 TLS 1.0时,本字段只能取值Extended。

请求消息

  • 请求参数

  • 请求样例
    {
        "name": "listener1",
        "description": "",
        "loadbalancer_id": "0b07acf06d243925bc24a0ac7445267a",
        "protocol": "HTTP",
        "port": 88,
        "backend_protocol": "HTTP",
        "backend_port": 80,
        "lb_algorithm": "roundrobin",
        "session_sticky": true,
        "sticky_session_type": "insert",
        "cookie_timeout": 100,
        "tcp_draining": true,
        "tcp_draining_timeout": 5
    }

响应消息

  • 响应参数
    表2 响应参数

    参数

    参数类型

    描述

    update_time

    String

    更新时间。

    backend_port

    Integer

    后端端口。

    id

    String

    监听器ID。

    backend_protocol

    String

    后端协议。

    sticky_session_type

    String

    cookie的处理方式,设置为insert表示由ELB插入。session_sticky为true时有效,且默认insert方式。仅protocol为HTTP时有效。

    description

    String

    描述。

    loadbalancer_id

    String

    所属负载均衡器ID。

    create_time

    String

    创建时间。

    status

    String

    监听器状态。状态值:ACTIVE,PENDING_CREATE,ERROR。

    protocol

    String

    监听协议,用于区分四层和七层。

    port

    Integer

    监听端口。

    cookie_timeout

    Integer

    • 功能描述:cookie超时时间。session_sticky为true时且sticky_session_type为insert有效。
    • 取值范围: 1-1440(单位为分)。

    admin_state_up

    Boolean

    • 弹性负载均衡器的管理状态,
    • 取值范围:

      false:停用。

      true:正常。

    session_sticky

    Boolean

    是否开启会话保持。true为开启会话保持,false为关闭会话保持。

    lb_algorithm

    String

    监听器负载均衡方式。

    name

    String

    监听器的名称。

    tcp_draining

    Boolean

    • 四层负载均衡器的后端云服务器删除后,该云服务器的TCP连接是否保持,不中断。protocol为“TCP”时tcp_draining有效。
    • 取值范围:true、false。

    tcp_draining_timeout

    Integer

    • 四层负载均衡器的后端云服务器删除后,该云服务器的TCP连接保持的超时时间。

      当protocol为“TCP”,且tcp_draining为“true”时该字段有效。

    • 取值范围:0-60(单位为分钟)。

    ssl_protocols

    String

    • 监听器支持的SSL协议标准,用于启动特定的加密协议。
    • 该字段仅protocol为HTTPS时返回。

    ssl_ciphers

    String

    • 加密协议的加密套件。
    • 该字段仅protocol为HTTPS时返回。

    certificate_id

    String

    • 缺省的证书ID。
    • 该字段仅protocol为HTTPS时返回。
  • 响应样例
    {
        "update_time": "2015-09-15 07:41:17",
        "backend_port": 80,
        "tcp_draining": true,
        "id": "248425d7b97dc26920eb23720115e068",
        "backend_protocol": "HTTP",
        "sticky_session_type": "insert",
        "description": "",
        "loadbalancer_id": "0b07acf06d243925bc24a0ac7445267a",
        "create_time": "2015-09-15 07:41:17",
        "status": "ACTIVE",
        "protocol": "TCP",
        "port": 88,
        "cookie_timeout": 100,
        "admin_state_up": true,
        "session_sticky": true,
        "lb_algorithm": "roundrobin",
        "name": "listener1",
        "tcp_draining": true,
        "tcp_draining_timeout": 5
    }

状态码

  • 正常

    200

  • 异常

    状态码

    编码

    错误码说明

    400

    badRequest

    请求错误

    401

    unauthorized

    鉴权失败

    403

    userDisabled

    没有权限

    404

    Not Found

    请求的页面不存在

    500

    authFault

    内部错误

    503

    serviceUnavailable

    服务不可用