如果您的业务需要根据请求的属性(域名、路径等)或请求中包含的数据信息(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-11-15 | OpenAPI 错误码发生变更 | 查看变更详情 |
2024-04-22 | OpenAPI 错误码发生变更 | 查看变更详情 |
2023-04-20 | OpenAPI 错误码发生变更 | 查看变更详情 |