Adding a Forwarding Policy¶
Function¶
This API is used to add a forwarding policy. The listener and forwarding policy determine how traffic is forwarded to backend servers.
By matching the URL or domain name specified in the forwarding policy when action is set to REDIRECT_TO_POOL, the load balancer distributes the traffic to backend servers in a specific backend server group.
When action is set to REDIRECT_TO_LISTENER, the HTTP listener is redirected to an HTTPS listener, and requests are routed by the HTTPS listener.
Constraints¶
Currently, only redirects from an HTTP listener to an HTTPS listener are supported. When action is set to REDIRECT_TO_LISTENER, the listener specified by listener_id can only be an HTTP listener, and the listener specified by redirect_listener_id can only be an HTTPS listener.
The load balancer of the HTTPS listener to which traffic is redirected must be the same as that of the HTTP listener.
URI¶
POST /v2.0/lbaas/l7policies
Request¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
l7policy | Yes | Object | Specifies the forwarding policy. For details, see Table 2. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
tenant_id | No | String | Specifies the ID of the project where the forwarding policy is used. The value must be the same as the value of tenant_id in the token. The value contains a maximum of 255 characters. |
name | No | String | Specifies the forwarding policy name. The value contains a maximum of 255 characters. |
admin_state_up | No | Boolean | Specifies the administrative status of the forwarding policy. This parameter is reserved, and the default value is true. |
description | No | String | Provides supplementary information about the forwarding policy. The value contains a maximum of 255 characters. |
listener_id | Yes | String | Specifies the ID of the listener to which the forwarding policy is added.
|
action | Yes | String | Specifies whether requests are forwarded to another backend server group or redirected to an HTTPS listener. The value can be one of the following:
|
redirect_pool_id | No | String | Specifies the ID of the backend server group to which traffic is forwarded. The default value is null. This parameter is mandatory when action is set to REDIRECT_TO_POOL. This parameter cannot be specified when action is set to REDIRECT_TO_LISTENER. The backend server group must meet the following requirements:
|
redirect_listener_id | No | String | Specifies the ID of the listener to which the traffic is redirected. The default value is null. This parameter cannot be specified when action is set to REDIRECT_TO_POOL. This parameter is mandatory when action is set to REDIRECT_TO_LISTENER, and the listener must meet the following requirements:
|
redirect_url | No | String | Specifies the URL to which traffic is redirected. The default value is null. This parameter is reserved. The value contains a maximum of 255 characters. |
position | No | Integer | Specifies the forwarding priority. The value ranges from 1 to 100. The default value is 100. This parameter is reserved. |
rules | No | Array | Lists the forwarding rules of the forwarding policy. For details, see Table 3. The list contains a maximum of two rules, and the type parameter of each rule must be unique. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
admin_state_up | No | Boolean | Specifies the administrative status of the forwarding rule. This parameter is reserved, and the default value is true. |
type | Yes | String | Specifies the match type of a forwarding rule. The value range varies depending on the protocol of the backend server group:
The match type of forwarding rules in a forwarding policy must be unique. |
compare_type | Yes | String | Specifies the match mode. The options are as follows: When type is set to HOST_NAME, the value of this parameter can only be the following:
When type is set to PATH, the value of this parameter can be one of the following:
|
invert | No | Boolean | Specifies whether reverse matching is supported. The value can be true or false. The default value is false. This parameter is reserved. |
key | No | String | Specifies the key of the match content. The default value is null. This parameter is reserved. |
value | Yes | String | Specifies the value of the match content. The value cannot contain spaces.
|
Response¶
Parameter | Type | Description |
---|---|---|
id | String | Specifies the forwarding policy ID. |
tenant_id | String | Specifies the ID of the project where the forwarding policy is used. |
name | String | Specifies the forwarding policy name. |
admin_state_up | Boolean | Specifies the administrative status of the forwarding policy. This parameter is reserved. The value can be true or false.
|
description | String | Provides supplementary information about the forwarding policy. |
listener_id | String | Specifies the ID of the listener to which the forwarding policy is added. |
action | String | Specifies whether requests are forwarded to another backend server group or redirected to an HTTPS listener. The value can be one of the following:
|
redirect_pool_id | String | Specifies the ID of the backend server group to which traffic is forwarded. |
redirect_listener_id | String | Specifies the ID of the listener to which the traffic is redirected. |
redirect_url | String | Specifies the URL to which traffic is redirected. This parameter is reserved. |
rules | Array | Lists the forwarding rules of the forwarding policy. For details, see Table 6. |
position | Integer | Specifies the forwarding priority. The value ranges from 1 to 100. The default value is 100. This parameter is reserved. |
provisioning_status | String | This parameter is reserved, and its value can only be ACTIVE. It specifies the provisioning status of the forwarding policy. |
Parameter | Type | Description |
---|---|---|
id | String | Lists the IDs of the forwarding rules in the forwarding policy. |
Example Request¶
Example request 1: Adding a forwarding policy
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" } ] } }
Example request 2: Creating a redirect
POST https://{Endpoint}/v2.0/lbaas/l7policies { "l7policy": { "action": "REDIRECT_TO_LISTENER", "listener_id": "4ef8553e-9ef7-4859-a42d-919feaf89d60", "redirect_listener_id": "3ee10199-a7b4-4784-93cd-857afe9d0890", "name": "redirect-test" } }
Example Response¶
Example response 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", "id": "65d6e115-f179-4bcd-9bbb-1484e5f8ee81", "name": "niubiao_yaqing-_api-2" } }
Example response 2
{ "l7policy": { "redirect_pool_id": null, "description": "", "admin_state_up": true, "rules": [ ], "tenant_id": "573d73c9f90e48d0bddfa0eb202b25c2", "listener_id": "4ef8553e-9ef7-4859-a42d-919feaf89d60", "redirect_url": null, "redirect_listener_id": "3ee10199-a7b4-4784-93cd-857afe9d0890", "action": "REDIRECT_TO_LISTENER", "position": 100, "provisioning_status": "ACTIVE", "id": "bc4e4338-480f-4a98-8245-5bb1964f0e1d", "name": "redirect-test" } }
Status Code¶
For details, see HTTP Status Codes of Shared Load Balancers.