创建转发策略
功能介绍
创建七层转发策略。
接口约束
-
只支持七层监听器配置转发策略。
调用方法
请参见如何调用API。
URI
POST /v3/{project_id}/elb/l7policies
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 参数解释:项目ID。 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| 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配置。 约束限制:
取值范围:格式:protocol://host:port/path?query protocol、host、port、path不允许同时不传或同时传${xxx} (${xxx}表示原值,如${host}表示被转发的请求URL的host部分)。 protocol和port传入的值不能与l7policy关联的监听器一致且host、path同时不传或同时传${xxx}。 |
| 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 | 参数解释:请求头参数名。 约束限制:不能是以下字符: 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(不区分大小写)、数字,短划线-和下划线_。 |
| value_type | 是 | String | 参数解释:请求头参数类别。 取值范围:USER_DEFINED,REFERENCE_HEADER,SYSTEM_DEFINED。 |
| value | 是 | String | 参数解释:请求头参数的值。 约束限制:当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 | 参数解释:被移除的请求头的参数名。 约束限制:不能移除以下请求头参数: 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的格式。 取值范围:
默认取值:text/plain |
| 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。 约束限制:当action为REDIRECT_TO_POOL时生效。 |
| 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配置。 约束限制:
取值范围:格式:protocol://host:port/path?query protocol、host、port、path不允许同时不传或同时传${xxx} (${xxx}表示原值,如${host}表示被转发的请求URL的host部分)。 protocol和port传入的值不能与l7policy关联的监听器一致且host、path同时不传或同时传${xxx}。 |
| redirect_pools_extend_config | RedirectPoolsExtendConfig object | 参数解释:转发到的后端主机组的配置。 约束限制:当action为REDIRECT_TO_POOL时生效。 |
| 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 | 参数解释:重定向的主机名。 取值范围:只能包含英文字母、数字、“-”、“.”。且必须以字母、数字开头。 默认取值:${host} 表示继承原值(即与被转发请求保持一致)。 |
| port | String | 参数解释:重定向到的端口。 默认取值:默认值${port}表示继承原值(即与被转发请求保持一致)。 |
| path | String | 参数解释:重定向的路径。 取值范围:支持英文字母、数字、_~';@^-%#&$.*+?,=!:|\/()[]{},且必须以"/"开头。 默认取值:${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 | 参数解释:重定向后的返回码。 取值范围:
|
| 参数 | 参数类型 | 描述 |
|---|---|---|
| rewrite_url_enable | Boolean | 参数解释:是否开启url重定向。 |
| rewrite_url_config | RewriteUrlConfig 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},表示继承原值(即与被重写请求保持一致)。 |
请求示例
创建监听器重定向转发策略
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操作正常返回。 |
错误码
请参见错误码。