创建转发策略
功能介绍
创建转发策略。监听器和转发策略共同决定了流量如何转发到后端云服务器上。
- 通过匹配action为REDIRECT_TO_POOL的转发策略下的转发规则的url和域名,可以将匹配的流量转发到指定的后端云服务器组上,再将流量分发到在这个后端云服务器组关联的后端云服务器上。
- 可以通过创建action为REDIRECT_TO_LISTENER的转发策略,将HTTP监听器的流量都重定向到TERMINATED_HTTPS监听器上,实现请求协议的重定向。
接口约束
当前只支持HTTP协议跳转到HTTPS协议。即当转发策略的action为REDIRECT_TO_LISTENER时,转发策略的listener_id指定的监听器只支持HTTP类型的监听器,redirect_listener_id指定的监听器只支持TERMINATED_HTTPS类型的监听器。
转发策略的redirect_listener只能指定为转发策略所在负载均衡器下的监听器。
URI
POST /v2.0/lbaas/l7policies
请求消息
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
l7policy |
是 |
Object |
转发策略对象。详见表2。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
tenant_id |
否 |
String |
转发策略所在的项目ID。 需要和token中的tenant_id一致。 支持的最大字符长度:255 |
project_id |
否 |
String |
此参数和tenant_id参数含义一样,均指转发策略所在的项目ID。 需要和token中的project_id一致。 |
name |
否 |
String |
转发策略名称。 支持的最大字符长度:255 |
admin_state_up |
否 |
Boolean |
转发策略的管理状态; 该字段为预留字段,暂未启用。默认为true。 |
description |
否 |
String |
转发策略的描述信息。 支持的最大字符长度:255 |
listener_id |
是 |
String |
转发策略所在的监听器ID。
|
action |
是 |
String |
转发策略的转发动作。 取值范围:
|
redirect_pool_id |
否 |
String |
流量匹配后转发到后端云服务器组的ID。默认值:null; 当action为REDIRECT_TO_POOL时为必选字段。 当action为REDIRECT_TO_LISTENER时,不可指定该字段。 指定的后端云服务器组需满足以下条件:
|
redirect_listener_id |
否 |
String |
流量匹配后转发到的监听器的ID。默认值:null; 当action为REDIRECT_TO_LISTENER时为必选字段。 当action为REDIRECT_TO_POOL时不可指定。
|
redirect_url |
否 |
String |
转发策略重定向到的url。默认值:null; 该字段为预留字段,暂未启用。 支持的最大字符长度:255 |
position |
否 |
Integer |
转发优先级,从1递增,最高100。默认值:100; 该字段为预留字段,暂未启用。 |
rules |
否 |
Array |
转发策略关联的转发规则对象。详细参考表3。 rules列表中最多含有2个rule对象,且每个rule的type字段不可相同。 |
属性 |
必选 |
类型 |
说明 |
---|---|---|---|
admin_state_up |
否 |
Boolean |
转发规则的管理状态。 该字段为预留字段,暂未启用。默认为true。 |
type |
是 |
String |
转发规则的匹配类型。 取值范围:
同一个转发策略下转发规则的type不能重复。 |
compare_type |
是 |
String |
转发匹配方式: type为HOST_NAME时,取值范围:
type为PATH时,取值范围:
|
invert |
否 |
Boolean |
是否反向匹配; 取值范围:true/false。默认值:false; 该字段为预留字段,暂未启用。 |
key |
否 |
String |
匹配内容的键值。默认为null。 该字段为预留字段,暂未启用。 |
value |
是 |
String |
匹配内容的值。不能包含空格。
|
响应消息
参数 |
参数类型 |
描述 |
---|---|---|
l7policy |
Object |
转发策略对象。详见表5。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
转发策略ID。 |
tenant_id |
String |
转发策略所在的项目ID。 |
project_id |
String |
此参数和tenant_id参数含义一样,均指转发策略所在的项目ID。 |
name |
String |
转发策略名称。 |
admin_state_up |
Boolean |
转发策略的管理状态; 该字段为预留字段,暂未启用。取值范围:true/false。
|
description |
String |
转发策略的描述信息。 |
listener_id |
String |
转发策略所在的监听器ID。 |
action |
String |
转发策略的匹配动作。 取值范围:
|
redirect_pool_id |
String |
流量匹配后转发到后端云服务器组的ID。 |
redirect_listener_id |
String |
流量匹配后转发到的监听器的ID。 |
redirect_url |
String |
转发策略重定向到的url。 该字段为预留字段,暂未启用。 |
rules |
Array |
转发策略关联的转发规则的ID列表。详见表6 |
position |
Integer |
转发优先级,从1递增,最高100。默认值:100; 该字段为预留字段,暂未启用。 |
provisioning_status |
String |
该字段为预留字段,暂未启用。 转发策略的配置状态,可以为ACTIVE。 |
请求示例
- 请求样例1 创建转发策略,转发到后端云服务器组
POST https://{Endpoint}/v2.0/lbaas/l7policies { "l7policy": { "name": "niubiao_yaqing_api-2", "listener_id": "3e24a3ca-11e5-4aa3-abd4-61ba0a8a18f1", "action": "REDIRECT_TO_POOL", "redirect_pool_id": "6460f13a-76de-43c7-b776-4fefc06a676e", "rules": [ { "type": "PATH", "compare_type": "EQUAL_TO", "value": "/test" }, { "type": "HOST_NAME", "compare_type": "EQUAL_TO", "value": "www.test.com" } ] } }
响应示例
- 响应样例1
{ "l7policy": { "redirect_pool_id": "6460f13a-76de-43c7-b776-4fefc06a676e", "description": "", "admin_state_up": true, "rules": [ { "id": "742600d9-2a14-4808-af69-336883dbb590" }, { "id": "3251ed77-0d52-412b-9310-733636bb3fbf" } ], "tenant_id": "573d73c9f90e48d0bddfa0eb202b25c2", "listener_id": "3e24a3ca-11e5-4aa3-abd4-61ba0a8a18f1", "redirect_url": null, "redirect_listener_id": null, "action": "REDIRECT_TO_POOL", "position": 100, "provisioning_status": "ACTIVE", "project_id": "573d73c9f90e48d0bddfa0eb202b25c2", "id": "65d6e115-f179-4bcd-9bbb-1484e5f8ee81", "name": "niubiao_yaqing-_api-2" } }
返回码
请参见状态码。