创建后端服务器
功能介绍
创建后端服务器。
接口约束
1.同一个pool下的两个member不能有相同的address和port。
2.若所属LB开启跨VPC特性,创建member时可以不指定的子网,表示创建跨VPC的后端服务器。
此时address必须为ipv4地址,pool的协议必须为TCP/HTTP/HTTPS。
3.创建member时若指定了子网,则该子网必须和负载均衡器所在子网处在同一个VPC下。
4.如果pool是dualstack的,address支持IPv4格式也支持IPv6格式,
如果pool是v4的,address 只支持IPv4。
5.创建member时,若请求参数type为instance,则参数address不允许为任何ELB的私网IP。
调用方法
请参见如何调用API。
URI
POST /v3/{project_id}/elb/pools/{pool_id}/members
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
pool_id |
是 |
String |
参数解释:后端服务器组ID。 |
project_id |
是 |
String |
参数解释:项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
参数解释:IAM鉴权Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
member |
是 |
CreateMemberOption object |
参数解释:后端服务器对象。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
address |
是 |
String |
参数解释:后端服务器对应的IP地址。 约束限制:
|
admin_state_up |
否 |
Boolean |
参数解释:后端服务器的管理状态。 约束限制:虽然创建、更新请求支持该字段,但实际取值决定于后端服务器对应的弹性云服务器是否存在。若存在,该值为true,否则,该值为false。 取值范围:true、false。 |
name |
否 |
String |
参数解释:后端服务器名称。注意:该名称并非ECS名称,若不传则返回为空。 |
project_id |
否 |
String |
参数解释:后端服务器所在的项目ID。 |
protocol_port |
否 |
Integer |
参数解释:后端服务器业务端口。 约束限制:
|
subnet_cidr_id |
否 |
String |
参数解释:后端服务器所在的子网,可以是IPv4或IPv6子网。若是IPv4子网,使用对应子网的子网ID(neutron_subnet_id);若是IPv6子网,使用对应子网的网络ID(neutron_network_id)。 ipv4子网的子网ID可以通过GET https://{VPC_Endpoint}/v1/{project_id}/subnets 响应参数中的neutron_subnet_id得到 ipv6子网的网络ID可以通过GET https://{VPC_Endpoint}/v1/{project_id}/subnets 响应参数中的neutron_network_id得到 约束限制:
|
weight |
否 |
Integer |
参数解释:后端服务器的权重,请求将根据pool配置的负载均衡算法和后端服务器的权重进行负载分发。 权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 约束限制:若所在pool的lb_algorithm取值为SOURCE_IP或QUIC_CID,该字段无效。 取值范围:0-100,默认1。 |
响应参数
状态码:201
参数 |
参数类型 |
描述 |
---|---|---|
request_id |
String |
参数解释:请求ID。 注:自动生成 。 |
member |
Member object |
参数解释:后端服务器对象。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
参数解释:后端服务器ID。 说明: 此处并非ECS服务器的ID,而是ELB为绑定的后端服务器自动生成的member ID。 |
name |
String |
参数解释:后端服务器名称。 注意:该名称并非ECS名称。 |
project_id |
String |
参数解释:后端服务器所在的项目ID。 |
admin_state_up |
Boolean |
参数解释:后端服务器的管理状态。 约束限制:虽然创建、更新请求支持该字段,但实际取值决定于后端服务器对应的弹性云服务器是否存在。若存在,该值为true,否则,该值为false。 取值范围:true、false。 |
subnet_cidr_id |
String |
参数解释:后端服务器所在的子网,可以是IPv4或IPv6子网。若是IPv4子网,使用对应子网的子网ID(neutron_subnet_id);若是IPv6子网,使用对应子网的网络ID(neutron_network_id)。 ipv4子网的子网ID可以通过GET https://{VPC_Endpoint}/v1/{project_id}/subnets 响应参数中的neutron_subnet_id得到 ipv6子网的网络ID可以通过GET https://{VPC_Endpoint}/v1/{project_id}/subnets 响应参数中的neutron_network_id得到 约束限制:
|
protocol_port |
Integer |
参数解释:后端服务器业务端口。 在开启端口透传的pool下创建member传该字段不生效,可不传该字段。 |
weight |
Integer |
参数解释:后端服务器的权重,请求将根据pool配置的负载均衡算法和后端服务器的权重进行负载分发。 权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 约束限制:若所在pool的lb_algorithm取值为SOURCE_IP或QUIC_CID,该字段无效。 取值范围:0-100 默认取值:1。 |
address |
String |
参数解释:后端服务器对应的IP地址。 约束限制:
|
ip_version |
String |
参数解释:当前后端服务器的IP地址版本,由后端系统自动根据传入的address字段确定。 取值范围:v4、v6。 |
operating_status |
String |
参数解释:后端服务器的健康状态。当status非空时,以status字段中监听器粒度的健康检查状态优先。 取值范围:
|
status |
Array of MemberStatus objects |
参数解释:后端服务器监听器粒度的的健康状态。 约束限制:
|
reason |
健康检查异常的原因。 |
|
created_at |
String |
参数解释:创建时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 |
updated_at |
String |
参数解释:更新时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 |
member_type |
String |
参数解释:后端服务器的类型。 取值范围:
|
instance_id |
String |
参数解释:member关联的实例ID。空表示member关联的实例为非真实设备 (如:跨VPC场景) |
参数 |
参数类型 |
描述 |
---|---|---|
listener_id |
String |
参数解释:监听器ID |
operating_status |
String |
参数解释:后端服务器的健康状态。 取值范围:
|
reason |
健康检查异常的原因。 |
参数 |
参数类型 |
描述 |
---|---|---|
reason_code |
String |
参数解释:健康检查异常原因码。 取值范围:
|
expected_response |
String |
参数解释:健康检查预期响应状态码。 支持HTTP,HTTPS,GRPC健康检查。 只有reason_code为RESPONSE_MISMATCH时,支持非null取值。 取值范围:
|
healthcheck_response |
String |
参数解释:健康检查探测实际响应状态码。 支持HTTP,HTTPS,GRPC健康检查。 只有reason_code为RESPONSE_MISMATCH时,支持非null取值。 取值范围:
|
请求示例
-
示例1:创建后端服务器
POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/pools/36ce7086-a496-4666-9064-5ba0e6840c75/members { "member" : { "subnet_cidr_id" : "c09f620e-3492-4429-ac15-445d5dd9ca74", "protocol_port" : 89, "name" : "My member", "address" : "120.10.10.16" } }
-
示例2:创建开启跨VPC的后端服务器
POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/pools/36ce7086-a496-4666-9064-5ba0e6840c75/members { "member" : { "protocol_port" : 89, "name" : "My member", "address" : "120.10.10.16" } }
响应示例
状态码:201
POST操作正常返回。
{ "member" : { "name" : "My member", "weight" : 1, "admin_state_up" : false, "subnet_cidr_id" : "c09f620e-3492-4429-ac15-445d5dd9ca74", "project_id" : "99a3fff0d03c428eac3678da6a7d0f24", "address" : "120.10.10.16", "protocol_port" : 89, "id" : "1923923e-fe8a-484f-bdbc-e11559b1f48f", "operating_status" : "NO_MONITOR", "status" : [ { "listener_id" : "427eee03-b569-4d6c-b1f1-712032f7ec2d", "operating_status" : "NO_MONITOR" } ], "ip_version" : "v4" }, "request_id" : "f354090d-41db-41e0-89c6-7a943ec50792" }
状态码
状态码 |
描述 |
---|---|
201 |
POST操作正常返回。 |
错误码
请参见错误码。