修改负载均衡七层转发路径

最近更新时间:2018-05-30 17:36:39

功能描述

ModifyBmForwardLocation 提供了修改黑石负载均衡七层转发路径功能。

接口请求域名:bmlb.api.qcloud.com

转发规则的配置规则如下:

创建相同转发域名的转发规则会合并到同一转发域名下

转发域名的使用限制:
1) 允许长度为1~80的可打印ascii字符。
2)有四种使用方式:默认域名格式,普通域名格式,通配符格式,正则表达式格式。
3) 默认域名格式用'_'表示。
4) 普通域名格式只能使用字母、数字、'-','.'。
5) 通配符格式中只能以通配符*开头或者结尾。
6) 支持~开头的正则表达式,正则中不能存在以下字符:空格"';`~{} 。
7) 转发域名的匹配优先级:普通域名格式 > 以通配符开头的通配符格式 > 以通配符结尾的通配符格式 > 正则表达式 > 默认域名格式。

转发路径的使用限制:
1) 允许长度为1~80的可打印ascii字符。
2)有两种使用方式:无修饰符格式,有修饰符格式。
3) 无修饰符格式只能使用字母、数字、'-','.','?','%','#','&','='。
4) 有修饰符格式可以使用一下修饰符:~,~*,^~,=。~表示接下来的表达式为大小写敏感的正则表达式;~*表示接下来的表达式为大小写不敏感的正则表达式;^~表示如果该表达式被认为最佳匹配,那么不再进行一下的搜索匹配;=表示精确匹配,只有请求与该表达式完全相同才转发。
5) 正则中不能存在以下字符:空格"';`~{} 。
6) 转发域名的匹配优先级:=修饰的精确匹配 > ^~修饰的前缀匹配 > ~和~*修饰的正则表达式 > 无修饰符格式。

健康检查转发域名的使用限制:
1) 健康检查域名都是普通格式域名
2) 健康检查域名必须匹配转发域名

健康检查转发路径的使用限制:
健康检查路径都是普通格式路径

请求

请求示例

GET https://bmlb.api.qcloud.com/v2/index.php?Action=ModifyBmForwardLocation
    &<公共请求参数>
    &loadBalancerId=<负载均衡实例ID>
    &listenerId=<七层监听器实例ID>
    &rules.0.domainId=<转发域名实例ID>
    &rules.0.locationId=<转发路径实例ID>
    &rules.0.url=<转发路径>
    &rules.0.sessionExpire=<会话保持时间>
    &rules.0.healthSwitch=<健康检查开关>

请求参数

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为 ModifyBmForwardLocation。

参数名称 必选 类型 描述
loadBalancerId String 负载均衡实例ID,可通过接口DescribeBmLoadBalancers查询。
listenerId String 七层监听器实例ID,可通过接口DescribeBmForwardListeners查询。
rules Array 待更新的七层转发规则信息数组。

rules描述当前监听器的具体信息,n为下标,rules包含字段如下

参数名称 必选 类型 描述
rules.n.domainId String 转发域名实例ID,可通过接口DescribeBmForwardRules查询。
rules.n.locationId String 转发路径实例ID,可通过接口DescribeBmForwardRules查询。
rules.n.url String 转发路径。
rules.n.sessionExpire Int 会话保持时间,单位:秒。可选值:30~3600。默认值0,表示不开启会话保持。
rules.n.healthSwitch Int 健康检查开关:1(开启)、0(关闭)。默认值0,表示关闭。
rules.n.intervalTime Int 健康检查检查间隔时间,默认值:5,可选值:5-300,单位:秒。
rules.n.healthNum Int 健康检查健康阈值,默认值:3,表示当连续探测三次健康则表示该转发正常,可选值:2-10,单位:次。
rules.n.unhealthNum Int 健康检查不健康阈值,默认值:5,表示当连续探测五次不健康则表示该转发不正常,可选值:2-10,单位:次。
rules.n.httpCode Int 健康检查中认为健康的HTTP返回码的组合。可选值:0~31,例如:7表示HTTP返回码为1xx,2xx,3xx认为健康。
rules.n.httpCheckPath String 健康检查检查路径。
rules.n.httpCheckDomain String 健康检查检查域名。
rules.n.balanceMode String 均衡方式:ip_hash、wrr。默认值wrr。

响应

响应示例

{
    "code": 0,
    "message": "",
    "codeDesc": "Success",
    "requestId" : 1234
}

响应参数

参数名称 类型 描述
code Int 错误码。0表示成功,其他值表示失败。详见错误码页面的公共错误码
message String 错误信息描述,与接口相关。
codeDesc String 返回码信息描述。
requestId Int 任务ID。该接口为异步任务,可根据本参数调用DescribeBmLoadBalancersTaskResult接口来查询任务操作结果

错误码

错误代码 英文提示 错误描述
9003 InvalidParameter 参数错误
9006 InternalError.CCDBAbnormal CCDB 服务异常
11041 InvalidParameter.CCDBLBNotExist CCDB中不存在该负载均衡记录信息
12003 IncorrectStatus.LBWrongStatus 该负载均衡状态不正确,无法执行当前操作
-12000 InvalidL7Listener.NotExist CCDB中不存在该七层监听器
-12010 IncorrectStatus.ListenerWrongStatus 该负载均衡监听器状态不正确
-12003 InvalidForwardRule.NotExist CCDB中不存在该转发规则
-12011 IncorrectStatus.ForwardRuleWrongStatus 该负载均衡转发规则状态不正确
-12015 InvalidParameter.ForwardLocationIsDuplicate 该负载均衡已经存在该转发路径
-12017 InvalidParameter.ForwardLocationNotComplianceWithRule 转发路径不符合规则

实际案例

输入

GET https://domain/v2/index.php?Action=ModifyBmForwardLocation
    &SecretId=AKIDlfdHxN0ntSVt4KPH0xXWnGl21UUFNoO5
    &Nonce=24763
    &Timestamp=1507714922
    &Region=bj
    &loadBalancerId=lb-abcdefgh
    &listenerId=lbl-abcdefgh
    &rules.0.domainId=dm-abcdefgh
    &rules.0.locationId=loc-abcdefgh
    &rules.0.url=/a
    &rules.0.sessionExpire=1000
    &rules.0.healthSwitch=0
    &Signature=AySJsE6Zq3knXwPSzxlYUl%2FrM90%3D

输出

{
    "code": 0,
    "message": "",
    "codeDesc": "Success",
    "requestId" : 1234
}