创建转发策略
功能介绍
创建七层转发策略。
接口约束
只支持七层监听器配置转发策略。
调用方法
请参见如何调用API。
URI
POST /v3/{project_id}/elb/l7policies
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
IAM鉴权Token |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
l7policy |
是 |
CreateL7PolicyOption object |
转发策略对象。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
action |
是 |
String |
转发策略的转发动作。 取值:
使用说明:
最小长度:1 最大长度:255 |
admin_state_up |
否 |
Boolean |
转发策略的管理状态,默认为true。 不支持该字段,请勿使用。 |
description |
否 |
String |
转发策略描述信息。 最小长度:0 最大长度:255 |
listener_id |
是 |
String |
转发策略对应的监听器ID。 当action为REDIRECT_TO_POOL时,只支持创建在PROTOCOL为HTTP或HTTPS的listener上。 当action为REDIRECT_TO_LISTENER时,只支持创建在PROTOCOL为HTTP的listener上。 |
name |
否 |
String |
转发策略名称。 最小长度:0 最大长度:255 |
position |
否 |
Integer |
转发策略的优先级,不支持更新。 不支持该字段,请勿使用。 最小值:1 最大值:100 |
priority |
否 |
Integer |
转发策略的优先级。数字越小表示优先级越高,同一监听器下不允许重复。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为REDIRECT_TO_LISTENER时,仅支持指定为0,优先级最高。 当关联的listener没有开启enhance_l7policy_enable,按原有policy的排序逻辑,自动排序。 各域名之间优先级独立,相同域名下,按path的compare_type排序, 精确>前缀>正则,匹配类型相同时,path的长度越长优先级越高。 若policy下只有域名rule,没有路径rule,默认path为前缀匹配/。 当关联的listener开启了enhance_l7policy_enable,且不传该字段, 则新创建的转发策略的优先级的值为:同一监听器下已有转发策略的优先级的最大值+1。 因此,若当前已有转发策略的优先级的最大值是10000,新创建会因超出取值范围10000而失败。 此时可通过传入指定priority,或调整原有policy的优先级来避免错误。 若监听器下没有转发策略,则新建的转发策略的优先级为1。 共享型负载均衡器下的转发策略不支持该字段。 最小值:0 最大值:10000 |
project_id |
否 |
String |
转发策略所在的项目ID。 最小长度:1 最大长度:32 |
redirect_listener_id |
否 |
String |
转发到的listener的ID,当action为REDIRECT_TO_LISTENER时必选。 使用说明:
|
redirect_pool_id |
否 |
String |
转发到pool的ID。当action为REDIRECT_TO_POOL时生效。 使用说明:
|
redirect_url |
否 |
String |
转发到的url。必须满足格式: protocol://host:port/path?query。 最小长度:1 最大长度:255 |
redirect_url_config |
否 |
CreateRedirectUrlConfig object |
转发到的url配置。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为REDIRECT_TO_URL时生效,且为必选字段,其他action不可指定,否则报错。 格式:protocol://host:port/path?query protocol、host、port、path不允许同时不传或同时传${xxx} (${xxx}表示原值,如${host}表示被转发的请求URL的host部分)。 protocol和port传入的值不能与l7policy关联的监听器一致且host、path同时不传或同时传${xxx}。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
redirect_pools_config |
否 |
Array of CreateRedirectPoolsConfig objects |
转发到多个主机组列表。一个policy最多配置5个pool。 |
redirect_pools_sticky_session_config |
否 |
配置转发策略关联的服务器组之间会话保持。负载均衡器会根据客户端第一个请求生成一个cookie,后续所有包含这个cookie值的请求都会由同一个pool处理。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
|
fixed_response_config |
否 |
CreateFixtedResponseConfig object |
固定返回页面的配置。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为FIXED_RESPONSE时生效,且为必选字段,其他action不可指定,否则报错。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
redirect_pools_extend_config |
否 |
转发到的后端主机组的配置。当action为REDIRECT_TO_POOL时生效。 |
|
rules |
否 |
Array of CreateL7PolicyRuleOption objects |
转发策略关联的转发规则对象。详细参考表 l7rule字段说明。rules列表中最多含有10个rule规则 (若rule中包含conditions字段,一条condition算一个规则), 且列表中type为HOST_NAME,PATH,METHOD,SOURCE_IP的rule不能重复,至多指定一条。 使用说明:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
protocol |
否 |
String |
重定向的协议。默认值${protocol}表示继承原值(即与被转发请求保持一致)。 取值范围:
缺省值:${protocol} 最小长度:1 最大长度:36 |
host |
否 |
String |
重定向的主机名。字符串只能包含英文字母、数字、“-”、“.”,必须以字母、数字开头。 默认值${host}表示继承原值(即与被转发请求保持一致)。 缺省值:${host} 最小长度:1 最大长度:128 |
port |
否 |
String |
重定向到的端口。默认值${port}表示继承原值(即与被转发请求保持一致)。 缺省值:${port} 最小长度:1 最大长度:16 |
path |
否 |
String |
重定向的路径。默认值${path}表示继承原值(即与被转发请求保持一致)。 只能包含英文字母、数字、_~';@^-%#&$.+?,=!:|\/()[]{},且必须以"/"开头。其中$1,$2会匹配请求url通配符星号() 缺省值:${path} 最小长度:1 最大长度:128 |
query |
否 |
String |
重定向的查询字符串。默认${query}表示继承原值(即与被转发请求保持一致)。举例如下: 若该字段被设置为:${query}&name=my_name,则在转发符合条件的URL (如https://www.example.com:8080/elb?type=loadbalancer, 此时${query}表示type=loadbalancer)时,将会重定向到 https://www.example.com:8080/elb?type=loadbalancer&name=my_name。 只能包含英文字母、数字和特殊字符:!$&'()+,-./:;=?@^_`。字母区分大小写。其中$1,$2会匹配请求url通配符星号() 缺省值:${query} 最小长度:0 最大长度:128 |
status_code |
是 |
String |
重定向后的返回码。 取值范围:
最小长度:1 最大长度:16 |
insert_headers_config |
否 |
CreateInsertHeadersConfig object |
要添加的请求头参数的配置。 |
remove_headers_config |
否 |
CreateRemoveHeadersConfig object |
要移除的请求头参数的配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
pool_id |
是 |
String |
所在后端服务器组ID。 |
weight |
否 |
String |
转发策略主机组的权重,取值范围为[1,100],默认为1。请求将根据该权重进行负载分发到不同的主机组。 权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 缺省值:1 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
enable |
否 |
Boolean |
转发策略主机组会话保持开启的开关。 默认值为false,表示关闭主机组会话保持。 缺省值:false |
timeout |
否 |
Integer |
会话保持的时间。 适用范围:范围为[1,1440](分钟),默认值1440。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
status_code |
是 |
String |
返回码。支持200~299,400~499,500~599。 最小长度:1 最大长度:16 |
content_type |
否 |
String |
返回body的格式。 取值范围:
最小长度:0 最大长度:32 |
message_body |
否 |
String |
返回消息内容。 最小长度:0 最大长度:1024 |
insert_headers_config |
否 |
CreateInsertHeadersConfig object |
要添加的请求头参数列表。 |
remove_headers_config |
否 |
CreateRemoveHeadersConfig object |
要移除的请求头参数列表。 |
traffic_limit_config |
否 |
CreateTrafficLimitConfig object |
转发策略限速的配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
rewrite_url_enable |
否 |
Boolean |
是否开启url重定向。 |
rewrite_url_config |
否 |
CreateRewriteUrlConfig object |
URL重定向配置。当action为REDIRECT_TO_POOL的时候生效。 |
insert_headers_config |
否 |
CreateInsertHeadersConfig object |
要添加的请求头参数列表。 |
remove_headers_config |
否 |
CreateRemoveHeadersConfig object |
要移除的请求头参数列表。 |
traffic_limit_config |
否 |
CreateTrafficLimitConfig object |
转发策略限速的配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
host |
否 |
String |
重定向的域名。取值只能包含英文字母、数字、“-”、“.”,必须以字母、数字开头。 默认值${host},表示继承原值(即与被重写请求host保持一致)。 |
path |
否 |
String |
重定向的请求路径。 取值只能包含英文字母、数字、_~';@^-%#&$.+?,=!:|/(),且必须以"/"开头。其中$1-$9会匹配请求url通配符星号(),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 默认值${path}表示继承原值(即与被重写请求保持一致)。 |
query |
否 |
String |
重定向的查询字符串。取值只能包含英文字母、数字和特殊字符:!$&'()+,-./:;=?@^_`。字母区分大小写。其中$1-$9会匹配请求url通配符星号(),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 默认${query},表示继承原值(即与被重写请求保持一致)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
configs |
是 |
Array of CreateInsertHeaderConfig objects |
要添加请求头参数列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
支持1-40个字符(不区分大小写)。 支持字母a-z,数字,短划线-和下划线_。 key不能是以下字符: connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority、x-forwarded-host、x-forwarded-for、x-forwarded-for-port、x-forwarded-tls-certificate-id、x-forwarded-tls-protocol、x-forwarded-tls-cipher、x-forwarded-elb-ip、x-forwarded-port、x-forwarded-elb-id、x-forwarded-elb-vip、x-real-ip、x-forwarded-proto、x-nuwa-trace-ne-in、x-nuwa-trace-ne-out。 |
value_type |
是 |
String |
可选值:USER_DEFINED,REFERENCE_HEADER,SYSTEM_DEFINED。 |
value |
是 |
String |
header值。当value_type为SYSTEM_DEFINED时,value只可从CLIENT-PORT,CLIENT-IP, ELB-PROTOCOL, ELB-ID, ELB-PORT, ELB-EIP, ELB-VIP中取值。 取值范围:1-128个字符, 支持ascii码值32<=ch<=127范围内可打印字符,*和英文问号?。不能以空格开头或结尾。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
configs |
是 |
Array of CreateRemoveHeaderConfig objects |
要移除的请求头参数列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
被移除的请求头的参数名。取值范围: 1-40个字符(不区分大小写)。 支持字母a-z,数字,短划线-和下划线_。 不能移除以下请求头参数: connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority、x-forwarded-host、x-forwarded-for、x-forwarded-for-port、x-forwarded-tls-certificate-id、x-forwarded-tls-protocol、x-forwarded-tls-cipher、x-forwarded-elb-ip、x-forwarded-port、x-forwarded-elb-id、x-forwarded-elb-vip、x-real-ip、x-forwarded-proto、x-nuwa-trace-ne-in、x-nuwa-trace-ne-out |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
qps |
否 |
Integer |
转发策略整体限速。取值: 0-100000s。0表示不限速 最小值:0 最大值:100000 |
per_source_ip_qps |
否 |
Integer |
对转发策略单源进行限速。 quic监听器下转发策略不支持配置单源限速。指定该字段时,赋值可以为0或者为null。 取值: 0-100000s。0表示不限速,如果qps不为0,per_source_ip_qps需要小于qps。 最小值:0 最大值:100000 |
burst |
否 |
Integer |
对转发策略单源进行限速。取值: 0-100000s。当qps超限的时候,不返回503,支持允许局部突增burst大小的请求。 最小值:0 最大值:100000 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
admin_state_up |
否 |
Boolean |
转发规则的管理状态;取值范围: true/false,默认为true。 不支持该字段,请勿使用。 缺省值:true |
type |
是 |
String |
转发规则类别。 取值:
使用说明:
|
compare_type |
是 |
String |
转发匹配方式。 取值:
使用说明:
|
invert |
否 |
Boolean |
是否反向匹配;取值范围:true/false。默认值:false。 不支持该字段,请勿使用。 缺省值:false |
key |
否 |
String |
匹配项的名称,比如转发规则匹配类型是请求头匹配,则key表示请求头参数的名称。 不支持该字段,请勿使用。 最小长度:1 最大长度:255 |
value |
是 |
String |
匹配项的值。比如转发规则匹配类型是域名匹配,则value表示域名的值。仅当conditions空时该字段生效。 当转发规则类别type为HOST_NAME时,字符串只能包含英文字母、数字、-、.或*,必须以字母、数字或*开头。 若域名中包含*,则*只能出现在开头且必须以*.开始。当*开头时表示通配0~任一个字符。 当转发规则类别type为PATH时,当转发规则的compare_type为STARTS_WITH、EQUAL_TO时, 字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以"/"开头。 当转发规则类别type为METHOD、SOURCE_IP、HEADER,QUERY_STRING时, 该字段无意义,使用conditions来指定key/value。 最小长度:1 最大长度:128 |
conditions |
否 |
Array of CreateRuleCondition objects |
转发规则的匹配条件。当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。 若转发规则配置了conditions,字段key、字段value的值无意义。 同一个rule内的conditions列表中所有key必须相同,value不允许重复。 数组长度:0 - 10 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
匹配项的名称。 当转发规则类别type为HOST_NAME、PATH、METHOD、SOURCE_IP时,该字段固定为空字符串。 当转发规则类别type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。 key的长度限制1-40字符,只允许包含字母、数字和-_。 当转发规则类别type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。 key的长度限制为1-128字符,不支持空格,中括号,大括号,尖括号, 反斜杠,双引号,'#','&','|',‘%’,‘~’,字母区分大小写。 同一个rule内的conditions列表中所有key必须相同。 最小长度:1 最大长度:128 |
value |
是 |
String |
匹配项的值。 当转发规则类别type为HOST_NAME时,key固定为空字符串,value表示域名的值。 value长度1-128字符,字符串只能包含英文字母、数字、-、.或*, 必须以字母、数字或*开头,*只能出现在开头且必须以*.开始。 当转发规则类别type为PATH时,key固定为空字符串,value表示请求路径的值。 value长度1-128字符。当转发规则的compare_type为STARTS_WITH、EQUAL_TO时, 字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以/开头。 当转发规则类别type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。 value长度限制1-128字符,不支持空格, 双引号,支持以下通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)。 当转发规则类别type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。 value长度限制为1-128字符,不支持空格,中括号,大括号,尖括号,反斜杠,双引号, '#','&','|',‘%’,‘~’,字母区分大小写,支持通配符:*(匹配0个或更多字符)和?(正好匹配1个字符) 当转发规则类别type为METHOD时,key固定为空字符串,value表示请求方式。value取值范围为:GET, PUT, POST,DELETE, PATCH, HEAD, OPTIONS。 当转发规则类别type为SOURCE_IP时,key固定为空字符串,value表示请求源地址。 value为CIDR格式,支持ipv4,ipv6。例如192.168.0.2/32,2049::49/64。 同一个rule内的conditions列表中所有value不允许重复。 最小长度:1 最大长度:128 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
request_id |
String |
请求ID。 注:自动生成 。 |
l7policy |
L7Policy object |
l7policy对象 |
参数 |
参数类型 |
描述 |
---|---|---|
action |
String |
转发策略的转发动作。 取值:
使用说明:
|
admin_state_up |
Boolean |
转发策略的管理状态,默认为true。 不支持该字段,请勿使用。 |
description |
String |
转发策略描述信息。 |
id |
String |
转发策略ID。 |
listener_id |
String |
转发策略所属的监听器ID。 |
name |
String |
转发策略名称 最小长度:1 最大长度:255 |
position |
Integer |
转发策略的优先级,不支持更新。 不支持该字段,请勿使用。 最小值:1 最大值:100 |
priority |
Integer |
转发策略的优先级。数字越小表示优先级越高,同一监听器下不允许重复。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为REDIRECT_TO_LISTENER时,仅支持指定为0,优先级最高。 当关联的listener没有开启enhance_l7policy_enable,按原有policy的排序逻辑,自动排序。 各域名之间优先级独立,相同域名下,按path的compare_type排序,精确>前缀>正则, 匹配类型相同时,path的长度越长优先级越高。若policy下只有域名rule,没有路径rule,默认path为前缀匹配/。 当关联的listener开启了enhance_l7policy_enable,且不传该字段,则新创建的转发策略的优先级的值为: 同一监听器下已有转发策略的优先级的最大值+1。 因此,若当前已有转发策略的优先级的最大值是10000,新创建会因超出取值范围10000而失败。 此时可通过传入指定priority,或调整原有policy的优先级来避免错误。若监听器下没有转发策略,则新建的转发策略的优先级为1。 共享型负载均衡器下的转发策略不支持该字段。 |
project_id |
String |
转发策略所在的项目ID。 |
provisioning_status |
String |
转发策略的配置状态。 取值范围:
|
redirect_pool_id |
String |
转发到pool的ID。当action为REDIRECT_TO_POOL时生效。 |
redirect_listener_id |
String |
转发到的listener的ID,当action为REDIRECT_TO_LISTENER时必选。 使用说明:
|
redirect_url |
String |
转发到的url。必须满足格式: protocol://host:port/path?query。 不支持该字段,请勿使用。 |
rules |
Array of RuleRef objects |
转发策略关联的转发规则列表 |
redirect_url_config |
RedirectUrlConfig object |
转发到的url配置。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为REDIRECT_TO_URL时生效,且为必选字段,其他action不可指定,否则报错。 格式:protocol://host:port/path?query protocol、host、port、path不允许同时不传或同时传${xxx} (${xxx}表示原值,如${host}表示被转发的请求URL的host部分)。 protocol和port传入的值不能与l7policy关联的监听器一致且host、path同时不传或同时传${xxx}。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
redirect_pools_config |
Array of RedirectPoolsConfig objects |
转发到多个主机组列表。一个policy最多配置5个pool。 |
redirect_pools_sticky_session_config |
配置转发策略关联的服务器组之间会话保持。负载均衡器会根据客户端第一个请求生成一个cookie,后续所有包含这个cookie值的请求都会由同一个pool处理。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
|
redirect_pools_extend_config |
RedirectPoolsExtendConfig object |
转发到的后端主机组的配置。当action为REDIRECT_TO_POOL时生效。 |
fixed_response_config |
FixtedResponseConfig object |
固定返回页面的配置。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为FIXED_RESPONSE时生效,且为必选字段,其他action不可指定,否则报错。 共享型负载均衡器下的转发策略不支持该字段,传入会报错。 |
created_at |
String |
创建时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 |
updated_at |
String |
更新时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 |
参数 |
参数类型 |
描述 |
---|---|---|
protocol |
String |
重定向的协议。默认值${protocol}表示继承原值(即与被转发请求保持一致)。 取值:
最小长度:1 最大长度:36 |
host |
String |
重定向的主机名。字符串只能包含英文字母、数字、“-”、“.”。 且必须以字母、数字开头。默认值${host}表示继承原值(即与被转发请求保持一致)。 缺省值:${host} 最小长度:1 最大长度:128 |
port |
String |
重定向到的端口。默认值${port}表示继承原值(即与被转发请求保持一致)。 缺省值:${port} 最小长度:1 最大长度:16 |
path |
String |
重定向的路径。默认值${path}表示继承原值(即与被转发请求保持一致)。 支持英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以"/"开头。 缺省值:${path} 最小长度:1 最大长度:128 |
query |
String |
重定向的查询字符串。默认${query}表示继承原值(即与被转发请求保持一致)。举例如下: 若该字段被设置为:${query}&name=my_name,则在转发符合条件的URL (如https://www.example.com:8080/elb?type=loadbalancer, 此时${query}表示type=loadbalancer)时,将会重定向到 https://www.example.com:8080/elb?type=loadbalancer&name=my_name。 只能包含英文字母、数字和特殊字符:!$&'()*+,-./:;=?@^_`。字母区分大小写。 缺省值:${query} 最小长度:0 最大长度:128 |
status_code |
String |
重定向后的返回码。 取值范围:
最小长度:1 最大长度:16 |
insert_headers_config |
InsertHeadersConfig object |
要添加的请求头参数列表。 |
remove_headers_config |
RemoveHeadersConfig object |
要移除的请求头参数列表。 |
参数 |
参数类型 |
描述 |
---|---|---|
pool_id |
String |
所在后端服务器组ID。 |
weight |
Integer |
转发策略主机组的权重,范围为[0,100], 请求将根据该权重进行负载分发到不同的主机组。 权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 最小值:0 最大值:100 |
参数 |
参数类型 |
描述 |
---|---|---|
enable |
Boolean |
转发策略主机组会话保持开启的开关。 默认值为false,表示关闭主机组会话保持。 缺省值:false |
timeout |
Integer |
会话保持的时间。 适用范围:范围为[1,1440](分钟),默认值1440。 |
参数 |
参数类型 |
描述 |
---|---|---|
rewrite_url_enable |
Boolean |
是否开启url重定向。 |
rewrite_url_config |
RewriteUrlConfig object |
URL重定向配置。当action为REDIRECT_TO_POOL的时候生效。 |
insert_headers_config |
InsertHeadersConfig object |
要添加的请求头参数列表。 |
remove_headers_config |
RemoveHeadersConfig object |
要移除的请求头参数列表。 |
traffic_limit_config |
TrafficLimitConfig object |
转发策略限速的配置。 |
参数 |
参数类型 |
描述 |
---|---|---|
host |
String |
重定向的域名。取值只能包含英文字母、数字、“-”、“.”,必须以字母、数字开头。 默认值${host},表示继承原值(即与被重写请求host保持一致)。 |
path |
String |
重定向的请求路径。 取值只能包含英文字母、数字、_~';@^-%#&$.+?,=!:|/(),且必须以"/"开头。其中$1-$9会匹配请求url通配符星号(),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 默认值${path}表示继承原值(即与被重写请求保持一致)。 |
query |
String |
重定向的查询字符串。取值只能包含英文字母、数字和特殊字符:!$&'()+,-./:;=?@^_`。字母区分大小写。其中$1-$9会匹配请求url通配符星号(),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 默认${query},表示继承原值(即与被重写请求保持一致)。 |
参数 |
参数类型 |
描述 |
---|---|---|
status_code |
String |
返回码。支持200~299,400~499,500~599。 最小长度:1 最大长度:16 |
content_type |
String |
返回body的格式。 取值范围:
最小长度:0 最大长度:32 |
message_body |
String |
返回消息内容。 最小长度:0 最大长度:1024 |
insert_headers_config |
InsertHeadersConfig object |
要添加的请求头参数列表。 |
remove_headers_config |
RemoveHeadersConfig object |
要移除的请求头参数列表。 |
traffic_limit_config |
TrafficLimitConfig object |
转发策略限速的配置。 |
参数 |
参数类型 |
描述 |
---|---|---|
key |
String |
支持1-40个字符(不区分大小写)。 支持字母a-z,数字,短划线-和下划线_。 key不能是以下字符: connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority、x-forwarded-host、x-forwarded-for、x-forwarded-for-port、x-forwarded-tls-certificate-id、x-forwarded-tls-protocol、x-forwarded-tls-cipher、x-forwarded-elb-ip、x-forwarded-port、x-forwarded-elb-id、x-forwarded-elb-vip、x-real-ip、x-forwarded-proto、x-nuwa-trace-ne-in、x-nuwa-trace-ne-out。 |
value_type |
String |
可选值:USER_DEFINED,REFERENCE_HEADER,SYSTEM_DEFINED。 |
value |
String |
header值。当value_type为SYSTEM_DEFINED时,value只可从CLIENT-PORT,CLIENT-IP, ELB-PROTOCOL, ELB-ID, ELB-PORT, ELB-EIP, ELB-VIP中取值。 取值范围:1-128个字符, 支持ascii码值32<=ch<=127范围内可打印字符,*和英文问号?。不能以空格开头或结尾。 |
参数 |
参数类型 |
描述 |
---|---|---|
key |
String |
被移除的请求头的参数名。取值范围: 1-40个字符(不区分大小写)。 支持字母a-z,数字,短划线-和下划线_。 不能移除以下请求头参数: connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority、x-forwarded-host、x-forwarded-for、x-forwarded-for-port、x-forwarded-tls-certificate-id、x-forwarded-tls-protocol、x-forwarded-tls-cipher、x-forwarded-elb-ip、x-forwarded-port、x-forwarded-elb-id、x-forwarded-elb-vip、x-real-ip、x-forwarded-proto、x-nuwa-trace-ne-in、x-nuwa-trace-ne-out |
参数 |
参数类型 |
描述 |
---|---|---|
qps |
Integer |
转发策略整体限速。取值: 0-100000s。0表示不限速 最小值:0 最大值:100000 |
per_source_ip_qps |
Integer |
对转发策略单源进行限速。 quic监听器下转发策略不支持配置单源限速,指定该字段时,赋值可以为0或者为null 取值: 0-100000s。0表示不限速,如果qps不为0,per_ip_qps需要小于qps。 最小值:0 最大值:100000 |
burst |
Integer |
对转发策略单源进行限速。取值: 0-100000s。当qps超限的时候,不返回503,支持允许局部突增burst大小的请求。 最小值:0 最大值:100000 |
请求示例
创建监听器重定向转发策略
POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/l7policies { "l7policy" : { "action" : "REDIRECT_TO_LISTENER", "listener_id" : "e2220d2a-3faf-44f3-8cd6-0c42952bd0ab", "redirect_listener_id" : "48a97732-449e-4aab-b561-828d29e45050" } }
响应示例
状态码: 201
POST操作正常返回。
{ "request_id" : "b60d1d9a-5263-45b0-b1d6-2810ac7c52a1", "l7policy" : { "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, "redirect_pools_config" : { "pool_id" : "722e9e8c-e7cb-4fef-b24b-af9399dbb240", "weight" : 12 }, "redirect_pools_sticky_session_config" : { "timeout" : 23, "enable" : false }, "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" } }
状态码
状态码 |
描述 |
---|---|
201 |
POST操作正常返回。 |
错误码
请参见错误码。