华为云用户手册

  • URI GET /v2/{project_id}/elb/pools/{pool_id}/members/{member_id} 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 操作用户的项目ID。 获取方法详见获取项目ID。 pool_id 是 String 后端云服务器组id。 member_id 是 String 后端云服务器id。 说明: 此处并非服务器的ID,而是ELB添加后端服服务器之后自动生成的member ID。 memberID可以通过查询后端云服务器列表接口获取。
  • 响应消息 表2 响应参数 参数 参数类型 描述 member Member object member对象。详见表3。 表3 member字段说明 参数 参数类型 描述 id String 后端云服务器的 ID。 说明: 此处并非服务器的ID,而是ELB添加后端服务器之后自动生成的member ID。 tenant_id String 后端云服务器所在的项目ID。 支持的最大字符长度:255 project_id String 此参数和tenant_id参数含义一样,均指后端云服务器所在的项目ID。 name String 后端云服务器的名称。 支持的最大字符长度:255 address String 后端云服务器对应的IP地址,该IP必须在subnet_id字段指定子网的网段中,例如192.168.3.11。 只能对应主网卡的IP。 支持的最大字符长度:64 protocol_port Integer 后端端口的协议号,取值范围[1,65535]。 subnet_id String 后端云服务器所在的子网ID。后端云服务器的IP地址在该子网的网段中。 不支持开启了ipv6的子网。 admin_state_up Boolean 后端云服务器的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。 true表示开启。 false表示关闭。 weight Integer 后端云服务器的权重,取值范围[0,100]。 权重为0的后端不再接受新的请求。默认为1。 operating_status String 后端云服务器的健康状态,取值: ONLINE,后端服务器正常运行。 NO_MONITOR,后端服务器无健康检查。 OFFLINE,已下线。
  • 请求示例 请求样例1 查询后端云服务器详情 GET https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/pools/5a9a3e9e-d1aa-448e-af37-a70171f2a332/members/cf024846-7516-4e3a-b0fb-6590322c836f 请求样例2:查询负载均衡器关联的弹性公网IP(EIP) 详细操作请参考查询弹性公网IP列表。 请求样例 GET https://{EIP_Endpoint}/v1/{project_id}/publicips?port_id={vip_port_id} 其中vip_port_id参数为弹性负载均衡的vip_port_id属性的值。
  • 响应示例 响应样例 1 { "member": { "name": "", "weight": 1, "admin_state_up": true, "subnet_id": "823d5866-6e30-45c2-9b1a-a1ebc3757fdb", "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "address": "192.172.3.100", "protocol_port": 8080, "operating_status": "ONLINE", "id": "e58f5bfa-0e46-4bc5-951c-8473d3e5f24a" } } 响应样例2 { "publicips": [ { "id": "6285e7be-fd9f-497c-bc2d-dd0bdea6efe0", "status": "DOWN", "profile": { "user_id": "35f2b308f5d64441a6fa7999fbcd4321", "product_id": "00301-48027-0--0", "region_id": "xxx", "order_id": "xxxxxxxxx" }, "type": "5_bgp", "public_ip_address": "161.xx.xx.9", "private_ip_address": "192.168.2.4", "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c", "create_time": "2015-07-16 04:22:32", "bandwidth_id": "3fa5b383-5a73-4dcb-a314-c6128546d855", "bandwidth_share_type": "PER", "bandwidth_size": 5, "bandwidth_name": "bandwidth-test", "enterprise_project_id":"b261ac1f-2489-4bc7-b31b-c33c3346a439", "ip_version": 4, "port_id": "c7157e7a-036a-42ca-8474-100be22e3727" } ] } 其中public_ip_address就是弹性负载均衡绑定的弹性公网IP地址。
  • 操作步骤 查询VPC子网信息。 发送“GET https://{vpc_endpoint}/v1/{project_id}/subnets”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 查看请求响应结果。 请求成功时,响应参数如下: { "subnets": [ { "id": "0535759e-8104-49d9-902c-a05185a94bdf", // 子网 ID "name": "subnet-001", // 子网名称 "description": "", "cidr": "172.16.66.0/24", // ipv4网段 "dnsList": [ "100.125.4.6" ], "status": "ACTIVE", "vpc_id": "44789a9f-3e80-451a-ac03-0818f99b6cdd", // 所属vpc ID "ipv6_enable": true, "gateway_ip_v6": "2001:db8:a583:37c::1", "cidr_v6": "2001:db8:a583:37c::/64", "gateway_ip": "172.16.66.1", "dhcp_enable": true, "primary_dns": "100.125.4.6", "availability_zone": "eu-de-01", // 所属可用区 "neutron_network_id": "0535759e-8104-49d9-902c-a05185a94bdf", // 网络ID "neutron_subnet_id": "1492f0ba-cfce-4e2c-86f7-561d757dfeee", // IPv4子网ID "neutron_subnet_id_v6": "3c052475-b50b-49b9-abb1-558bad45e592", "extra_dhcp_opts": [ { "opt_value": "8760h", "opt_name": "addresstime" } ] } ] } 请求异常时,错误码请参见 错误码。 创建弹性负载均衡,同时新建相关联的EIP 发送“POST https://{elb_endpoint}/v3/{project_id}/elb/loadbalancers”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数(包括新建EIP的参数 publicip)如下: { "loadbalancer": { "vpc_id": "e5a892ff-3c33-44ef-ada5-b713eb1f7a8b", "availability_zone_list": [ "br-iaas-odin1a" ], "admin_state_up": true, "vip_subnet_cidr_id": "1800b6b8-a69f-4719-813d-24d62aaf32bd", "name": "elb-ipv4", "publicip": { "network_type": "5_bgp", "bandwidth": { "size": 2, "share_type": "PER", "charge_mode": "bandwidth", "name": "elb_eip_bandwidth" } } } } 查看请求响应结果。 请求成功时,响应参数如下: { "request_id": "21177eb184c52c5a4540c78dc7fdaee4", "loadbalancer": { "id": "a2556f92-3310-4173-a6d1-0b2d0bb68478", "project_id": "060576782980d5762f9ec014dd2f1148", "name": "elb-ipv4", "description": "", "vip_port_id": "fff961a9-4514-4469-84d4-a2bc4fbdfbeb", "vip_address": "192.168.0.162", "admin_state_up": true, "provisioning_status": "ACTIVE", "operating_status": "ONLINE", "listeners": [], "pools": [], "tags": [], "provider": "vlb", "created_at": "2021-02-23T08:50:19Z", "updated_at": "2021-02-23T08:50:19Z", "vpc_id": "e5a892ff-3c33-44ef-ada5-b713eb1f7a8b", "enterprise_project_id": "0", "availability_zone_list": [ "br-iaas-odin1a" ], "ipv6_vip_address": null, "ipv6_vip_virsubnet_id": null, "ipv6_vip_port_id": null, "ipv6_bandwidth": null, "publicips": [ { "publicip_id": "12cba100-764e-476c-bf3f-8aba98782cf5", "publicip_address": "10.246.173.188", "ip_version": 4 } ], "elb_virsubnet_ids": [ "4df3e391-5ebf-4300-b614-cf5a4e793666" ], "elb_virsubnet_type": "dualstack", "ip_target_enable": false, "frozen_scene": null, "eips": [ { "eip_id": "12cba100-764e-476c-bf3f-8aba98782cf5", "eip_address": "10.246.173.188", "ip_version": 4 } ], "guaranteed": true, "billing_info": null, "l4_flavor_id": null, "l4_scale_flavor_id": null, "l7_flavor_id": null, "l7_scale_flavor_id": null, "vip_subnet_cidr_id": "1800b6b8-a69f-4719-813d-24d62aaf32bd" } } 请求异常时,错误码请参见 错误码。
  • 具体步骤 设置请求消息头。在Postman中设置好头部信息,将获取到的Token放入头部,如下图所示。 图1 设置请求消息头-创建后端云服务器组 在Body标签中填写请求消息体。 图2 填写请求消息体-创建后端云服务器组 填写URL。 https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools 发送请求。选择请求方法为POST,点击Send按钮,得到服务端响应: { "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "abe3ee34-1882-408f-a2ba-1ce7e428d6e3" } ], "tenant_id": "0d0bf0e8fb564cc9abbe526dbdca9248", "session_persistence": null, "healthmonitor_id": null, "listeners": [ { "id": "ecb4d58e-3b09-4a9d-9ad2-159b21e13f83" } ], "members": [], "id": "752c3773-a046-4966-a5d6-0ad7f9a49d0a", "name": "" } }
  • URI GET /v3/{project_id}/elb/l7policies 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 marker 否 String 上一页最后一条记录的ID。 使用说明: 必须与limit一起使用。 不指定时表示查询第一页。 该字段不允许为空或无效的ID。 limit 否 Integer 每页返回的个数。 最小值:0 最大值:2000 缺省值:2000 page_reverse 否 Boolean 是否反向查询。 取值: true:查询上一页。 false:查询下一页,默认。 使用说明: 必须与limit一起使用。 当page_reverse=true时,若要查询上一页,marker取值为当前页返回值的previous_marker。 enterprise_project_id 否 Array 企业项目ID。不传时查询default企业项目"0"下的资源,鉴权按照default企业项目鉴权; 如果传值,则传已存在的企业项目ID或all_granted_eps(表示查询所有企业项目)进行查询。 支持多值查询,查询条件格式: enterprise_project_id=xxx&enterprise_project_id=xxx。 id 否 Array 转发策略ID。 支持多值查询,查询条件格式:id=xxx&id=xxx。 name 否 Array 转发策略名称。 支持多值查询,查询条件格式:name=xxx&name=xxx。 description 否 Array 转发策略额描述信息。 支持多值查询,查询条件格式:description=xxx&description=xxx。 admin_state_up 否 Boolean 转发策略的管理状态,默认为true。 不支持该字段,请勿使用。 listener_id 否 Array 转发策略所属的监听器ID。 支持多值查询,查询条件格式:listener_id=xxx&listener_id=xxx。 position 否 Array 转发策略的优先级。 支持多值查询,查询条件格式:position=xxx&position=xxx。 不支持该字段,请勿使用。 action 否 Array 转发策略的转发动作。 取值: REDIRECT_TO_POOL:转发到后端云服务器组。 REDIRECT_TO_LISTENER:重定向到监听器。 REDIRECT_TO_URL:重定向到URL。 FIXED_RESPONSE:返回固定响应体。 支持多值查询,查询条件格式:action=xxx&action=xxx。 redirect_url 否 Array 转发到的url。必须满足格式: protocol://host:port/path?query。 支持多值查询,查询条件格式:redirect_url=xxx&redirect_url=xxx。 不支持该字段,请勿使用。 redirect_pool_id 否 Array 转发到pool的ID。 支持多值查询,查询条件格式:redirect_pool_id=xxx&redirect_pool_id=xxx。 redirect_listener_id 否 Array 转发到的listener的ID。 支持多值查询,查询条件格式:redirect_listener_id=xxx&redirect_listener_id=xxx。 provisioning_status 否 Array 转发策略的配置状态。 取值范围: ACTIVE: 默认值,表示正常。 ERROR: 表示当前策略与同一监听器下的其他策略存在相同的规则配置。 支持多值查询,查询条件格式:provisioning_status=xxx&provisioning_status=xxx。 display_all_rules 否 Boolean 是否显示转发策略下的rule详细信息。 取值: true:显示policy下面的rule的详细信息。 false:只显示policy下面的rule的id信息 priority 否 Array 转发策略的优先级。数值越小,优先级越高。 支持多值查询,查询条件格式:priority=xxx&priority=xxx。
  • 响应示例 状态码: 200 操作正常返回。 { "request_id" : "d3c67339-be91-4813-bb24-85728a5d326a", "l7policies" : [ { "redirect_pool_id" : "768e9e8c-e7cb-4fef-b24b-af9399dbb240", "description" : "", "admin_state_up" : true, "rules" : [ { "id" : "c5c2d625-676b-431e-a4c7-c59cc2664881" } ], "project_id" : "7a9941d34fc1497d8d0797429ecfd354", "listener_id" : "cdb03a19-16b7-4e6b-bfec-047aeec74f56", "redirect_url" : null, "redirect_url_config" : null, "fixed_response_config" : null, "redirect_listener_id" : null, "action" : "REDIRECT_TO_POOL", "position" : 100, "priority" : null, "provisioning_status" : "ACTIVE", "id" : "01832d99-bbd8-4340-9d0c-6ff8f7a37307", "name" : "l7policy-67" }, { "redirect_pool_id" : null, "description" : "", "admin_state_up" : true, "rules" : [ { "id" : "390f3a9f-670d-4ca6-b72c-6be8a48a8a00" } ], "project_id" : "7a9941d34fc1497d8d0797429ecfd354", "listener_id" : "bd782cbf-fb5e-411a-9295-530bdec05058", "redirect_url" : null, "redirect_url_config" : null, "fixed_response_config" : { "content_type" : "text/plain", "message_body" : "", "status_code" : "207" }, "redirect_listener_id" : null, "action" : "FIXED_RESPONSE", "position" : 6, "priority" : 2, "provisioning_status" : "ACTIVE", "id" : "049a8635-9754-444e-94aa-678993b39cd6", "name" : "l7policy-67" } ], "page_info" : { "next_marker" : "2587d8b1-9e8d-459c-9081-7bccaa075d2b", "previous_marker" : "01832d99-bbd8-4340-9d0c-6ff8f7a37307", "current_count" : 2 } }
  • 响应示例 状态码: 200 操作正常返回。 { "listener" : { "id" : "0b11747a-b139-492f-9692-2df0b1c87193", "name" : "My listener", "protocol_port" : 80, "protocol" : "TCP", "description" : "My listener update.", "default_tls_container_ref" : null, "admin_state_up" : true, "loadbalancers" : [ { "id" : "098b2f68-af1c-41a9-8efd-69958722af62" } ], "member_timeout" : null, "client_timeout" : null, "keepalive_timeout" : 300, "client_ca_tls_container_ref" : null, "project_id" : "99a3fff0d03c428eac3678da6a7d0f24", "sni_container_refs" : [ ], "connection_limit" : -1, "default_pool_id" : null, "tls_ciphers_policy" : "tls-1-0", "tags" : [ ], "created_at" : "2019-04-02T00:12:32Z", "updated_at" : "2019-04-02T17:43:46Z", "http2_enable" : true, "ipgroup" : null, "insert_headers" : { "X-Forwarded-ELB-IP" : true }, "transparent_client_ip_enable" : false }, "request_id" : "5d56d89a-2271-4a75-8c02-804e3bc7b671" }
  • 请求示例 更新监听器的名称和描述,并开启监听器的HTTP2功能 PUT https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/listeners/0b11747a-b139-492f-9692-2df0b1c87193 { "listener" : { "description" : "My listener update.", "name" : "My listener", "http2_enable" : true } }
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 注:自动生成 。 listener Listener object 监听器信息。 表9 Listener 参数 参数类型 描述 admin_state_up Boolean 监听器的管理状态。只能设置为true。 不支持该字段,请勿使用。 client_ca_tls_container_ref String 监听器使用的CA证书ID。当且仅当type=client时,才会使用该字段对应的证书。 connection_limit Integer 监听器的最大连接数。 取值:-1表示不限制,默认为-1。 不支持该字段,请勿使用。 created_at String 监听器的创建时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',如:2021-07-30T12:03:44Z default_pool_id String 监听器的默认后端云服务器组ID。当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。 default_tls_container_ref String 监听器使用的服务器证书ID。 description String 监听器的描述信息。 http2_enable Boolean 客户端与LB之间的HTTPS请求的HTTP2功能的开启状态。 开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。 使用说明: 仅HTTPS协议监听器有效。 QUIC监听器不能设置该字段,固定返回为true。 其他协议的监听器可设置该字段但无效,无论取值如何都不影响监听器正常运行。 id String 监听器ID。 insert_headers ListenerInsertHeaders object 可选的HTTP头插入,可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器使。例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。 loadbalancers Array of LoadBalancerRef objects 监听器所属的负载均衡器的ID列表。一个监听器只支持关联到一个LB。 name String 监听器的名称。 注意:若名称为空,则在控制台的监听器列表无法选择并查看监听器详情。 project_id String 监听器所在的项目ID。 protocol String 监听器的监听协议。 取值:TCP、UDP、HTTP、HTTPS、TERMINATED_HTTPS、QUIC、TCPSSL。 使用说明: 共享型LB上的HTTPS监听器只支持设置为TERMINATED_HTTPS, 创建时传入HTTPS将会自动转为TERMINATED_HTTPS。 独享型LB上的HTTPS监听器只支持设置为HTTPS,创建时传入TERMINATED_HTTPS将会自动转为HTTPS。 protocol_port Integer 监听器的监听端口。QUIC监听器端口不能是4789,且不能和UDP监听器端口重复。传0时表示开启监听端口范围的能力,此时port_ranges为必填字段。 最小值:0 最大值:65535 sni_container_refs Array of strings 监听器使用的SNI证书(带域名的服务器证书)ID列表。 使用说明: 列表对应的所有SNI证书的域名不允许存在重复。 列表对应的所有SNI证书的域名总数不超过50。 sni_match_algo String 监听器使用的SNI证书泛域名匹配方式。 longest_suffix表示最长尾缀匹配,wildcard表示标准域名分级匹配。 默认为wildcard。 tags Array of Tag objects 标签列表。 updated_at String 监听器的更新时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',如:2021-07-30T12:03:44Z tls_ciphers_policy String 监听器使用的安全策略。 取值:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2,tls-1-2-strict,tls-1-2-fs,tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0,默认:tls-1-0。 使用说明: 仅对HTTPS协议类型的监听器且关联LB为独享型时有效。 QUIC监听器不支持该字段。 若同时设置了security_policy_id和tls_ciphers_policy,则仅security_policy_id生效。 加密套件的优先顺序为ecc套件、rsa套件、tls1.3协议的套件(即支持ecc又支持rsa) security_policy_id String 自定义安全策略的ID。 使用说明: 仅对HTTPS协议类型的监听器且关联LB为独享型时有效。 若同时设置了security_policy_id和tls_ciphers_policy,则仅security_policy_id生效。 加密套件的优先顺序为ecc套件、rsa套件、tls1.3协议的套件(即支持ecc又支持rsa) enable_member_retry Boolean 是否开启后端服务器的重试。 取值:true 开启重试,false 不开启重试。默认:true。 使用说明: 若关联是共享型LB,仅在protocol为HTTP、TERMINATED_HTTPS时才能传入该字段。 若关联是独享型LB,仅在protocol为HTTP、HTTPS和QUIC时才能传入该字段。 keepalive_timeout Integer 客户端连接空闲超时时间。在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。 取值: 若为TCP监听器,取值范围为(10-4000s)默认值为300s。 若为HTTP/HTTPS/TERMINATED_HTTPS监听器,取值范围为(0-4000s)默认值为60s。 UDP监听器不支持此字段。 client_timeout Integer 等待客户端请求超时时间,包括两种情况: 读取整个客户端请求头的超时时长:如果客户端未在超时时长内发送完整个请求头,则请求将被中断 两个连续body体的数据包到达LB的时间间隔,超出client_timeout将会断开连接。 取值范围为1-300s,默认值为60s。 使用说明:仅协议为HTTP/HTTPS的监听器支持该字段。 member_timeout Integer 等待后端服务器响应超时时间。请求转发后端服务器后,在等待超时member_timeout时长没有响应,负载均衡将终止等待,并返回 HTTP504错误码。 取值:1-300s,默认为60s。 使用说明:仅支持协议为HTTP/HTTPS的监听器。 ipgroup ListenerIpGroup object listener对象中的ipgroup信息 transparent_client_ip_enable Boolean 是否透传客户端IP地址。开启后客户端IP地址将透传到后端服务器。 仅作用于共享型LB的TCP/UDP监听器。 取值: 共享型LB的TCP/UDP监听器可设置为true或false,不传默认为false。 共享型LB的HTTP/HTTPS监听器只支持设置为true,不传默认为true。 独享型负载均衡器所有协议的监听器只支持设置为true,不传默认为true。 使用说明: 开启特性后,ELB和后端服务器之间直接使用真实的IP访问,需要确保已正确设置服务器的安全组以及访问控制策略。 开启特性后,不支持同一台服务器既作为后端服务器又作为客户端的场景。 开启特性后,不支持变更后端服务器规格。 proxy_protocol_enable Boolean 是否开启proxy_protocol。仅tcpssl监听器可指定,其他协议的监听器该字段不生效,proxy_protocol不开启。 enhance_l7policy_enable Boolean 是否开启高级转发策略功能。开启高级转发策略后,支持更灵活的转发策略和转发规则设置。 取值:true开启,false不开启,默认false。 开启后支持如下场景: 转发策略的action字段支持指定为REDIRECT_TO_URL, FIXED_RESPONSE,即支持URL重定向和响应固定的内容给客户端。 转发策略支持指定priority、redirect_url_config、fixed_response_config字段。 转发规则rule的type可以指定METHOD, HEADER, QUERY_STRING, SOURCE_IP这几种取值。 转发规则rule的type为HOST_NAME时,转发规则rule的value支持通配符*。 转发规则支持指定conditions字段。 缺省值:false quic_config ListenerQuicConfig object 当前监听器关联的QUIC监听器配置信息,仅protocol为HTTPS时有效。 对于TCP/UDP/HTTP/QUIC监听器,若该字段非空则报错。 说明: 客户端向服务端发送正常的HTTP协议请求并携带了支持QUIC协议的信息。 如果服务端监听器开启了升级QUIC,那么就会在响应头中加入服务端支持的QUIC端口和版本信息。 客户端再次请求时会同时发送TCP(HTTPS)和UDP(QUIC)请求,若QUIC请求成功,则后续继续使用QUIC交互。 protection_status String 修改保护状态, 取值: nonProtection: 不保护,默认值为nonProtection consoleProtection: 控制台修改保护 protection_reason String 设置保护的原因 说明: 仅当protection_status为consoleProtection时有效。 最小长度:0 最大长度:255 gzip_enable Boolean ELB是否开启gzip压缩,缺省值:false,非必选 仅HTTP/HTTPS/QUIC类型监听器支持配置。 port_ranges Array of PortRange objects 端口监听范围(闭区间),最多指定10个端口组,每个组范围不可有重叠部分 说明: 仅当protocol_port为0时可以传入。 ssl_early_data_enable Boolean 监听器0-RTT能力开关,缺省值:false,非必选 仅HTTPS类型监听器支持配置,需要依赖TLSv1.3安全策略协议。 表10 ListenerInsertHeaders 参数 参数类型 描述 X-Forwarded-ELB-IP Boolean X-Forwarded-ELB-IP设为true可以将ELB实例的eip地址从报文的http头中带到后端云服务器。 X-Forwarded-Port Boolean X-Forwarded-Port设为true可以将ELB实例的监听端口从报文的http头中带到后端云服务器。 X-Forwarded-For-Port Boolean X-Forwarded-For-Port设为true可以将客户端的源端口从报文的http头中带到后端云服务器。 X-Forwarded-Host Boolean X-Forwarded-Host设为true可以将客户请求头的X-Forwarded-Host设置为请求头的Host带到后端云服务器。 X-Forwarded-Proto Boolean X-Forwarded-Proto设为true可以将负载均衡器实例的监听协议通过报文的http头带到后端云服务器。 X-Real-IP Boolean X-Real-IP设为true可以将客户端的IP通过报文的http头带到后端云服务器。 X-Forwarded-ELB-ID Boolean X-Forwarded-ELB-ID设为true可以将负载均衡器实例的ID通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Certificate-ID Boolean X-Forwarded-TLS-Certificate-ID设为true可以将负载均衡器实例的证书ID通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Protocol Boolean X-Forwarded-TLS-Protocol设为true可以将负载均衡器实例的算法协议通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Cipher Boolean X-Forwarded-TLS-Cipher设为true可以将负载均衡器实例的算法套件通过报文的http头带到后端云服务器。 表11 LoadBalancerRef 参数 参数类型 描述 id String 负载均衡器ID。 表12 Tag 参数 参数类型 描述 key String 标签键 最小长度:1 最大长度:36 value String 标签值 最小长度:0 最大长度:43 表13 ListenerIpGroup 参数 参数类型 描述 ipgroup_id String 监听器关联的访问控制组的id。 创建时必选,更新时非必选。 指定的ipgroup必须已存在,不能指定为null,否则与enable_ipgroup冲突。 enable_ipgroup Boolean 访问控制组的状态。 True:开启访问控制; Flase:关闭访问控制; 开启访问控制的监听器,允许直接删除。 type String 访问控制组的类型。 white:白名单,只允许指定ip访问; black:黑名单,不允许指定ip访问; 表14 ListenerQuicConfig 参数 参数类型 描述 quic_listener_id String 监听器关联的QUIC监听器ID。 创建时必选,更新时非必选。 指定的listener id必须已存在,且协议类型为QUIC,不能指定为null,否则与enable_quic_upgrade冲突。 enable_quic_upgrade Boolean QUIC升级的开启状态。 True:开启QUIC升级; Flase:关闭QUIC升级; 开启HTTPS监听器升级QUIC监听器能力 表15 PortRange 参数 参数类型 描述 start_port Integer 起始端口 最小值:1 最大值:65535 end_port Integer 结束端口,需大于等于起始端口 最小值:1 最大值:65535
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM鉴权Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 listener 是 UpdateListenerOption object 更新监听器请求参数 表4 UpdateListenerOption 参数 是否必选 参数类型 描述 admin_state_up 否 Boolean 监听器的管理状态。只能设置为true。 不支持该字段,请勿使用。 client_ca_tls_container_ref 否 String 监听器使用的CA证书ID。当且仅当type=client时,才会使用该字段对应的证书。 监听器协议为QUIC时不支持该字段。 default_pool_id 否 String 监听器的默认后端云服务器组ID。当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。 最小长度:1 最大长度:36 default_tls_container_ref 否 String 监听器使用的服务器证书ID。 使用说明:当监听器协议为HTTPS时,该字段必传,且对应的证书的type必须是server类型。 description 否 String 监听器的描述信息。 最小长度:0 最大长度:255 http2_enable 否 Boolean 客户端与LB之间的HTTPS请求的HTTP2功能的开启状态。 开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。 使用说明: 仅HTTPS协议监听器有效。 QUIC监听器不能设置该字段,固定返回为true。 其他协议的监听器可设置该字段但无效,无论取值如何都不影响监听器正常运行。 insert_headers 否 ListenerInsertHeaders object 可选的HTTP头插入,可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器使。例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。 name 否 String 监听器的名称。 注意:若名称为空,则在控制台的监听器列表无法选择并查看监听器详情。 最小长度:0 最大长度:255 sni_container_refs 否 Array of strings 监听器使用的SNI证书(带域名的服务器证书)ID列表。 使用说明: 列表对应的所有SNI证书的域名不允许存在重复。 列表对应的所有SNI证书的域名总数不超过50。 sni_match_algo 否 String 监听器使用的SNI证书泛域名匹配方式。 longest_suffix表示最长尾缀匹配,wildcard表示标准域名分级匹配。 默认为wildcard。 tls_ciphers_policy 否 String 监听器使用的安全策略。 取值:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2,tls-1-2-strict,tls-1-2-fs,tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0,默认:tls-1-0。 使用说明: 仅对HTTPS协议类型的监听器且关联LB为独享型时有效。 QUIC监听器不支持该字段。 若同时设置了security_policy_id和tls_ciphers_policy,则仅security_policy_id生效。 加密套件的优先顺序为ecc套件、rsa套件、tls1.3协议的套件(即支持ecc又支持rsa) security_policy_id 否 String 自定义安全策略的ID。 使用说明: 仅对HTTPS协议类型的监听器且关联LB为独享型时有效。 若同时设置了security_policy_id和tls_ciphers_policy,则仅security_policy_id生效。 加密套件的优先顺序为ecc套件、rsa套件、tls1.3协议的套件(即支持ecc又支持rsa) 最小长度:1 最大长度:36 enable_member_retry 否 Boolean 是否开启后端服务器的重试。 取值:true 开启重试,false 不开启重试。默认:true。 使用说明: 若关联是共享型LB,仅在protocol为HTTP、TERMINATED_HTTPS时才能传入该字段。 若关联是独享型LB,仅在protocol为HTTP、HTTPS和QUIC时才能传入该字段。 member_timeout 否 Integer 等待后端服务器响应超时时间。请求转发后端服务器后,在等待超时member_timeout时长没有响应,负载均衡将终止等待,并返回 HTTP504错误码。 取值:1-300s。 使用说明:仅支持协议为HTTP/HTTPS的监听器。 最小值:1 最大值:300 client_timeout 否 Integer 等待客户端请求超时时间,仅限协议为HTTP,HTTPS的监听器配置。取值范围为1-300s, 默认值为60s TCP,UDP协议的监听器不支持此字段 最小值:1 最大值:300 keepalive_timeout 否 Integer 客户端连接空闲超时时间。在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。 取值: 若为TCP监听器,取值范围为(10-4000s)默认值为300s。 若为HTTP/HTTPS/TERMINATED_HTTPS监听器,取值范围为(0-4000s)默认值为60s。 UDP监听器不支持此字段。 ipgroup 否 UpdateListenerIpGroupOption object listener对象中的ipgroup信息 transparent_client_ip_enable 否 Boolean 是否透传客户端IP地址。开启后客户端IP地址将透传到后端服务器。 仅作用于共享型LB的TCP/UDP监听器。 取值: 共享型LB的TCP/UDP监听器可设置为true或false,不传默认为false。 共享型LB的HTTP/HTTPS监听器只支持设置为true,不传默认为true。 独享型负载均衡器所有协议的监听器只支持设置为true,不传默认为true。 使用说明: 开启特性后,ELB和后端服务器之间直接使用真实的IP访问,需要确保已正确设置服务器的安全组以及访问控制策略。 开启特性后,不支持同一台服务器既作为后端服务器又作为客户端的场景。 开启特性后,不支持变更后端服务器规格。 proxy_protocol_enable 否 Boolean 是否开启proxy_protocol。仅tcpssl监听器可指定,其他协议的监听器该字段不生效,proxy_protocol不开启。 enhance_l7policy_enable 否 Boolean 是否开启高级转发策略功能。开启高级转发策略后,支持更灵活的转发策略和转发规则设置。 取值:true开启,false不开启。 开启后支持如下场景: 转发策略的action字段支持指定为REDIRECT_TO_URL, FIXED_RESPONSE,即支持URL重定向和响应固定的内容给客户端。 转发策略支持指定priority、redirect_url_config、fixed_response_config字段。 转发规则rule的type可以指定METHOD, HEADER, QUERY_STRING, SOURCE_IP这几种取值。 转发规则rule的type为HOST_NAME时,转发规则rule的value支持通配符*。 转发规则支持指定conditions字段。 说明: 开启后不支持关闭 quic_config 否 UpdateListenerQuicConfigOption object 当前监听器关联的QUIC监听器配置信息,仅protocol为HTTPS时有效。 对于TCP/UDP/HTTP/QUIC监听器,若该字段非空则报错。 说明: 客户端向服务端发送正常的HTTP协议请求并携带了支持QUIC协议的信息。 如果服务端监听器开启了升级QUIC,那么就会在响应头中加入服务端支持的QUIC端口和版本信息。 客户端再次请求时会同时发送TCP(HTTPS)和UDP(QUIC)请求,若QUIC请求成功,则后续继续使用QUIC交互。 protection_status 否 String 修改保护状态, 取值: nonProtection: 不保护 consoleProtection: 控制台修改保护 protection_reason 否 String 设置保护的原因 说明: 仅当protection_status为consoleProtection时有效。 最小长度:0 最大长度:255 gzip_enable 否 Boolean ELB是否开启gzip压缩,缺省值:false,非必选 仅HTTP/HTTPS/QUIC类型监听器支持配置。 ssl_early_data_enable 否 Boolean 监听器0-RTT能力开关,缺省值:false,非必选 仅HTTPS类型监听器支持配置,需要依赖TLSv1.3安全策略协议。开启 ssl_early_data 后,有重放攻击的风险,请谨慎开启。 缺省值:false 表5 ListenerInsertHeaders 参数 是否必选 参数类型 描述 X-Forwarded-ELB-IP 否 Boolean X-Forwarded-ELB-IP设为true可以将ELB实例的eip地址从报文的http头中带到后端云服务器。 X-Forwarded-Port 否 Boolean X-Forwarded-Port设为true可以将ELB实例的监听端口从报文的http头中带到后端云服务器。 X-Forwarded-For-Port 否 Boolean X-Forwarded-For-Port设为true可以将客户端的源端口从报文的http头中带到后端云服务器。 X-Forwarded-Host 否 Boolean X-Forwarded-Host设为true可以将客户请求头的X-Forwarded-Host设置为请求头的Host带到后端云服务器。 X-Forwarded-Proto 否 Boolean X-Forwarded-Proto设为true可以将负载均衡器实例的监听协议通过报文的http头带到后端云服务器。 X-Real-IP 否 Boolean X-Real-IP设为true可以将客户端的IP通过报文的http头带到后端云服务器。 X-Forwarded-ELB-ID 否 Boolean X-Forwarded-ELB-ID设为true可以将负载均衡器实例的ID通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Certificate-ID 否 Boolean X-Forwarded-TLS-Certificate-ID设为true可以将负载均衡器实例的证书ID通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Protocol 否 Boolean X-Forwarded-TLS-Protocol设为true可以将负载均衡器实例的算法协议通过报文的http头带到后端云服务器。 X-Forwarded-TLS-Cipher 否 Boolean X-Forwarded-TLS-Cipher设为true可以将负载均衡器实例的算法套件通过报文的http头带到后端云服务器。 表6 UpdateListenerIpGroupOption 参数 是否必选 参数类型 描述 ipgroup_id 否 String 监听器关联的访问控制组的id。 创建时必选,更新时非必选。 指定的ipgroup必须已存在,不能指定为null,否则与enable_ipgroup冲突。 最小长度:1 最大长度:36 enable_ipgroup 否 Boolean 访问控制组的状态。 True:开启访问控制; Flase:关闭访问控制; 开启访问控制的监听器,允许直接删除。 type 否 String 访问控制组的类型。 white:白名单,只允许指定ip访问; black:黑名单,不允许指定ip访问; 表7 UpdateListenerQuicConfigOption 参数 是否必选 参数类型 描述 quic_listener_id 否 String 监听器关联的QUIC监听器ID。指定的listener id必须已存在,且协议类型为QUIC,不能指定为null,否则与enable_quic_upgrade冲突。 enable_quic_upgrade 否 Boolean QUIC升级的开启状态。 True:开启QUIC升级; Flase:关闭QUIC升级; 开启HTTPS监听器升级QUIC监听器能力
  • 请求示例 请求样例1 创建HTTP后端云服务器组 POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools { "pool": { "lb_algorithm":"ROUND_ROBIN", "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117", "protocol":"HTTP" } } 请求样例2 创建后端云服务器组,并开启APP_COOKIE类型的会话保持 POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/pools { "pool": { "lb_algorithm": "ROUND_ROBIN", "loadbalancer_id": "370fb112-e920-486a-b051-1d0d30704dd3", "protocol": "HTTP", "session_persistence": { "cookie_name": "my_cookie", "type": "APP_COOKIE", "persistence_timeout": 1 }, "admin_state_up": true } } 请求样例3 创建HTTP后端云服务器组,并开启HTTP_COOKIE类型的会话保持 POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools { "pool": { "lb_algorithm":"ROUND_ROBIN", "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117", "protocol":"HTTP", "session_persistence":{ "type":"HTTP_COOKIE" } } }
  • 响应示例 响应样例1 { "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "63ad9dfe-4750-479f-9630-ada43ccc8117" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "session_persistence": null, "healthmonitor_id": null, "listeners": [], "members": [], "id": "4e496951-befb-47bf-9573-c1cd11825c07", "name": "" } } 响应样例2 { "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "6b041b9e-976b-40ba-b075-375be6110b53" } ], "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "session_persistence": { "cookie_name": "my_cookie", "type": "APP_COOKIE", "persistence_timeout": 1 }, "healthmonitor_id": null, "listeners": [ { "id": "370fb112-e920-486a-b051-1d0d30704dd3" } ], "members": [], "id": "307f8968-9474-4d0c-8434-66be09dabcc1", "name": "" } } 响应样例3 { "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "63ad9dfe-4750-479f-9630-ada43ccc8117" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "session_persistence": { "persistence_timeout": 1440, "cookie_name": null, "type": "HTTP_COOKIE" }, "healthmonitor_id": null, "listeners": [], "members": [], "id": "d46eab56-d76b-4cd3-8952-3c3c4cf113aa", "name": "" } }
  • 响应消息 表5 响应参数 参数 参数类型 描述 pool Pool object 后端云服务器组对象。详见表6 pool字段说明 表6 pool字段说明 参数 参数类型 描述 id String 后端云服务器组 ID。 tenant_id String 后端云服务器组所属的项目 ID。 支持的最大字符长度:255 project_id String 此参数和tenant_id参数含义一样,均指后端云服务器组所属的项目 ID。 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。 表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时。
  • 请求消息 表2 请求参数 参数 是否必选 参数类型 描述 pool 是 Pool object 后端云服务器组对象。详见表3 表3 pool字段说明 参数 是否必选 参数类型 描述 tenant_id 否 String 后端云服务器组所属的项目 ID。 获取方法详见获取项目ID。 需要和token中的project_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字段无效。 admin_state_up 否 Boolean 后端云服务器组的管理状态。 该字段为预留字段,暂未启用。默认为true。 listener_id 否 String 后端云服务器组关联的监听器的ID。 listener_id和loadbalancer_id中至少指定一个。 loadbalancer_id 否 String 后端云服务器组关联的负载均衡器ID。 listener_id和loadbalancer_id中至少指定一个。 session_persistence 否 SessionPersistence object 会话持久性。详细参见表4。 取值为null时,表示会话保持关闭。 表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时。
  • 应用场景 应用转发策略并结合转发规则,可以实现将不同请求转发到特定后端云服务器(或云服务器组)的功能。 举例来说,云平台的某用户部署的若干服务器都向互联网提供服务。提供的资源主要有音乐类(/music/{music_id})、图片类(/pic/{pic_id})、文件类(/file/{file_id})。如果没有特定的转发策略,那么每台后端云服务器上都有所有资源的副本文件。但一个来自客户端的请求,永远只会被分发到一台后端云服务器,所以只会有一个副本被调用,用户在存储上的成本随着后端云服务器的增多而成倍增长。 ELB服务提供的转发策略和转发规则特性可以很好地解决这个问题,达到节约存储成本的目的,使客户获得更好的经济利益。
  • 具体步骤 由于对URI匹配,需要进行HTTP消息解析,所以创建的listener_1、pool_2和pool_3的监听协议都应该选择HTTP或HTTPS。 创建后端协议为HTTP的listener_1。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/listeners { "listener": { "protocol_port": "80", "protocol": "HTTP", "loadbalancer_id": "abe3ee34-1882-408f-a2ba-1ce7e428d6e3", "name": "listener_1", "admin_state_up": true } } 创建后端协议为HTTP的pool_1。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/ { "pool": { "name":"pool_1", "lb_algorithm": "ROUND_ROBIN", "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", "protocol": "HTTP", "admin_state_up": true } } 创建后端协议为HTTP的pool_2。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/ { "pool": { "name":"pool_2", "lb_algorithm": "ROUND_ROBIN", "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", "protocol": "HTTP", "admin_state_up": true } } 创建后端协议为HTTP的pool_3。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/ { "pool": { "name":"pool_3", "lb_algorithm": "ROUND_ROBIN", "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", "protocol": "HTTP", "admin_state_up": true } } 创建到pool_2的转发策略。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/l7policies { "l7policy": { "action": "REDIRECT_TO_POOL", "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", "redirect_pool_id": "b9a01911-8364-44d8-ab5a-4f635820edb2", "name": "l7policy_music", "admin_state_up": true } } 创建的到pool_3的转发策略。 POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/l7policies { "l7policy": { "action": "REDIRECT_TO_POOL", "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", "redirect_pool_id": "3a9b8338-3086-4acc-92e6-83c5e750e44a", "name": "l7policy_pic", "admin_state_up": true } } 查看创建的转发策略。此时的转发策略并不会匹配任何请求,因为没有具体的转发规则,需要结合转发规则来实现对不同URI请求的转发。
  • 响应示例 响应样例 { "healthmonitor": { "name": "", "admin_state_up": true, "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "domain_name": "www.test.com", "delay": 10, "max_retries": 10, "expected_codes": "200", "max_retries_down": 5, "http_method": "GET", "timeout": 10, "pools": [ { "id": "bb44bffb-05d9-412c-9d9c-b189d9e14193" } ], "url_path": "/", "type": "HTTP", "id": "2dca3867-98c5-4cde-8f2c-b89ae6bd7e36", "monitor_port": 112 } }
  • 请求示例 请求样例 创建健康检查 POST https://{Endpoint}/v2.0/lbaas/healthmonitors { "healthmonitor": { "admin_state_up": true, "pool_id": "bb44bffb-05d9-412c-9d9c-b189d9e14193", "domain_name": "www.test.com", "delay": 10, "max_retries": 10, "max_retries_down": 5, "timeout": 10, "type": "HTTP" } }
  • 请求消息 表1 请求参数 参数名称 是否必选 参数类型 描述 healthmonitor 是 Object 健康检查对象。详见表2。 表2 healthmonitor字段说明 参数 是否必选 类型 描述 tenant_id 否 String 健康检查所在的项目ID。 获取方法详见获取项目ID。 需要和token中的project_id一致。 支持的最大字符长度:255 project_id 否 String 此参数和tenant_id参数含义一样,均指健康检查所在的项目ID。 获取方法详见获取项目ID。 需要和token中的project_id一致。 name 否 String 健康检查名称。 支持的最大字符长度:255 delay 是 Integer 健康检查的间隔,单位秒,取值范围[1,50]。 max_retries 是 Integer 健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE,取值范围[1,10]。 max_retries_down 否 Integer 健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE,取值范围[1,10]。 pool_id 是 String 健康检查关联的后端云服务器组ID。 每个后端云服务器组只能有一个健康检查。 admin_state_up 否 Boolean 健康检查的管理状态。 该字段为预留字段,暂未启用。默认为true。 timeout 是 Integer 健康检查超时时间,单位秒,取值范围[1,50]。 说明: 建议该值小于delay的值。 type 是 String 健康检查的类型。 取值范围:TCP、UDP_CONNECT、HTTP。 健康检查的type与其关联的后端云服务器组的protocol有如下关系: 后端云服务器组的protocol为UDP时,健康检查的type只能为UDP_CONNECT; 后端云服务器组的protocol为TCP时,健康检查的type可以为TCP、HTTP; 后端云服务器组的protocol为HTTP时,健康检查的type可以为TCP、HTTP。 monitor_port 否 Integer 健康检查端口号,取值范围[1,65535]。 默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。 domain_name 否 String 健康检查时,发送的http请求的域名。 仅当type为HTTP时生效。 默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头,只能包含数字、字母、’-’、’.’。 例如:www.test.com 支持的最大字符长度:100 url_path 否 String 健康检查时发送的http请求路径。默认为“/”。 以“/”开头。 仅当type为HTTP时生效。 例如:“/test” 支持的最大字符长度:80 expected_codes 否 String 期望HTTP响应状态码,指定下列值: 单值,例如200; 列表,例如200,202; 区间,例如200-204。 仅当type为HTTP时生效。 支持的最大字符长度:64 说明: 该字段为预留字段,暂未启用。 http_method 否 String HTTP请求的方法;默认值:GET 取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明: 该字段为预留字段,暂未启用。
  • 响应消息 表3 响应参数 参数 参数类型 描述 healthmonitor Object 健康检查对象。详见表4。 表4 healthmonitor字段说明 参数 参数类型 描述 id String 健康检查ID。 tenant_id String 健康检查所在的项目ID。 project_id String 此参数和tenant_id参数含义一样,均指健康检查所在的项目ID。 name String 健康检查名称。 delay Integer 健康检查间隔,单位秒,取值范围[1,50]。 max_retries Integer 健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE,取值范围[1,10]。 max_retries_down Integer 健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE,取值范围[1,10]。 pools Array 健康检查关联的后端云服务器组的ID列表。详见表5 admin_state_up Boolean 健康检查的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。 true表示开启。 false表示关闭。 timeout Integer 健康检查超时时间,单位秒,取值范围[1,50]。 说明: 建议该值小于delay的值。 type String 健康检查的类型。 取值范围:TCP、UDP_CONNECT、HTTP。 健康检查的type与其关联的后端云服务器组的protocol有如下关系: 后端云服务器组的protocol为UDP时,健康检查的type只能为UDP_CONNECT; 后端云服务器组的protocol为TCP时,健康检查的type可以为TCP、HTTP; 后端云服务器组的protocol为HTTP时,健康检查的type可以为TCP、HTTP。 monitor_port Integer 健康检查端口号,取值范围[1,65535]。 默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。 expected_codes String 期望HTTP响应状态码,指定下列值: 单值,例如200; 列表,例如200,202; 区间,例如200-204。 仅当type为HTTP时生效。 暂时不支持该字段,统一置为200。 domain_name String 健康检查时,发送的http请求的域名。 仅当type为HTTP时生效。 默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头,只能包含数字、字母、’-’、’.’。 例如:www.test.com url_path String 健康检查时发送的http请求路径。默认为“/”。 以“/”开头。 仅当type为HTTP时生效。 例如:“/test” http_method String HTTP请求的方法;默认值:GET 取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明: 该字段为预留字段,暂未启用。 表5 pools字段说明 参数 参数类型 描述 id String 关联的后端服务器组id
  • 请求示例 请求样例 更新健康检查 PUT https://{endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/healthmonitors/b7633ade-24dc-4d72-8475-06aa22be5412 { "healthmonitor": { "delay": 15, "name": "health-xx", "timeout": 12 } }
  • 响应示例 响应样例 { "healthmonitor": { "name": "health-xx", "admin_state_up": true, "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "domain_name": null, "delay": 15, "expected_codes": "200", "max_retries": 10, "http_method": "GET", "timeout": 12, "pools": [ { "id": "bb44bffb-05d9-412c-9d9c-b189d9e14193" } ], "url_path": "/", "type": "HTTP", "id": "2dca3867-98c5-4cde-8f2c-b89ae6bd7e36", "monitor_port": 112 } }
  • 响应消息 表4 响应参数 参数 参数类型 描述 healthmonitor Healthmonitor object 健康检查对象。详见表5。 表5 healthmonitor字段说明 参数 参数类型 描述 id String 健康检查ID。 tenant_id String 健康检查所在的项目ID。 project_id String 此参数和tenant_id参数含义一样,均指健康检查所在的项目ID。 name String 健康检查名称。 delay Integer 健康检查间隔,单位秒,取值范围[1,50]。 max_retries Integer 健康检查最大重试次数,取值范围[1,10]。 pools Array of Pools objects 健康检查关联的后端云服务器组的ID列表。详见表6 admin_state_up Boolean 健康检查的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。 true表示开启。 false表示关闭。 timeout Integer 健康检查超时时间,单位秒,取值范围[1,50]。 说明: 建议该值小于delay的值。 type String 健康检查的类型。 取值范围:TCP、UDP_CONNECT、HTTP。 monitor_port Integer 健康检查端口号,取值范围[1,65535]。 默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。 expected_codes String 期望HTTP响应状态码,指定下列值: 单值,例如200; 列表,例如200,202; 区间,例如200-204。 仅当type为HTTP时生效。 暂时不支持该字段,统一置为200。 domain_name String 健康检查时,发送的http请求的域名。 仅当type为HTTP时生效。 默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头,只能包含数字、字母、’-’、’.’。 例如:www.test.com url_path String 健康检查时发送的http请求路径。默认为“/”。 以“/”开头。 仅当type为HTTP时生效。 例如:“/test” http_method String HTTP请求的方法;默认值:GET 取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明: 该字段为预留字段,暂未启用。 表6 pools字段说明 参数 是否必选 参数类型 描述 id 是 String 后端服务器组id
  • 请求消息 表2 请求参数 参数 是否必选 参数类型 描述 healthmonitor 是 Healthmonitor object 健康检查对象。详见表3。 表3 healthmonitor字段说明 参数 是否必选 参数类型 描述 name 否 String 健康检查名称。 支持的最大字符长度:255 delay 否 Integer 健康检查间隔,单位秒,取值范围[1,50]。 max_retries 否 Integer 健康检查最大重试次数,取值范围[1,10]。 admin_state_up 否 Boolean 健康检查的管理状态。 该字段为预留字段,暂未启用。默认为true。 timeout 否 Integer 健康检查超时时间,单位秒,取值范围[1,50]。 说明: 建议该值小于delay的值。 type 否 String 健康检查的类型。 取值范围:TCP、UDP_CONNECT、HTTP。 monitor_port 否 Integer 健康检查端口号,取值范围[1,65535]。 默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。 expected_codes 否 String 期望HTTP响应状态码,指定下列值: 单值,例如200; 列表,例如200,202; 区间,例如200-204。 仅当type为HTTP时生效。 domain_name 否 String 健康检查时,发送的http请求的域名。 仅当type为HTTP时生效。 默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头,只能包含数字、字母、’-’、’.’。 例如:www.test.com 支持的最大字符长度:100 url_path 否 String 健康检查时发送的http请求路径。默认为“/”。 以“/”开头。 仅当type为HTTP时生效。 例如:“/test” 支持的最大字符长度:80 http_method 否 String HTTP请求的方法;默认值:GET 取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明: 该字段为预留字段,暂未启用。
  • 响应消息 表3 响应参数 参数 参数类型 描述 loadbalancer Object 负载均衡器对象。详见表4。 表4 loadbalancer字段说明 参数 参数类型 描述 id String 负载均衡器ID。 project_id String 此参数和tenant_id参数含义一样,均指负载均衡器所在的项目ID。 tenant_id String 负载均衡器所在项目的ID。 支持的最大字符长度:255 name String 负载均衡器名称。 支持的最大字符长度:255 description String 负载均衡器的描述信息。 支持的最大字符长度:255 vip_subnet_id String 负载均衡器所在子网IPv4子网ID。 vip_port_id String 负载均衡器内网IP对应的端口ID。 创建弹性负载均衡时,会自动为负载均衡创建一个port并关联一个默认的安全组,这个安全组对所有流量不生效。 provider String 负载均衡器的生产者名称。 vip_address String 负载均衡器的内网IP。 支持的最大字符长度:64 listeners Array 负载均衡器关联监听器ID的列表。详见表5 pools Array 负载均衡器关联后端服务器组ID的列表。详见表6 operating_status String 负载均衡器的操作状态。取值范围:可以为ONLINE和FROZEN。 provisioning_status String 该字段为预留字段,暂未启用。 负载均衡器的配置状态。取值范围:可以为ACTIVE。 admin_state_up Boolean 负载均衡器的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。 true表示开启。 false表示关闭。 tags Array 负载均衡器的标签列表。 created_at String 负载均衡器的创建时间。 格式为UTC时间:YYYY-MM-DDTHH:MM:SS 支持的最大字符长度:19 updated_at String 负载均衡器的更新时间。 格式为UTC时间:YYYY-MM-DDTHH:MM:SS 支持的最大字符长度:19 表5 listeners字段说明 参数 参数类型 描述 id String 关联的监听器id 表6 pools字段说明 参数 参数类型 描述 id String 关联的后端服务器组id
  • 请求示例 请求样例1 创建私网负载均衡器 POST https://{Endpoint}/v2.0/lbaas/loadbalancers { "loadbalancer": { "name": "loadbalancer1", "description": "simple lb", "tenant_id": "1867112d054b427e808cc6096d8193a1", "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", "vip_address": "192.168.0.100", "admin_state_up": true } }
  • 响应示例 响应样例1 { "loadbalancer": { "description": "simple lb", "provisioning_status": "ACTIVE", "tenant_id": "1867112d054b427e808cc6096d8193a1", "project_id": "1867112d054b427e808cc6096d8193a1", "created_at": "2019-01-19T05:32:56", "admin_state_up": true, "updated_at": "2019-01-19T05:32:57", "id": "ea2843da-4026-49ec-8338-8fa015b067fc", "pools": [], "listeners": [], "vip_port_id": "a7ecbdb5-5a63-41dd-a830-e16c0a7e04a7", "operating_status": "ONLINE", "vip_address": "192.168.0.100", "vip_subnet_id": "58077bdb-d470-424b-8c45-2e3c65060a5b", "provider": "vlb", "tags": [], "name": "loadbalancer1" } }
  • 请求消息 表1 请求参数 参数 是否必选 参数类型 描述 loadbalancer 是 Object 负载均衡器对象。详见表2。 表2 loadbalancer字段说明 参数 是否必选 参数类型 描述 name 否 String 负载均衡器名称。 支持的最大字符长度:255 description 否 String 负载均衡器的描述信息。 支持的最大字符长度:255 tenant_id 否 String 负载均衡器所在的项目ID。获取方法详见获取项目ID。 支持的最大字符长度:255 需要和token中的project_id一致。 project_id 否 String 此参数和tenant_id参数含义一样,均指负载均衡器所在的项目ID。 获取方法详见获取项目ID。 需要和token中的project_id一致。 vip_subnet_id 是 String 负载均衡器所在的子网IPv4子网ID。 可通过查询子网列表接口GET {vpc的endpoint}/v2.0/subnets获取。 vip_address将从该子网中产生。 只支持指定IPv4的子网ID。暂不支持IPv6。 provider 否 String 负载均衡器的生产者。 取值范围:vlb。 vip_address 否 String 负载均衡器的内网IP。 该IP必须为vip_subnet_id字段指定的子网网段中的IP。若不指定,自动从vip_subnet_id字段指定的子网网段中生成一个IP地址。 支持的最大字符长度:64 admin_state_up 否 Boolean 负载均衡器的管理状态。 该字段为预留字段,暂未启用。默认为true。
共100000条