创建转发策略
功能介绍
创建七层转发策略。
接口约束
只支持七层监听器配置转发策略。
调用方法
请参见如何调用API。
URI
POST /v3/{project_id}/elb/l7policies
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 参数解释:项目ID。获取方式请参见获取项目ID。 约束限制:不涉及 取值范围:长度为32个字符,由小写字母和数字组成。 默认取值:不涉及 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 参数解释:IAM鉴权Token。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
l7policy | 是 | CreateL7PolicyOption object | 参数解释:创建转发策略参数。 约束限制:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
action | 是 | String | 参数解释:转发策略的转发动作。 约束限制:
取值范围:
默认取值:不涉及 |
admin_state_up | 否 | Boolean | 参数解释:转发策略的管理状态。 约束限制:只支持设置为true。 取值范围:不涉及 默认取值:不涉及 |
description | 否 | String | 参数解释:转发策略描述信息。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 |
listener_id | 是 | String | 参数解释:转发策略对应的监听器ID。 约束限制:
取值范围:不涉及 默认取值:不涉及 |
name | 否 | String | 参数解释:转发策略名称。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 |
position | 否 | Integer | 参数解释:转发策略的优先级。 约束限制:不支持更新。 取值范围:不涉及 默认取值:不涉及 不支持该字段,请勿使用。 |
priority | 否 | Integer | 参数解释:转发策略的优先级。数字越小表示优先级越高。 约束限制:
取值范围:
默认取值:
|
project_id | 否 | String | 参数解释:转发策略所在的项目ID。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 |
redirect_listener_id | 否 | String | 参数解释:转发到的listener的ID,当action为REDIRECT_TO_LISTENER时必选。 约束限制:
取值范围:不涉及 默认取值:不涉及 |
redirect_pool_id | 否 | String | 参数解释:转发到pool的ID。 约束限制:
取值范围:不涉及 默认取值:不涉及 |
redirect_url | 否 | String | 参数解释:转发到的url。 约束限制:必须满足格式: protocol://host:port/path?query。 取值范围:不涉及 默认取值:不涉及 |
redirect_url_config | 否 | CreateRedirectUrlConfig object | 参数解释:转发到的url配置。 约束限制:
|
fixed_response_config | 否 | CreateFixtedResponseConfig object | 参数解释:固定返回页面的配置。 约束限制:
|
redirect_pools_extend_config | 否 | 参数解释:转发到的后端服务器组的配置。 约束限制:当action为REDIRECT_TO_POOL时生效。 | |
rules | 否 | Array of CreateL7PolicyRuleOption objects | 参数解释:转发策略关联的转发规则对象。 约束限制:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
protocol | 否 | String | 参数解释:重定向的协议。 约束限制:不涉及 取值范围:
默认取值:${protocol} |
host | 否 | String | 参数解释:重定向的主机名。 约束限制:不涉及 取值范围:字符串只能包含英文字母、数字、“-”、“.”,必须以字母、数字开头。 默认取值:${host},表示继承原值(即与被转发请求保持一致)。 |
port | 否 | String | 参数解释:重定向到的端口。 约束限制:不涉及 取值范围:不涉及 默认取值:${port},表示继承原值(即与被转发请求保持一致)。 |
path | 否 | String | 参数解释:重定向的路径。 约束限制:不涉及 取值范围:只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以"/"开头。其中$1,$2会匹配请求url通配符星号(*) 默认取值:${path},表示继承原值(即与被转发请求保持一致)。 |
query | 否 | String | 参数解释:重定向的查询字符串。举例如下: 将query设置为:${query}&name=my_name,则在转发符合条件的URL(如https://www.example.com:8080/elb?type=loadbalancer)时,将会重定向到https://www.example.com:8080/elb?type=loadbalancer&name=my_name。在例子中${query}表示type=loadbalancer。 约束限制:不涉及 取值范围:只能包含英文字母、数字和特殊字符:!$&'()*+,-./:;=?@^_`。字母区分大小写。其中$1,$2会匹配请求url通配符星号(*) 默认取值:${query}表示继承原值(即与被转发请求保持一致) |
status_code | 是 | String | 参数解释:重定向后的返回码。 约束限制:不涉及 取值范围:
默认取值:不涉及 |
insert_headers_config | 否 | CreateInsertHeadersConfig object | 参数解释:要添加的请求头参数的配置。 约束限制:不涉及 |
remove_headers_config | 否 | CreateRemoveHeadersConfig object | 参数解释:要移除的请求头参数的配置。 约束限制:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
configs | 是 | Array of CreateInsertHeaderConfig objects | 参数解释:要添加请求头、响应头参数列表。 约束限制:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 是 | String | 参数解释:请求头、响应头参数名。 约束限制:不涉及 取值范围:1-40个字符,字母a-z(不区分大小写)、数字,短划线-和下划线_。 默认取值:不涉及 |
value_type | 是 | String | 参数解释:请求头、响应头参数类别。 约束限制:不涉及 取值范围:
默认取值:不涉及 |
value | 是 | String | 参数解释:请求头、响应头参数的值。 约束限制:当value_type为SYSTEM_DEFINED时,value只可从CLIENT-PORT, CLIENT-IP, ELB-PROTOCOL, ELB-ID, ELB-PORT, ELB-EIP, ELB-VIP, TLS-PROTOCOL, TLS-CIPHER, CLIENTCERT-SUBJECTDN, CLIENTCERT-ISSUERDN, CLIENTCERT-FINGERPRINT, CLIENTCERT-CLIENTVERIFY, CLIENTCERT-SERIALNUMBER, CLIENTCERT, CLIENTCERT-CIPHERS, CLIENTCERT-END, TLS-ALPN-PROTOCOL, TLS-SNI, TLS-JA3, TLS-JA4中取值。{TLS-PROTOCOL, TLS-CIPHER, CLIENTCERT-SUBJECTDN, CLIENTCERT-ISSUERDN, CLIENTCERT-FINGERPRINT, CLIENTCERT-CLIENTVERIFY, CLIENTCERT-SERIALNUMBER, CLIENTCERT, CLIENTCERT-CIPHERS, CLIENTCERT-END, TLS-ALPN-PROTOCOL, TLS-SNI, TLS-JA3, TLS-JA4}只有HTTPS、quic协议类型的监听器支持 取值范围:1-128个字符,支持ascii码值32<=ch<=127范围内可打印字符,*和英文问号?。不能以空格开头或结尾。 默认取值:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
configs | 是 | Array of CreateRemoveHeaderConfig objects | 参数解释:要移除的请求头、响应头参数列表。 约束限制:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 是 | String | 参数解释:被移除的请求头的参数名。 约束限制:不能移除以下请求头参数: 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 取值范围:1-40个字符,字母a-z(不区分大小写)、数字,短划线-和下划线_。 默认取值:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
status_code | 是 | String | 参数解释:返回码。 约束限制:不涉及 取值范围:200-299,400-499,500-599。 默认取值:不涉及 |
content_type | 否 | String | 参数解释:返回body的格式。 约束限制:不涉及 取值范围:
默认取值:不涉及 |
message_body | 否 | String | 参数解释:返回消息内容。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
rewrite_url_enable | 否 | Boolean | 参数解释:是否开启url重定向。 |
rewrite_url_config | 否 | CreateRewriteUrlConfig object | 参数解释:URL重定向配置。 约束限制:当action为REDIRECT_TO_POOL的时候生效。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
host | 否 | String | 参数解释:重定向的域名。 约束限制:不涉及 取值范围:英文字母、数字、“-”、“.”,必须以字母、数字开头。 默认取值:${host},表示继承原值(即与被重写请求host保持一致)。 |
path | 否 | String | 参数解释:重定向的请求路径。其中$1-$9会匹配请求url通配符星号(*),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 约束限制:不涉及 取值范围:英文字母、数字、_~';@^-%#&$.+?,=!:|/(),且必须以"/"开头。 默认取值:${path} 表示继承原值(即与被重写请求保持一致)。 |
query | 否 | String | 参数解释:重定向的查询字符串。其中$1-$9会匹配请求url通配符星号(*),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 约束限制:不涉及 取值范围:英文字母、数字和特殊字符:!$&'()+,-./:;=?@^_`。字母区分大小写。 默认取值:${query},表示继承原值(即与被重写请求保持一致)。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
admin_state_up | 否 | Boolean | 参数解释:转发规则的管理状态。 约束限制:只支持设置为true。 取值范围:不涉及 默认取值:不涉及 |
type | 是 | String | 参数解释:转发规则类别。 约束限制:
取值范围:
默认取值:不涉及 |
compare_type | 是 | String | 参数解释:转发匹配方式。 约束限制:
取值范围:
默认取值:不涉及 |
invert | 否 | Boolean | 参数解释:是否反向匹配。 约束限制:不涉及 取值范围:true/false。 默认取值:false。 不支持该字段,请勿使用。 |
key | 否 | String | 参数解释:匹配项的名称,比如转发规则匹配类型是请求头匹配,则key表示请求头参数的名称。 约束限制:不涉及 取值范围:不涉及 默认取值:不涉及 不支持该字段,请勿使用。 |
value | 是 | String | 参数解释:匹配项的值。比如转发规则匹配类型是域名匹配,则value表示域名的值。 约束限制:
取值范围:不涉及 默认取值:不涉及 |
conditions | 否 | Array of CreateRuleCondition objects | 参数解释:转发规则的匹配条件。 约束限制:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 否 | String | 参数解释:匹配项的名称。 约束限制:同一个rule内的conditions列表中所有key必须相同。 取值范围:
默认取值:不涉及 |
value | 是 | String | 参数解释:匹配项的值。 约束限制:
取值范围:
默认取值:不涉及 |
响应参数
状态码: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 | 参数解释:转发策略名称 取值范围:不涉及 |
position | Integer | 参数解释:转发策略的优先级,不支持更新。 不支持该字段,请勿使用。 |
priority | Integer | 参数解释:转发策略的优先级。数字越小表示优先级越高。 取值范围:
|
project_id | String | 参数解释:转发策略所在的项目ID。 取值范围:不涉及 |
provisioning_status | String | 参数解释:转发策略的配置状态。 取值范围:
|
redirect_pool_id | String | 参数解释:转发到pool的ID。 取值范围:不涉及 |
redirect_listener_id | String | 参数解释:转发到的listener的ID。 取值范围:不涉及 |
redirect_url | String | 参数解释:转发到的url。 取值范围:必须满足格式: protocol://host:port/path?query。 不支持该字段,请勿使用。 |
rules | Array of RuleRef objects | 参数解释:转发策略关联的转发规则列表。 |
redirect_url_config | RedirectUrlConfig object | 参数解释:转发到的url配置。 |
redirect_pools_config | Array of RedirectPoolsConfig objects | 参数解释:转发策略服务器组的权重配置。当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 |
redirect_pools_sticky_session_config | 参数解释:配置转发策略关联的服务器组之间会话保持。负载均衡器会根据客户端第一个请求生成一个cookie,后续所有包含这个cookie值的请求都会由同一个pool处理。 | |
redirect_pools_extend_config | RedirectPoolsExtendConfig object | 参数解释:转发到的后端服务器组的配置。 |
fixed_response_config | FixtedResponseConfig object | 参数解释:固定返回页面的配置。 |
created_at | String | 参数解释:创建时间。 取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 |
updated_at | String | 参数解释:更新时间。 取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 |
enterprise_project_id | String | 参数解释:企业项目ID。 取值范围:不涉及 |
参数 | 参数类型 | 描述 |
|---|---|---|
protocol | String | 参数解释:重定向的协议。 取值范围:
|
host | String | 参数解释:重定向的主机名。 取值范围:只能包含英文字母、数字、“-”、“.”。且必须以字母、数字开头。 |
port | String | 参数解释:重定向到的端口。 取值范围:不涉及 |
path | String | 参数解释:重定向的路径。 取值范围:支持英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以"/"开头。 |
query | String | 参数解释:重定向的查询字符串。举例如下: 将query设置为:${query}&name=my_name,则在转发符合条件的URL(如https://www.example.com:8080/elb?type=loadbalancer)时,将会重定向到https://www.example.com:8080/elb?type=loadbalancer&name=my_name。在例子中${query}表示type=loadbalancer。 取值范围:只能包含英文字母、数字和特殊字符:!$&'()*+,-./:;=?@^_`。字母区分大小写。其中$1,$2会匹配请求url通配符星号(*) |
status_code | String | 参数解释:重定向后的返回码。 取值范围:
|
参数 | 参数类型 | 描述 |
|---|---|---|
pool_id | String | 参数解释:所在后端服务器组ID。 取值范围:不涉及 |
weight | Integer | 参数解释:转发策略服务器组的权重。请求将根据该权重进行负载分发到不同的服务器组。权重值越大,分发的请求越多。权重为0的后端不再接受新的请求。 取值范围:0-100 |
参数 | 参数类型 | 描述 |
|---|---|---|
enable | Boolean | 参数解释:转发策略服务器组会话保持开启的开关。 默认取值:false,表示关闭服务器组会话保持。 |
timeout | Integer | 参数解释:会话保持的时间。 取值范围:1-1440(分钟) |
参数 | 参数类型 | 描述 |
|---|---|---|
rewrite_url_enable | Boolean | 参数解释:是否开启url重定向。 取值范围:true 开启,false 未开启。 |
rewrite_url_config | RewriteUrlConfig object | 参数解释:URL重定向配置。 |
参数 | 参数类型 | 描述 |
|---|---|---|
host | String | 参数解释:重定向的域名。 取值范围:英文字母、数字、“-”、“.”,必须以字母、数字开头。 |
path | String | 参数解释:重定向的请求路径。其中$1-$9会匹配请求url通配符星号(*),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 取值范围:英文字母、数字、_~';@^-%#&$.+?,=!:|/(),且必须以"/"开头。 |
query | String | 参数解释:重定向的查询字符串。其中$1-$9会匹配请求url通配符星号(*),当正则匹配分组小于指定数字,则$指定数字结果为空。$后面跟字母,匹配结果均为空,直到下一个特殊字符出现,例如$abc#123,则匹配结果为#123;$后面跟特殊字符则直接输出特殊字符,例如$#匹配结果为$#。 取值范围:英文字母、数字和特殊字符:!$&'()+,-./:;=?@^_`。字母区分大小写。 |
请求示例
创建监听器重定向转发策略
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操作正常返回。
{
"l7policy" : {
"name" : "my policy",
"redirect_pool_id" : null,
"description" : "",
"admin_state_up" : true,
"rules" : [ {
"id" : "a8310d08-6d4c-413a-aa45-7e43f8183193"
} ],
"project_id" : "0c1503d710984bad92306faea3654dfd",
"listener_id" : "8b9d7d2c-49dc-43ba-99f5-3bc476bdf10b",
"redirect_url" : null,
"redirect_url_config" : null,
"redirect_pools_config" : [ {
"weight" : 100,
"pool_id" : "599fdd99-d908-4dff-9db3-15eec274dfed"
} ],
"redirect_pools_sticky_session_config" : {
"enable" : false,
"timeout" : 1000
},
"fixed_response_config" : null,
"redirect_listener_id" : null,
"action" : "REDIRECT_TO_POOL",
"position" : 100,
"priority" : 1,
"provisioning_status" : "ACTIVE",
"id" : "10ebd807-54b1-4f73-a21e-4e7af939d13b",
"enterprise_project_id" : "0",
"created_at" : "2025-04-15T08:36:43Z",
"updated_at" : "2025-04-15T11:49:56Z",
"redirect_pools_extend_config" : {
"rewrite_url_enable" : false,
"rewrite_url_config" : null,
"insert_headers_config" : {
"configs" : [ {
"key" : "test",
"value" : "xxx",
"value_type" : "USER_DEFINED"
} ]
},
"remove_headers_config" : {
"configs" : [ {
"key" : "req-trace-id"
} ]
},
"traffic_limit_config" : null,
"cors_config" : null,
"traffic_mirror_config" : null
}
},
"request_id" : "54961722be349499068aa73a5f91745a"
} 状态码
状态码 | 描述 |
|---|---|
201 | POST操作正常返回。 |
错误码
请参见错误码。

