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

更新后端云服务器组

功能介绍

更新后端云服务器组。

接口约束

如果与pool绑定的load balancer的provisioning status不是ACTIVE,则不能更新该pool。

URI

PUT /v2/{project_id}/elb/pools/{pool_id}

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

操作用户的项目ID。

pool_id

String

后端云服务器组id。

请求消息

表2 请求参数

参数

是否必选

参数类型

描述

pool

Pool object

后端云服务器组对象。详见表3

表3 pool字段说明

参数

是否必选

参数类型

描述

name

String

后端云服务器组名称。

支持的最大字符长度:255

description

String

后端云服务器组的描述信息。

支持的最大字符长度:255

lb_algorithm

String

后端云服务器组的负载均衡算法。

取值范围:
  • ROUND_ROBIN:加权轮询算法。
  • LEAST_CONNECTIONS:加权最少连接算法。
  • SOURCE_IP:源IP算法。

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

admin_state_up

Boolean

后端云服务器组的管理状态。

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

session_persistence

SessionPersistence object

后端云服务器组的会话持久性。详见表4

当开启会话保持后,在一定时间内,来自同一客户端的请求会发送到同一个后端云服务器上。

取值范围:当会话保持关闭时,该字段取值为null。

protection_status

String

当前资源保护状态, 取值:

  • nonProtection: 不保护,默认值为nonProtection
  • consoleProtection: 控制台修改保护

protection_reason

String

资源保护的原因。仅当protection_status为consoleProtection时有效。

表4 session_persistence字段说明

参数

是否必选

参数类型

描述

type

String

会话保持的类型。

取值范围:
  • SOURCE_IP:根据请求的源IP,将同一IP的请求发送到同一个后端云服务器上。
  • HTTP_COOKIE:客户端第一次发送请求时,负载均衡器自动生成cookie并将该cookie插入响应消息中,后续请求会发送到处理第一个请求的后端云服务器上。
  • APP_COOKIE:客户端第一次发送请求时,后端服务器生成cookie并将该cookie插入响应消息中,后续请求会发送到处理第一个请求的后端云服务器上。

当后端云服务器组的protocol为TCP时,只按SOURCE_IP生效;当后端云服务器组的protocol为HTTP时,只按HTTP_COOKIE、APP_COOKIE生效。

cookie_name

String

cookie名称。支持字母、数字、中划线(-)和下划线(_),最大长度64个字符。

当会话保持类型是APP_COOKIE时,为必选字段,其它类型时不可指定。

persistence_timeout

Integer

会话保持的超时时间。

当type为APP_COOKIE时不生效。

取值范围:
  • [1,60](分钟):当后端云服务器组的protocol为TCP、UDP时。
  • [1,1440](分钟):当后端云服务器组的protocol为HTTP、HTTPS时。

响应消息

表5 响应参数

参数

参数类型

描述

pool

Pool object

后端云服务器组对象。详见表6 pool字段说明

表6 pool字段说明

参数

参数类型

描述

id

String

后端云服务器组 ID。

tenant_id

String

后端云服务器组所属的项目 ID。

支持的最大字符长度:255

name

String

后端云服务器组名称。

支持的最大字符长度:255

description

String

后端云服务器组的描述信息。

支持的最大字符长度:255

protocol

String

后端云服务器组的后端协议。

取值范围:TCP、UDP和HTTP。

当指定listener_id创建后端云服务器组时,后端云服务器组的protocol和它关联的监听器的protocol有如下关系:

  • 监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP;
  • 监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP;
  • 监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。

lb_algorithm

String

后端云服务器组的负载均衡算法。

取值范围:
  • ROUND_ROBIN:加权轮询算法。
  • LEAST_CONNECTIONS:加权最少连接算法。
  • SOURCE_IP:源IP算法。当该字段的取值为SOURCE_IP时,后端云服务器组绑定的后端云服务器的weight字段无效。

members

Array of Members objects

后端云服务器组关联的后端云服务器ID的列表。详见表7

healthmonitor_id

String

后端云服务器组关联的健康检查的ID。

admin_state_up

Boolean

后端云服务器组的管理状态。

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

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

listeners

Array of Listeners objects

后端云服务器组关联的监听器ID列表。详见表8

loadbalancers

Array of Loadbalancers objects

后端云服务器组关联的负载均衡器ID列表。详见表9

session_persistence

SessionPersistence object

后端云服务器组的会话持久性。详见表10

当开启会话保持后,在一定时间内,来自同一客户端的请求会发送到同一个后端云服务器上。

取值范围:当会话保持关闭时,该字段取值为null。

protection_status

String

String

当前资源保护状态, 取值:

  • nonProtection: 不保护,默认值为nonProtection
  • consoleProtection: 控制台修改保护

protection_reason

String

String

资源保护的原因。仅当protection_status为consoleProtection时有效。

表7 members字段说明

参数

参数类型

描述

id

String

关联的后端服务器id

表8 listeners字段说明

参数

参数类型

描述

id

String

关联的后端服务器组id

表9 loadbalancers字段说明

参数

参数类型

描述

id

String

关联的负载均衡器id

表10 session_persistence字段说明

参数

是否必选

参数类型

描述

type

String

会话保持的类型。

取值范围:
  • SOURCE_IP:根据请求的源IP,将同一IP的请求发送到同一个后端云服务器上。
  • HTTP_COOKIE:客户端第一次发送请求时,负载均衡器自动生成cookie并将该cookie插入响应消息中,后续请求会发送到处理第一个请求的后端云服务器上。
  • APP_COOKIE:客户端第一次发送请求时,后端服务器生成cookie并将该cookie插入响应消息中,后续请求会发送到处理第一个请求的后端云服务器上。

当后端云服务器组的protocol为TCP时,只按SOURCE_IP生效;当后端云服务器组的protocol为HTTP时,只按HTTP_COOKIE、APP_COOKIE生效。

cookie_name

String

cookie名称。支持字母、数字、中划线(-)和下划线(_),最大长度64个字符。

当会话保持类型是APP_COOKIE时,为必选字段,其它类型时不可指定。

persistence_timeout

Integer

会话保持的超时时间。

当type为APP_COOKIE时不生效。

取值范围:
  • [1,60](分钟):当后端云服务器组的protocol为TCP、UDP时。
  • [1,1440](分钟):当后端云服务器组的protocol为HTTP、HTTPS时。

请求示例

  • 请求样例1 更新后端云服务器组的名称、描述和负载均衡算法
    PUT https://{Endpoint}/v2/1a3e005cf9ce40308c900bcb08e5320c/elb/pools/12ff63af-4127-4074-a251-bcb2ecc53ebe
    
    {
        "pool": {
            "name": "pool2",
            "description": "pool two",
            "lb_algorithm": "LEAST_CONNECTIONS"
        }
    }

响应示例

  • 响应样例1
    {
        "pool": {
            "lb_algorithm": "LEAST_CONNECTIONS",
            "protocol": "HTTP",
            "description": "pool two",
            "admin_state_up": false,
            "tenant_id": "1a3e005cf9ce40308c900bcb08e5320c",
            "session_persistence": {
                "cookie_name": null,
                "type": "HTTP_COOKIE",
                "persistence_timeout": 1440
            },
            "healthmonitor_id": null,
            "listeners": [
                {
                    "id": "39de4d56-d663-46e5-85a1-5b9d5fa17829"
                }
            ],
            "members": [],
            "id": "12ff63af-4127-4074-a251-bcb2ecc53ebe",
            "name": "pool2"
        }
    }

返回码

请参见状态码