華為云計(jì)算 云知識(shí) 創(chuàng)建轉(zhuǎn)發(fā)策略CreateL7policy
創(chuàng)建轉(zhuǎn)發(fā)策略CreateL7policy

 

功能介紹

創(chuàng)建轉(zhuǎn)發(fā)策略。監(jiān)聽(tīng)器和轉(zhuǎn)發(fā)策略共同決定了流量如何轉(zhuǎn)發(fā)到后端 云服務(wù)器 上。

  • 通過(guò)匹配action為REDIRECT_TO_POOL的轉(zhuǎn)發(fā)策略下的轉(zhuǎn)發(fā)規(guī)則的url和域名,可以將匹配的流量轉(zhuǎn)發(fā)到指定的后端云服務(wù)器組上,再將流量分發(fā)到在這個(gè)后端云服務(wù)器組關(guān)聯(lián)的后端云服務(wù)器上。
  • 可以通過(guò)創(chuàng)建action為REDIRECT_TO_LISTENER的轉(zhuǎn)發(fā)策略,將HTTP監(jiān)聽(tīng)器的流量都重定向到TERMINATED_HTTPS監(jiān)聽(tīng)器上,實(shí)現(xiàn)請(qǐng)求協(xié)議的重定向。

接口約束

當(dāng)前只支持HTTP協(xié)議跳轉(zhuǎn)到HTTPS協(xié)議。即當(dāng)轉(zhuǎn)發(fā)策略的action為REDIRECT_TO_LISTENER時(shí),轉(zhuǎn)發(fā)策略的listener_id指定的監(jiān)聽(tīng)器只支持HTTP類型的監(jiān)聽(tīng)器,redirect_listener_id指定的監(jiān)聽(tīng)器只支持TERMINATED_HTTPS類型的監(jiān)聽(tīng)器。

轉(zhuǎn)發(fā)策略的redirect_listener只能指定為轉(zhuǎn)發(fā)策略所在 負(fù)載均衡 器下的監(jiān)聽(tīng)器。

調(diào)試

您可以在API Explorer中直接運(yùn)行調(diào)試該接口。

URI

POST /v2/{project_id}/elb/l7policies

表1 參數(shù)說(shuō)明

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

操作用戶的項(xiàng)目ID。

獲取方法詳見(jiàn)獲取項(xiàng)目ID

請(qǐng)求消息

表2 請(qǐng)求參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

l7policy

L7policy object

轉(zhuǎn)發(fā)策略對(duì)象。詳見(jiàn)表3。

表3 l7policy字段說(shuō)明

參數(shù)

是否必選

參數(shù)類型

描述

tenant_id

String

轉(zhuǎn)發(fā)策略所在的項(xiàng)目ID。

獲取方法詳見(jiàn)獲取項(xiàng)目ID。

需要和token中的project_id一致。

支持的最大字符長(zhǎng)度:255

name

String

轉(zhuǎn)發(fā)策略名稱。

支持的最大字符長(zhǎng)度:255

admin_state_up

Boolean

轉(zhuǎn)發(fā)策略的管理狀態(tài);

該字段為預(yù)留字段,暫未啟用。默認(rèn)為true。

description

String

轉(zhuǎn)發(fā)策略的描述信息。

支持的最大字符長(zhǎng)度:255

listener_id

String

轉(zhuǎn)發(fā)策略所在的監(jiān)聽(tīng)器ID。

  • 當(dāng)action為REDIRECT_TO_POOL時(shí),只支持創(chuàng)建在PROTOCOL為HTTP或TERMINATED_HTTPS的listener上;
  • 當(dāng)action為REDIRECT_TO_LISTENER時(shí),只支持創(chuàng)建在PROTOCOL為HTTP的listener上。

action

String

轉(zhuǎn)發(fā)策略的轉(zhuǎn)發(fā)動(dòng)作。

取值范圍:

  • REDIRECT_TO_POOL:將匹配的流量轉(zhuǎn)發(fā)到redirect_pool_id指定的后端云服務(wù)器組上;
  • REDIRECT_TO_LISTENER:將listener_id指定的HTTP監(jiān)聽(tīng)器的流量重定向到redirect_listener_id指定的TERMINATED_HTTPS監(jiān)聽(tīng)器上。

redirect_pool_id

String

流量匹配后轉(zhuǎn)發(fā)到后端云服務(wù)器組的ID。默認(rèn)值:null;

當(dāng)action為REDIRECT_TO_POOL時(shí)為必選字段。

當(dāng)action為REDIRECT_TO_LISTENER時(shí),不可指定該字段。

指定的后端云服務(wù)器組需滿足以下條件:

  • 不能是監(jiān)聽(tīng)器的default_pool;
  • 不能是除該轉(zhuǎn)發(fā)策略所在的監(jiān)聽(tīng)器以外的其他監(jiān)聽(tīng)器的轉(zhuǎn)發(fā)策略使用的后端云服務(wù)器組。

redirect_listener_id

String

流量匹配后轉(zhuǎn)發(fā)到的監(jiān)聽(tīng)器的ID。默認(rèn)值:null;

當(dāng)action為REDIRECT_TO_LISTENER時(shí)為必選字段。

當(dāng)action為REDIRECT_TO_POOL時(shí)不可指定。

  • 只支持指定為protocol為TERMINATED_HTTPS的listener。
  • 只支持指定為當(dāng)前轉(zhuǎn)發(fā)策略所在的負(fù)載均衡器下的監(jiān)聽(tīng)器。

redirect_url

String

轉(zhuǎn)發(fā)策略重定向到的url。默認(rèn)值:null;

該字段為預(yù)留字段,暫未啟用。

支持的最大字符長(zhǎng)度:255

position

Integer

轉(zhuǎn)發(fā)優(yōu)先級(jí),從1遞增,最高100。默認(rèn)值:100;

該字段為預(yù)留字段,暫未啟用。

rules

Array of Rules objects

轉(zhuǎn)發(fā)策略關(guān)聯(lián)的轉(zhuǎn)發(fā)規(guī)則對(duì)象。詳細(xì)參考表4。

rules列表中最多含有2個(gè)rule對(duì)象,且每個(gè)rule的type字段不可相同。

表4 rules字段說(shuō)明

屬性

類型

必選

說(shuō)明

admin_state_up

Boolean

轉(zhuǎn)發(fā)規(guī)則的管理狀態(tài)。

該字段為預(yù)留字段,暫未啟用。默認(rèn)為true。

type

String

轉(zhuǎn)發(fā)規(guī)則的匹配類型。

取值范圍:

  • HOST_NAME:匹配請(qǐng)求中的域名;
  • PATH:匹配請(qǐng)求中的路徑;

同一個(gè)轉(zhuǎn)發(fā)策略下轉(zhuǎn)發(fā)規(guī)則的type不能重復(fù)。

compare_type

String

轉(zhuǎn)發(fā)匹配方式:

type為HOST_NAME時(shí),取值范圍:

  • EQUAL_TO:精確匹配;

type為PATH時(shí),取值范圍:

  • REGEX:正則匹配;
  • STARTS_WITH:前綴匹配;
  • EQUAL_TO:精確匹配。

invert

Boolean

是否反向匹配;

取值范圍:true/false。默認(rèn)值:false;

該字段為預(yù)留字段,暫未啟用。

key

String

匹配內(nèi)容的鍵值。默認(rèn)為null。

該字段為預(yù)留字段,暫未啟用。

value

String

匹配內(nèi)容的值。不能包含空格。

  • 當(dāng)type為HOST_NAME時(shí),取值范圍:String (100),字符串只能包含英文字母、數(shù)字、“-”或“.”,且必須以字母或數(shù)字開(kāi)頭。
  • 當(dāng)type為PATH時(shí),取值范圍:String (128)。當(dāng)轉(zhuǎn)發(fā)規(guī)則的compare_type為STARTS_WITH、EQUAL_TO時(shí),字符串只能包含英文字母、數(shù)字、_~';@^-%#&$.*+?,=!:| \/()[]{},且必須以"/"開(kāi)頭。

響應(yīng)消息

表5 響應(yīng)參數(shù)

參數(shù)

參數(shù)類型

描述

l7policy

L7policy object

轉(zhuǎn)發(fā)策略對(duì)象。詳見(jiàn)表6。

表6 l7policy字段說(shuō)明

參數(shù)

參數(shù)類型

描述

id

String

轉(zhuǎn)發(fā)策略ID。

tenant_id

String

轉(zhuǎn)發(fā)策略所在的項(xiàng)目ID。

project_id

String

此參數(shù)和tenant_id參數(shù)含義一樣,均指轉(zhuǎn)發(fā)策略所在的項(xiàng)目ID。

name

String

轉(zhuǎn)發(fā)策略名稱。

admin_state_up

Boolean

轉(zhuǎn)發(fā)策略的管理狀態(tài);

該字段為預(yù)留字段,暫未啟用。取值范圍:true/false。

  • true表示開(kāi)啟。
  • false表示關(guān)閉。

description

String

轉(zhuǎn)發(fā)策略的描述信息。

listener_id

String

轉(zhuǎn)發(fā)策略所在的監(jiān)聽(tīng)器ID。

action

String

轉(zhuǎn)發(fā)策略的匹配動(dòng)作。

取值范圍:

  • REDIRECT_TO_POOL:將匹配的流量轉(zhuǎn)發(fā)到redirect_pool_id指定的后端云服務(wù)器組上;
  • REDIRECT_TO_LISTENER:將listener_id指定的HTTP監(jiān)聽(tīng)器的流量重定向到redirect_listener_id指定的TERMINATED_HTTPS監(jiān)聽(tīng)器上。

redirect_pool_id

String

流量匹配后轉(zhuǎn)發(fā)到后端云服務(wù)器組的ID。

redirect_listener_id

String

流量匹配后轉(zhuǎn)發(fā)到的監(jiān)聽(tīng)器的ID。

redirect_url

String

轉(zhuǎn)發(fā)策略重定向到的url。

該字段為預(yù)留字段,暫未啟用。

rules

Array of Rules objects

轉(zhuǎn)發(fā)策略關(guān)聯(lián)的轉(zhuǎn)發(fā)規(guī)則的ID列表。詳見(jiàn)表7。

position

Integer

轉(zhuǎn)發(fā)優(yōu)先級(jí),從1遞增,最高100。默認(rèn)值:100;

該字段為預(yù)留字段,暫未啟用。

provisioning_status

String

該字段為預(yù)留字段,暫未啟用。

轉(zhuǎn)發(fā)策略的配置狀態(tài),可以為ACTIVE。

表7 rules字段說(shuō)明

參數(shù)

參數(shù)類型

描述

id

String

關(guān)聯(lián)的轉(zhuǎn)發(fā)規(guī)則id

請(qǐng)求示例

  • 請(qǐng)求樣例1 創(chuàng)建轉(zhuǎn)發(fā)策略,轉(zhuǎn)發(fā)到后端云服務(wù)器組
    POST https://{Endpoint}/v2/573d73c9f90e48d0bddfa0eb202b25c2/elb/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"
                }
            ]
        }
    }
  • 請(qǐng)求樣例2 創(chuàng)建重定向
    POST https://{Endpoint}/v2/573d73c9f90e48d0bddfa0eb202b25c2/elb/l7policies
    
    {
        "l7policy": {
            "action": "REDIRECT_TO_LISTENER", 
            "listener_id": "4ef8553e-9ef7-4859-a42d-919feaf89d60", 
            "redirect_listener_id": "3ee10199-a7b4-4784-93cd-857afe9d0890", 
            "name": "redirect-test"
        }
    }

響應(yīng)示例

  • 響應(yīng)樣例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"
        }
    }
  • 響應(yīng)樣例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", 
            "project_id": "573d73c9f90e48d0bddfa0eb202b25c2", 
            "id": "bc4e4338-480f-4a98-8245-5bb1964f0e1d", 
            "name": "redirect-test"
        }
    }

返回碼

請(qǐng)參見(jiàn)狀態(tài)碼