如果您的业务需要根据请求的属性(域名、路径等)或请求中包含的数据信息(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> |
否 |
转发策略配置信息。 |
||
| Priority |
integer |
否 |
转发策略优先级。 取值范围:1~10000。值越小表示优先级越高。 |
1 |
| RuleConditions |
array<object> |
是 |
转发条件列表。 |
|
|
array<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> |
是 |
转发动作。 |
|
|
array<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 |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
返回信息列表。 |
||
| RequestId |
string |
请求 ID。 |
64ADAB1E-0B7F-4FD8-A404-3BECC0E9CCFF |
| ForwardingRules |
array<object> |
转发策略信息。 |
|
|
object |
转发策略信息。 |
||
| ForwardingRuleId |
string |
转发策略 ID。 |
frule-bp1dii16gu9qdvb34**** |
示例
正常返回示例
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. | 路径和域名数量超过限制 |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。