如果您的業務需要根據請求的屬性(域名、路徑等)或請求中包含的數據信息(HTTP標頭、Cookie等)來進行流量分發和處理,您可以自定義監聽的轉發規則。監聽會根據轉發規則對訪問請求執行不同的轉發動作。您可以通過調用CreateForwardingRules接口創建轉發規則。
接口說明
在您調用本接口創建轉發規則前,建議您先了解轉發規則原理及匹配規則。更多信息,請參見轉發策略。
調用本接口時,請注意以下事項:
-
CreateForwardingRules 接口屬于異步接口,即系統會先返回一個轉發策略 ID,但轉發策略并未創建完成,系統后臺的創建任務仍在進行。您可以調用 ListForwardingRules 查詢轉發策略的狀態:
-
當轉發策略處于 configuring 狀態時,表示轉發策略正在創建中,在該狀態下,您只能執行查詢操作,不能執行其他操作。
-
當轉發策略處于 active 狀態時,表示轉發策略創建完成。
-
-
CreateForwardingRules 接口不支持在同一個全球加速實例內并發創建轉發策略。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
ga:CreateForwardingRules | create | *Listener acs:ga:{#regionId}:{#accountId}:listener/{#listenerId} *Accelerator acs:ga:{#regionId}:{#accountId}:ga/{#acceleratorId} |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
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> | 是 | 轉發策略配置信息。 | |
object | 是 | 轉發策略配置信息。 | ||
Priority | integer | 否 | 轉發策略優先級。 取值范圍:1~10000。值越小表示優先級越高。 | 1 |
RuleConditions | array<object> | 是 | 轉發條件列表。 | |
object | 否 | 轉發條件列表。 | ||
RuleConditionType | string | 否 | 轉發條件類型。取值:
| Host |
RuleConditionValue | string | 否 | 轉發條件類型對應的值。 根據 RuleConditionType 傳入不同的 JSON 字符串值。
| ["www.example.com", "www.aliyun.com"] |
PathConfig | object | 否 | 路徑配置信息。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| |
Values | array | 否 | 路徑配置。 路徑長度為 1~128 個字符,必須以正斜線(/)開頭,只允許包含字母、數字、美元符號($)、短劃線(-)、下劃線(_)、半角句號(.)、加號(+)、正斜線(/)、and(&)、波浪線(~)、at(@)、半角冒號(:)、半角單引號('),支持使用星號(*)和半角問號(?)作為通配符。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| |
string | 否 | 路徑配置。 路徑長度為 1~128 個字符,必須以正斜線(/)開頭,只允許包含字母、數字、美元符號($)、短劃線(-)、下劃線(_)、半角句號(.)、加號(+)、正斜線(/)、and(&)、波浪線(~)、at(@)、半角冒號(:)、半角單引號('),支持使用星號(*)和半角問號(?)作為通配符。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| /test | |
HostConfig | object | 否 | 域名配置信息。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| |
Values | array | 否 | 域名配置。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| |
string | 否 | 域名。域名長度為 3~128 個字符,允許包含字母、數字、短劃線(-)和半角句號(.),支持使用星號(*)和半角問號(?)作為通配符。 說明
不推薦使用該參數,建議直接使用 RuleConditionType 和 RuleConditionValue 配置轉發條件。
| example.com | |
RuleActions | array<object> | 是 | 轉發動作。 | |
object | 否 | 轉發動作。 | ||
Order | integer | 是 | 轉發優先級。 說明
當前無實際意義,無需配置。
| 20 |
RuleActionType | string | 是 | 轉發動作類型。取值:
| ForwardGroup |
RuleActionValue | string | 否 | 轉發動作類型對應的值。 根據 RuleActionType 傳入不同的 JSON 字符串值。 一個轉發規則最多只能有一條 ForwardGroup、Redirect、FixResponse 類型的轉發動作。Rewrite、AddHeader、RemoveHeader 類型的轉發動作順序必須在 ForwardGroup 類型的轉發動作之前。
| [{"type":"endpointgroup","value":"epg-bp1l49ltx6iengvf2ks5z****"}] |
ForwardGroupConfig | object | 否 | 轉發配置。 說明
不推薦使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 配置轉發動作。
| |
ServerGroupTuples | array<object> | 是 | 終端節點組配置。 說明
不推薦使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 配置轉發動作。
| |
object | 是 | 終端節點組配置。 說明
不推薦使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 配置轉發動作。
| ||
EndpointGroupId | string | 是 | 終端節點組 ID。 說明
不推薦使用該參數,建議直接使用 RuleActionType 和 RuleActionValue 配置轉發動作。
| epg-bp1nktp3qgbcq9ih6**** |
ForwardingRuleName | string | 否 | 轉發策略名稱。長度為 2~128 個英文或中文字符,必須以大小寫字母或中文開頭,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。 | test |
RuleDirection | string | 否 | 規則生效方向。無需配置。 目前默認為 request,表示請求方向生效。 | request |
返回參數
示例
正常返回示例
JSON
格式
{
"RequestId": "64ADAB1E-0B7F-4FD8-A404-3BECC0E9CCFF",
"ForwardingRules": [
{
"ForwardingRuleId": "frule-bp1dii16gu9qdvb34****"
}
]
}
錯誤碼
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. | 業務region并不存在 |
400 | NotExist.BasicBandwidthPackage | You must specify the basic bandwidth package. | 缺少基礎帶寬包 |
400 | QuotaExceeded.EndPoint | The maximum number of endpoints is exceeded. | 終端節點達到Quota限制 |
400 | Exist.EndpointGroup | The endpoint group already exists. | 終端節點組已存在 |
400 | NoPermission.VpcEndpoint | You are not authorized to perform the operation. | 用戶沒有創建服務關聯角色的權限,請聯系主賬號或權限管理員授權當前用戶AliyunGlobalAccelerationFullAccess或者創建服務關聯角色的自定義權限。自定義權限策略的相關信息包含以下內容:ServiceName為vpcendpoint.ga.aliyuncs.com,服務關聯角色名稱為AliyunServiceRoleForGaVpcEndpoint,執行該操作所需的用戶權限為ram:CreateServiceLinkedRole。 |
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. | 路徑和域名數量超過限制 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-04-22 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2023-04-20 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |