更新时间:2025-02-24 GMT+08:00

创建后端服务器组

功能介绍

创建后端服务器组。

接口约束

  1. 指定session-persistence参数时,只有当type是APP_COOKIE时,才可以设置cookie_name。

  2. 若指定listener_id参数,则对应的监听器必须未绑定后端服务器组。

调用方法

请参见如何调用API

URI

POST /v3/{project_id}/elb/pools

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:项目ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:IAM鉴权Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

pool

CreatePoolOption object

参数解释:创建pool的请求体。

表4 CreatePoolOption

参数

是否必选

参数类型

描述

admin_state_up

Boolean

参数解释:后端服务器组的管理状态,只支持设置为true。

description

String

参数解释:后端服务器组的描述信息。

lb_algorithm

String

参数解释:后端服务器组的负载均衡算法。

约束限制:

  • 当该字段的取值为SOURCE_IP或QUIC_CID时,后端服务器组绑定的后端服务器的weight字段无效。

  • 只有pool的protocol为QUIC时,才支持QUIC_CID算法。

取值范围:

  • ROUND_ROBIN:加权轮询算法。

  • LEAST_CONNECTIONS:加权最少连接算法。

  • SOURCE_IP:源IP算法。

  • QUIC_CID:连接ID算法。

listener_id

String

参数解释:后端服务器组关联的监听器的ID。

约束限制:

  • listener_id,loadbalancer_id,type至少指定一个。

  • 独享型实例的后端服务器组loadbalancer_id和listener_id可以都不指定,但共享型实例至少指定一个。。

loadbalancer_id

String

参数解释:后端服务器组关联的负载均衡器ID。

约束限制:

  • listener_id,loadbalancer_id,type至少指定一个。

  • 独享型实例的后端服务器组loadbalancer_id和listener_id可以都不指定,但共享型实例至少指定一个。。

name

String

参数解释:后端服务器组的名称。

project_id

String

参数解释:后端服务器组所属的项目ID。

protocol

String

参数解释:后端服务器组的后端协议。

约束限制:

  • listener的protocol为UDP时,pool的protocol必须为UDP或QUIC。

  • listener的protocol为TCP时pool的protocol必须为TCP。

  • listener的protocol为HTTP时,pool的protocol必须为HTTP。

  • listener的protocol为HTTPS时,pool的protocol必须为HTTP、HTTPS或GRPC。

  • listener的protocol为TERMINATED_HTTPS时,pool的protocol必须为HTTP。

  • listener的protocol为QUIC时,pool的protocol必须为HTTP、HTTPS或GRPC。

  • listener的protocol为TLS时,pool的protocol必须为TLS或TCP(且只能使用ip_version为v4的TCP pool)。

  • 若pool的protocol为QUIC,则必须开启session_persistence且type为SOURCE_IP。

  • 若pool的protocol为GRPC,关联监听器的http2_enable必须为true。

取值范围:TCP、UDP、TLS、GRPC、HTTP、HTTPS和QUIC。

session_persistence

CreatePoolSessionPersistenceOption object

参数解释:会话持久性对象。

slow_start

CreatePoolSlowStartOption object

参数解释:慢启动信息。开启慢启动后,将会在设定的时间段(duration)内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。

约束限制:当后端服务器组的协议为HTTP/HTTPS时有效,其他协议传入该字段将报错。

member_deletion_protection_enable

Boolean

参数解释:是否开启删除保护。

取值范围:false不开启,true开启,默认false。

说明:

退场时需要先关闭所有资源的删除保护开关。

vpc_id

String

参数解释:后端服务器组关联的虚拟私有云的ID。

约束限制:

  • 只能挂载到该虚拟私有云下。

  • 只能添加该虚拟私有云下的后端服务器或跨VPC的后端服务器。

  • type必须指定为instance。

  • 若未指定vpc_id,则后续添加后端服务器时,vpc_id由后端服务器所在的虚拟私有云确定。

type

String

参数解释:后端服务器组的类型。

约束限制:

  • 不传表示允许任意类型的后端,并返回type为空字符串。

  • listener_id,loadbalancer_id,type至少指定一个。

  • 独享型实例的后端服务器组loadbalancer_id和listener_id可以都不指定,但共享型实例至少指定一个。

取值范围:

  • instance:允许任意类型的后端,type指定为该类型时,vpc_id是必选字段。

  • ip:只能添加跨VPC后端,type指定为该类型时,vpc_id不允许指定。]

ip_version

String

参数解释:后端服务器组支持的IP版本。

取值范围:

  • 共享型:固定为v4;

  • 独享型:取值dualstack、v4。当协议为TCP/UDP时,ip_version为dualstack,表示双栈。当协议为HTTP时,ip_version为v4。

quic_cid_hash_strategy

QuicCidHashStrategy object

参数解释:后端服务器组基于部分DST CID的多径分发策略配置。

表5 CreatePoolSessionPersistenceOption

参数

是否必选

参数类型

描述

cookie_name

String

参数解释:cookie名称。

约束限制:

  • 只有当type为APP_COOKIE时才有效。其他情况下传该字段会报错。

取值范围:

  • 共享型LB,支持字母、数字、中划线(-)和下划线(_),最大长度64个字符。

  • 独享型LB,支持字母、数字、中划线(-)、下划线(_)和点号(.),最大长度255个字符。

type

String

参数解释:会话保持类型。

约束限制:

  • 当pool的protocol为TCP、UDP,无论type取值如何,都会被忽略,会话保持只按SOURCE_IP生效;

  • 当pool的protocol为HTTP、HTTPS时。type可以为HTTP_COOKIE和APP_COOKIE,其他取值会话保持失效。

  • 若pool的protocol为QUIC,则必须开启session_persistence且type为SOURCE_IP。

取值范围:SOURCE_IP、HTTP_COOKIE、APP_COOKIE。

persistence_timeout

Integer

参数解释:会话保持的时间。当type为APP_COOKIE时不生效。

取值范围:

  • 若pool的protocol为TCP、UDP则范围为[1,60](分钟),默认值1;

  • 若pool的protocol为HTTP和HTTPS则范围为[1,1440](分钟),默认值1440。

表6 CreatePoolSlowStartOption

参数

是否必选

参数类型

描述

enable

Boolean

参数解释:慢启动的开关。

取值范围:

  • true:开启。

  • false:关闭。

默认取值:false。

duration

Integer

参数解释:慢启动的持续时间。

取值范围:30-1200,单位:秒。

默认取值:30。

表7 QuicCidHashStrategy

参数

是否必选

参数类型

描述

len

Integer

参数解释:仅当负载均衡算法为QUIC_CID的时候才生效,表示hash的时候取CID的长度。

取值范围:1-20

默认取值:3

offset

Integer

参数解释:仅当负载均衡算法为QUIC_CID的时候才生效,表示hash的时候取CID的偏移量。

取值范围:0-19

默认取值:1

响应参数

状态码:201

表8 响应Body参数

参数

参数类型

描述

request_id

String

参数解释:请求ID。

注:自动生成 。

pool

Pool object

参数解释:后端服务器组对象。

表9 Pool

参数

参数类型

描述

admin_state_up

Boolean

参数解释:后端服务器组的管理状态。

description

String

参数解释:后端服务器组的描述信息。

healthmonitor_id

String

参数解释:后端服务器组关联的健康检查的ID。

id

String

参数解释:后端服务器组的ID。

lb_algorithm

String

参数解释:后端服务器组的负载均衡算法。

约束限制:

  • 当该字段的取值为SOURCE_IP或QUIC_CID时,后端服务器组绑定的后端服务器的weight字段无效。

  • 只有pool的protocol为QUIC时,才支持QUIC_CID算法。

取值范围:

  • ROUND_ROBIN:加权轮询算法。

  • LEAST_CONNECTIONS:加权最少连接算法。

  • SOURCE_IP:源IP算法。

  • QUIC_CID:连接ID算法。

listeners

Array of ListenerRef objects

参数解释:后端服务器组关联的监听器ID列表。

loadbalancers

Array of LoadBalancerRef objects

参数解释:后端服务器组关联的负载均衡器ID列表。

members

Array of MemberRef objects

参数解释:后端服务器组中的后端服务器ID列表。

name

String

参数解释:后端服务器组的名称。

project_id

String

参数解释:后端服务器组所在的项目ID。

protocol

String

参数解释:后端服务器组的后端协议。

约束限制:

  • listener的protocol为UDP时,pool的protocol必须为UDP或QUIC。

  • listener的protocol为TCP时pool的protocol必须为TCP。

  • listener的protocol为HTTP时,pool的protocol必须为HTTP。

  • listener的protocol为HTTPS时,pool的protocol必须为HTTP、HTTPS或GRPC。

  • listener的protocol为TERMINATED_HTTPS时,pool的protocol必须为HTTP。

  • listener的protocol为QUIC时,pool的protocol必须为HTTP、HTTPS或GRPC。

  • listener的protocol为TLS时,pool的protocol必须为TLS或TCP。

  • 若pool的protocol为QUIC,则必须开启session_persistence且type为SOURCE_IP。

  • 若pool的protocol为GRPC,关联监听器必须开启HTTP2。

  • 若pool的protocol为TCP,则pool的ip_version字段取值必须是4。

取值范围:TCP、UDP、TLS、GRPC、HTTP、HTTPS和QUIC。

session_persistence

SessionPersistence object

参数解释:会话持久性对象。

ip_version

String

参数解释:后端服务器组支持的IP版本。

取值范围:

  • 共享型:固定为v4;

  • 独享型:取值dualstack、v4。当协议为TCP/UDP时,ip_version为dualstack,表示双栈。当协议为HTTP时,ip_version为v4。

slow_start

SlowStart object

参数解释:慢启动信息。开启慢启动后,将会在设定的时间段(duration)内对新添加到后端服务器组的后端服务器进行预热,转发到该服务器的请求数量线性增加。

约束限制:当后端服务器组的协议为HTTP/HTTPS时有效,其他协议传入该字段将报错。

member_deletion_protection_enable

Boolean

参数解释:是否开启误删保护。

取值范围:false不开启,true开启。

说明:

退场时需要先关闭所有资源的删除保护开关。

created_at

String

参数解释:创建时间。

取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。

注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。

updated_at

String

参数解释:更新时间。

取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。

注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。

vpc_id

String

参数解释:后端服务器组关联的虚拟私有云的ID。

type

String

参数解释:后端服务器组的类型。

取值范围:

  • instance:允许任意类型的后端,type指定为该类型时,vpc_id是必选字段。

  • ip:只能添加跨VPC后端,type指定为该类型时,vpc_id不允许指定。]

  • 空字符串(""):允许任意类型的后端

enterprise_project_id

String

参数解释:IP地址组所在的企业项目ID。

quic_cid_hash_strategy

QuicCidHashStrategy object

参数解释:后端服务器组基于部分DST CID的多径分发策略。

表10 ListenerRef

参数

参数类型

描述

id

String

参数解释:监听器ID。

表11 LoadBalancerRef

参数

参数类型

描述

id

String

参数解释:负载均衡器ID。

表12 MemberRef

参数

参数类型

描述

id

String

参数解释:后端服务器ID。

表13 SessionPersistence

参数

参数类型

描述

cookie_name

String

参数解释:cookie名称。

约束限制:

  • 只有当type为APP_COOKIE时才有效。其他情况下传该字段会报错。

取值范围:

  • 共享型LB,支持字母、数字、中划线(-)和下划线(_),最大长度64个字符。

  • 独享型LB,支持字母、数字、中划线(-)、下划线(_)和点号(.),最大长度255个字符。

type

String

参数解释:会话保持类型。

约束限制:

  • 当pool的protocol为TCP、UDP,无论type取值如何,都会被忽略,会话保持只按SOURCE_IP生效。

  • 当pool的protocol为HTTP、HTTPS时。如果是独享型负载均衡器的pool,则type只能为HTTP_COOKIE,其他取值会话保持失效。如果是共享型负载均衡器的pool,则type可以为HTTP_COOKIE和APP_COOKIE,其他取值会话保持失效。

  • 若pool的protocol为QUIC,则必须开启session_persistence且type为SOURCE_IP。

取值范围:SOURCE_IP、HTTP_COOKIE、APP_COOKIE。

persistence_timeout

Integer

参数解释:会话保持的时间。当type为APP_COOKIE时不生效。

取值范围:

  • 若pool的protocol为TCP、UDP和QUIC则范围为[1,60](分钟),默认值1;

  • 若pool的protocol为HTTP和HTTPS则范围为[1,1440](分钟),默认值1440。

表14 SlowStart

参数

参数类型

描述

enable

Boolean

参数解释:慢启动的开关。

取值范围:

  • true:开启。

  • false:关闭。

默认取值:false

duration

Integer

参数解释:慢启动的持续时间。

取值范围:30-1200,单位:秒。

默认取值:30

表15 QuicCidHashStrategy

参数

参数类型

描述

len

Integer

参数解释:仅当负载均衡算法为QUIC_CID的时候才生效,表示hash的时候取CID的长度。

取值范围:1-20

默认取值:3

offset

Integer

参数解释:仅当负载均衡算法为QUIC_CID的时候才生效,表示hash的时候取CID的偏移量。

取值范围:0-19

默认取值:1

请求示例

  • 创建一个后端服务器组,并指定协议为TCP协议

    POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/pools
    
    {
      "pool" : {
        "name" : "My pool",
        "lb_algorithm" : "LEAST_CONNECTIONS",
        "listener_id" : "0b11747a-b139-492f-9692-2df0b1c87193",
        "protocol" : "TCP",
        "member_deletion_protection_enable" : false
      }
    }
  • 创建一个后端服务器组,并指定协议为HTTP协议

    POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/pools
    
    {
      "pool" : {
        "name" : "My pool",
        "lb_algorithm" : "LEAST_CONNECTIONS",
        "listener_id" : "0b11747a-b139-492f-9692-2df0b1c87193",
        "protocol" : "HTTP",
        "slow_start" : {
          "enable" : true,
          "duration" : 50
        },
        "member_deletion_protection_enable" : false
      }
    }

响应示例

状态码:201

POST操作正常返回。

{
  "pool" : {
    "type" : "",
    "vpc_id" : "",
    "lb_algorithm" : "LEAST_CONNECTIONS",
    "protocol" : "TCP",
    "description" : "",
    "admin_state_up" : true,
    "member_deletion_protection_enable" : false,
    "loadbalancers" : [ {
      "id" : "098b2f68-af1c-41a9-8efd-69958722af62"
    } ],
    "project_id" : "99a3fff0d03c428eac3678da6a7d0f24",
    "session_persistence" : null,
    "healthmonitor_id" : null,
    "listeners" : [ {
      "id" : "0b11747a-b139-492f-9692-2df0b1c87193"
    } ],
    "members" : [ ],
    "id" : "36ce7086-a496-4666-9064-5ba0e6840c75",
    "name" : "My pool",
    "ip_version" : "v4",
    "slow_start" : null
  },
  "request_id" : "2d974978-0733-404d-a21a-b29204f4803a"
}

状态码

状态码

描述

201

POST操作正常返回。

错误码

请参见错误码