
# 创建转发策略
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ELB&api=CreateL7policy&version=v2)中直接运行调试该接口。
#### 接口格式
| 方法   | URI                    | 说明      |
|:---|:---|:---|
| POST | /v2.0/lbaas/l7policies | 创建转发策略。 |
   
#### 应用场景
应用转发策略并结合转发规则，可以实现将不同请求转发到特定后端云服务器（或云服务器组）的功能。
举例来说，云平台的某用户部署的若干服务器都向互联网提供服务。提供的资源主要有音乐类（/music/{music_id}）、图片类（/pic/{pic_id}）、文件类（/file/{file_id}）。如果没有特定的转发策略，那么每台后端云服务器上都有所有资源的副本文件。但一个来自客户端的请求，永远只会被分发到一台后端云服务器，所以只会有一个副本被调用，用户在存储上的成本随着后端云服务器的增多而成倍增长。
ELB服务提供的转发策略和转发规则特性可以很好地解决这个问题，达到节约存储成本的目的，使客户获得更好的经济利益。
#### 接口约束
- L7policy只支持创建在PROTOCOL为HTTP或TERMINATED_HTTPS的listener上。
- L7policy的redirect_pool不能是listener的default_pool。
- L7policy的redirect_pool不能已经被其他listener的l7policy所使用。
 
#### 场景假设
假设客户的弹性负载均衡器loadbalancer_1内有listener_1和3个后端云服务器组pool_1、pool_2和pool_3，其中pool_1作为listener_1的默认转发pool，pool_2和pool_3仅关联在loadbalancer_1上。现在需要将URI 以"/music"开头的HTTP请求到pool_2，将"/pic"开头的HTTP请求转发到pool_3。
#### 具体步骤
由于对URI匹配，需要进行HTTP消息解析，所以创建的listener_1、pool_2和pool_3的监听协议都应该选择HTTP或HTTPS。
1. 创建后端协议为HTTP的listener_1。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/listeners
   {
       "listener": {
           "protocol_port": "80",
           "protocol": "HTTP",
           "loadbalancer_id": "abe3ee34-1882-408f-a2ba-1ce7e428d6e3",
           "name": "listener_1",
           "admin_state_up": true
       }
   }
   ```
   
   
2. 创建后端协议为HTTP的pool_1。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/
   { 
     "pool": { 
     "name":"pool_1",
       "lb_algorithm": "ROUND_ROBIN", 
       "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", 
       "protocol": "HTTP", 
       "admin_state_up": true 
     } 
   }
   ```
   
   
3. 创建后端协议为HTTP的pool_2。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/
   { 
     "pool": { 
     "name":"pool_2",
       "lb_algorithm": "ROUND_ROBIN", 
       "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", 
       "protocol": "HTTP", 
       "admin_state_up": true 
     } 
   }
   ```
   
   
4. 创建后端协议为HTTP的pool_3。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/pools/
   { 
     "pool": { 
     "name":"pool_3",
       "lb_algorithm": "ROUND_ROBIN", 
       "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c", 
       "protocol": "HTTP", 
       "admin_state_up": true 
     } 
   }
   ```
   
   
5. 创建到pool_2的转发策略。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/l7policies
   { 
       "l7policy": { 
           "action": "REDIRECT_TO_POOL",  
           "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c",  
           "redirect_pool_id": "b9a01911-8364-44d8-ab5a-4f635820edb2",  
           "name": "l7policy_music",  
           "admin_state_up": true 
       } 
   }
   ```
   
   
6. 创建的到pool_3的转发策略。 
   ```
   POST https://elb.cn-east-2.myhuaweicloud.com/v2.0/lbaas/l7policies
   { 
       "l7policy": { 
           "action": "REDIRECT_TO_POOL",  
           "listener_id": "a7b996cf-23ec-4c0b-b310-45495d29f80c",  
           "redirect_pool_id": "3a9b8338-3086-4acc-92e6-83c5e750e44a",  
           "name": "l7policy_pic",  
           "admin_state_up": true 
       } 
   }
   ```
   
   
7. 查看创建的转发策略。此时的转发策略并不会匹配任何请求，因为没有具体的转发规则，需要结合转发规则来实现对不同URI请求的转发。 
   
   
   
 
