如果您的業務需要根據請求的屬性(網域、路徑等)或請求中包含的資料資訊(HTTP標頭、Cookie等)來進行流量分發和處理,您可以自訂監聽的轉發規則。監聽會根據轉發規則對存取請求執行不同的轉發動作。您可以透過呼叫CreateForwardingRules介面建立轉發規則。
介面說明
在您呼叫本介面建立轉發規則前,建議您先了解轉發規則原理及比對規則。更多資訊,請參見轉發策略。
呼叫本介面時,請注意以下事項:
-
CreateForwardingRules 介面屬於非同步介面,即系統會先回傳一個轉發策略 ID,但轉發策略並未建立完成,系統後台的建立任務仍在進行。您可以呼叫 ListForwardingRules 查詢轉發策略的狀態:
-
當轉發策略處於 configuring 狀態時,表示轉發策略正在建立中,在該狀態下,您只能執行查詢操作,不能執行其他操作。
-
當轉發策略處於 active 狀態時,表示轉發策略建立完成。
-
-
CreateForwardingRules 介面不支援在同一個全球加速執行個體內併發建立轉發策略。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
|
操作 |
存取層級 |
資源類型 |
條件關鍵字 |
關聯操作 |
|
ga:CreateForwardingRules |
create |
*Listener
*Accelerator
|
無 | 無 |
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| RegionId |
string |
是 |
全球加速執行個體所屬的地域 ID,僅取值:cn-hangzhou。 |
cn-hangzhou |
| ClientToken |
string |
否 |
用戶端 Token,用於保證請求的冪等性。 從您的用戶端產生一個參數值,確保不同請求間該參數值唯一。ClientToken 只支援 ASCII 字元。 說明
若您未指定,則系統自動使用 API 請求的 RequestId 作為 ClientToken 標識。每次 API 請求的 RequestId 不一樣。 |
02fb3da4**** |
| AcceleratorId |
string |
是 |
全球加速執行個體 ID。 |
ga-bp17frjjh0udz4q**** |
| ListenerId |
string |
是 |
監聽執行個體 ID。 |
lsr-bp1s0vzbi5bxlx5**** |
| ForwardingRules |
array<object> |
是 |
轉發策略設定資訊。 |
|
|
array<object> |
否 |
轉發策略設定資訊。 |
||
| ForwardingRuleName |
string |
否 |
轉發策略名稱。長度為 2~128 個英文或中文字元,必須以大小寫字母或中文開頭,可包含數字、半形句號(.)、底線(_)和短橫線(-)。 |
test |
| Priority |
integer |
否 |
轉發策略優先順序。 取值範圍:1~10000。值越小表示優先順序越高。 |
1 |
| RuleActions |
array<object> |
是 |
轉發動作。 |
|
|
array<object> |
否 |
轉發動作。 |
||
| ForwardGroupConfig |
object |
否 |
轉發設定。 說明
不建議使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 設定轉發動作。 |
|
| ServerGroupTuples |
array<object> |
是 |
終端節點群組設定。 說明
不建議使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 設定轉發動作。 |
|
|
object |
是 |
終端節點群組設定。 說明
不建議使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 設定轉發動作。 |
||
| EndpointGroupId |
string |
是 |
終端節點群組 ID。 說明
不建議使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 設定轉發動作。 |
epg-bp1nktp3qgbcq9ih6**** |
| Order |
integer |
是 |
轉發優先順序。 說明
目前無實際意義,無需設定。 |
20 |
| RuleActionType |
string |
是 |
轉發動作類型。取值:
|
ForwardGroup |
| RuleActionValue |
string |
否 |
轉發動作類型對應的值。 根據 RuleActionType 傳入不同的 JSON 字串值。 一個轉發規則最多只能有一條 ForwardGroup、Redirect、FixResponse 類型的轉發動作。Rewrite、AddHeader、RemoveHeader 類型的轉發動作順序必須在 ForwardGroup 類型的轉發動作之前。
|
[{"type":"endpointgroup","value":"epg-bp1l49ltx6iengvf2ks5z****"}] |
| RuleConditions |
array<object> |
是 |
轉發條件清單。 |
|
|
array<object> |
否 |
轉發條件清單。 |
||
| HostConfig |
object |
否 |
網域設定資訊。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
|
| Values |
array |
否 |
網域設定。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
|
|
string |
否 |
網域。網域長度為 3~128 個字元,允許包含字母、數字、短橫線(-)和半形句號(.),支援使用星號(*)和半形問號(?)作為萬用字元。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
example.com |
|
| PathConfig |
object |
否 |
路徑設定資訊。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
|
| Values |
array |
否 |
路徑設定。 路徑長度為 1~128 個字元,必須以正斜線(/)開頭,只允許包含字母、數字、美元符號($)、短橫線(-)、底線(_)、半形句號(.)、加號(+)、正斜線(/)、and(&)、波浪線(~)、at(@)、半形冒號(:)、半形單引號('),支援使用星號(*)和半形問號(?)作為萬用字元。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
|
|
string |
否 |
路徑設定。 路徑長度為 1~128 個字元,必須以正斜線(/)開頭,只允許包含字母、數字、美元符號($)、短橫線(-)、底線(_)、半形句號(.)、加號(+)、正斜線(/)、and(&)、波浪線(~)、at(@)、半形冒號(:)、半形單引號('),支援使用星號(*)和半形問號(?)作為萬用字元。 說明
不建議使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 設定轉發條件。 |
/test |
|
| RuleConditionType |
string |
否 |
轉發條件類型。取值:
枚舉值:
|
Host |
| RuleConditionValue |
string |
否 |
轉發條件類型對應的值。 根據 RuleConditionType 傳入不同的 JSON 字串值。
|
["www.example.com", "www.aliyun.com"] |
| RuleDirection |
string |
否 |
規則生效方向。無需設定。 目前預設為 request,表示請求方向生效。 |
request |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
回傳資訊清單。 |
||
| ForwardingRules |
array<object> |
轉發策略資訊。 |
|
|
object |
轉發策略資訊。 |
||
| ForwardingRuleId |
string |
轉發策略 ID。 |
frule-bp1dii16gu9qdvb34**** |
| RequestId |
string |
請求 ID。 |
64ADAB1E-0B7F-4FD8-A404-3BECC0E9CCFF |
樣本
正常返回樣本
JSON格式
{
"ForwardingRules": [
{
"ForwardingRuleId": "frule-bp1dii16gu9qdvb34****"
}
],
"RequestId": "64ADAB1E-0B7F-4FD8-A404-3BECC0E9CCFF"
}
錯誤碼
|
HTTP status code |
錯誤碼 |
錯誤資訊 |
描述 |
|---|---|---|---|
| 400 | NotExist.Listener | The listener does not exist. | |
| 400 | NotActive.Listener | The state of the listener is not active. | |
| 400 | NotExist.Accelerator | The accelerated instance does not exist. | |
| 400 | StateError.Accelerator | The state of the accelerated instance is invalid. | |
| 400 | NotExist.BusinessRegion | The business region does not exist. | |
| 400 | NotExist.BasicBandwidthPackage | You must specify the basic bandwidth package. | |
| 400 | QuotaExceeded.EndPoint | The maximum number of endpoints is exceeded. | |
| 400 | Exist.EndpointGroup | The endpoint group already exists. | |
| 400 | NoPermission.VpcEndpoint | You are not authorized to perform the operation. | |
| 400 | QuotaExceeded.ForwardingRule | The number of forwarding rule exceeds the limit. | |
| 400 | SystemBusy | System busy, please try again later. | |
| 400 | RepeatPathAndHost.ForwardingRule | The path and host %s are duplicated. | |
| 400 | QuotaExceeded.RuleConditionConfig | The number of paths and hosts exceeds the limit. |
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。