API 名称:CreateRules。
API 域名:open.volcengineapi.com 。
API 描述:为监听器添加转发规则,将来自不同域名、URL的访问请求转发到不同的服务器组。
节流限制:每秒最多提交 5 个 API 请求。
在使用该部分 API 提交请求时必须包含以下 URI 参数。
除了 URI 参数,该 API 请求还需要包含签名参数。关于更多签名参数的信息,参见公共请求参数。
名称 | 类型 | 是否必选 | 格式 | 说明 |
---|---|---|---|---|
Action | string | 是 | [a-zA-Z]+ | API 名称,如 CreateRules。 |
Version | string | 是 | YYYY-MM-DD | API 版本信息。该参数的取值是 2020-04-01 。 |
X-Expires | int | 否 | 900 | 表示签名的有效时间,单位是秒,默认值是900。 |
在使用该 API 提交请求时,请求参数中可以包含的参数如下。
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
ListenerId | String | 是 | 监听器ID。 | lsn-2fea4ayvu2g3k5oxruuz**** |
Rules | Array | 是 | 配置转发规则相关信息。详见 Rules 。 | - |
Rules
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
Rules.N.Domain | List of Struct | 是 | 转发规则的域名,支持泛域名和精确域名。具体规范如下:
| Rules.1.Domain=*.com&Rules.2.Domain=www.test.com |
Rules.N.Url | List of Struct | 是 | 转发规则的URL,仅支持绝对路径。具体规范如下:
| Rules.1.Url=/&Rules.2.Url=/poo |
Rules.N.RuleAction | List of Struct | 否 | 转发规则动作,目前支持:
| Rules.1.RuleAction=''&Rules.2.RuleAction=Redirect |
Rules.N.ServerGroupId | List of Struct | 否 | 转发到后端服务器组的ID。
| Rules.1.ServerGroupId=rsp-bp1o94dp5i6ea****&Rules.2.ServerGroupId=rsp-2fea4bshkqv4**** |
Rules.N.Description | List of Struct | 否 | 转发规则的描述,默认值为空字符。具体规范如下:
| - |
Rules.N.TrafficLimitEnabled | String | 否 | 转发规则 QPS 限速开关:
| on |
Rules.N.TrafficLimitQPS | Integer | 否 | 当 Rules.N.TrafficLimitEnabled 为 on 时,本字段必选。每秒请求数。取值范围:100~150000。 | 100 |
Rules.N.RewriteEnabled | String | 否 | 转发规则重写配置的开关,仅当RuleAction 为空(即,转发至服务器组)时,允许配置该参数且生效。仅支持白名单用户使用,如需体验,请提交申请。支持取值如下:
| on |
Rules.N.RedirectConfig | Struct | 否 | 转发规则重定向配置,具体可参见下表 RedirectConfig 。 | - |
Rules.N.RewriteConfig | Array | 否 | 转发规则重写配置,具体可参见 RewriteConfig 。 | - |
Rules.N.ForwardGroupConfig | Struct | 否 | 转发规则服务器组配置,具体可参见ForwardGroupConfig。 | - |
RedirectConfig
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
Rules.N.RedirectConfig.RedirectDomain | List of Struct | 否 |
| Rules.1.RedirectConfig.RedirectDomain=*.com&Rules.2.RedirectConfig.RedirectDomain=www.test.com |
Rules.N.RedirectConfig.RedirectUri | List of Struct | 否 |
| Rules.1.RedirectConfig.RedirectUri=/&Rules.2.RedirectConfig.RedirectUri=/poo |
Rules.N.RedirectConfig.RedirectPort | List of Struct | 否 |
| Rules.1.RedirectConfig.RedirectPort=80&Rules.2.RedirectConfig.RedirectPort=443 |
Rules.N.RedirectConfig.RedirectHttpCode | List of Struct | 否 |
| Rules.1.RedirectConfig.RedirectHttpCode=301&Rules.2.RedirectConfig.RedirectHttpCode=302 |
Rules.N.RedirectConfig.RedirectProtocol | List of Struct | 否 |
| Rules.1.RedirectConfig.RedirectProtocol=HTTP&Rules.2.RedirectConfig.RedirectProtocol=HTTPS |
RewriteConfig
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
Rules.N.RewriteConfig.RewritePath | String | 否 |
| Rules.1.RewriteConfig.RewritePath=/{1}/${2}&Rules.2.RewriteConfig.RewritePath=/poo |
ForwardGroupConfig
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
Rules.N.ForwardGroupConfig.ServerGroupTuples.N.ServerGroupId | String | 否 | 转发到后端服务器组的ID。
| Rules.1.ForwardGroupConfig.ServerGroupTuples.2.ServerGroupId=rsp-j7vhgiusf98adf |
Rules.N.ForwardGroupConfig.ServerGroupTuples.N.Weight | Integer | 否 | 转发到对应后端服务器组的权重。取值范围:0~100。如果服务器组数量为1,且未指定此参数时,将默认为100。
| Rules.1.ForwardGroupConfig.ServerGroupTuples.2.Weight=50 |
Rules.N.ForwardGroupConfig.StickySessionEnabled | String | 否 | 是否开启组间会话保持。取值:
| Rules.1.ForwardGroupConfig.StickySessionEnabled=on |
Rules.N.ForwardGroupConfig.StickySessionTimeout | Integer | 否 | 服务器组间会话保持的超时时间。单位:秒。默认值:1000 。取值范围:1 ~ 86400 。 | Rules.1.ForwardGroupConfig.StickySessionTimeout=5000 |
参数 | 类型 | 参数说明 | 示例值 |
---|---|---|---|
RequestId | String | 请求ID。 | 20210811152539010225146063030**** |
RuleIds | List | 转发规则ID。 | ["rule-****","rule- ****"] |
GET /?Action=CreateRules&ListenerId=lsn-1g0puwcxuf****ibuxxw2pmf7&Rules.1.Domain=test.com&Rules.1.ServerGroupId=rsp-3ciynvqsspiww****rsz73tzn&Rules.1.Url=/test&Version=2020-04-01 HTTP/1.1 Host: open.volcengineapi.com Region: cn-beijing ServiceName: alb
{ "ResponseMetadata": { "RequestId": "202108131613570****5146063000AD724", "Action": "CreateRules", "Version": "2020-04-01", "Service": "alb", "Region": "cn-beijing" }, "Result": { "RequestId": "2021081316135****225146063000AD724", "RuleIds": [ "rule-3ciynwk****b46c6rrt4jszkd" ] } }
如果响应正文包含 Error 字段,则表示 API 请求失败。此处仅展示当前 API 的错误码,更多错误码请参见公共错误码。
HTTP Code | 错误码 | 错误信息 | 错误描述 |
---|---|---|---|
400 | InvalidIndexOrder.Malformed | The specified index order is malformed. | 指定的索引顺序参数格式不合法。 |
400 | OperationDenied.AccountArrears | The request on the specified resource is denied due to the account being in arrears status. | 因账号处于欠费状态,对于该资源的操作请求被拒绝。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'Rules'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: Rules。 |
400 | LimitExceed.Rule | You've reached the limit on the number of rules that you can operate at a time. | 已达到单次可操作的转发规则的数量上限。 |
400 | InvalidRules.TrafficLimitEnabled.Malformed | The specified Rules.TrafficLimitEnabled is malformed. | 指定的 Rules.TrafficLimitEnabled 参数格式不合法。 |
400 | InvalidRules.TrafficLimitQPS.Malformed | The specified Rules.TrafficLimitQPS is malformed. | 指定的 Rules.TrafficLimitQPS 参数格式不合法。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'Rules.Domain, Rules.Url'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: Rules.Domain, Rules.Url。 |
400 | OperationDenied.DefaultRule | The request on the specified rule is denied due to the default rule can not be added. | 因默认转发规则不支持人为添加,对于该转发规则的操作请求被拒绝。 |
400 | InvalidRules.Domain.Malformed | The specified Rules.Domain is malformed. | 指定的 Rules.Domain 参数格式不合法。 |
400 | InvalidRules.Url.Malformed | The specified Rules.Url is malformed. | 指定的 Rules.Url 参数格式不合法。 |
400 | InvalidRules.Url.Duplicated | The specified Rules.Url is duplicated. | 指定的 Rules.Url 重复。 |
400 | InvalidRules.Description.Malformed | The specified Rules.Description is malformed. | 指定的 Rules.Description 参数格式不合法。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'Rules.ServerGroupId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: Rules.ServerGroupId。 |
400 | InvalidVpcForServerGroup.LoadBalancerMismatch | The specified VPC of ServerGroup and LoadBalancer do not match. | 指定的服务器组和 ALB 实例的 VPC 不匹配。 |
400 | InvalidServerGroup.InvalidStatus | The specified ServerGroup is not in the correct status for the request. | 指定的服务器组所处状态无法响应该请求。 |
400 | OperationDenied.RewriteEnabledInRedirectAction | The request on the specified Rule is denied due to the rewrite config is not allowed to be configured in redirect action. | 因重定向转发动作不支持重写功能,对于该转发规则的操作请求被拒绝。 |
400 | InvalidRules.RedirectConfig.Malformed | The specified Rules.RedirectConfig is malformed. | 指定的 Rules.RedirectConfig 参数格式不合法。重定向协议与监听器协议一致,域名、端口、URI 至少填写一项。 |
400 | InvalidRules.RedirectConfig.RedirectHttpCode.Malformed | The specified Rules.RedirectConfig.RedirectHttpCode is malformed. | 指定的 Rules.RedirectConfig.RedirectHttpCode 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.RedirectProtocol.Malformed | The specified Rules.RedirectConfig.RedirectProtocol is malformed. | 指定的 Rules.RedirectConfig.RedirectProtocol 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.RedirectDomain.Malformed | The specified Rules.RedirectConfig.RedirectDomain is malformed. | 指定的 Rules.RedirectConfig.RedirectDomain 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.RedirectUri.Malformed | The specified Rules.RedirectConfig.RedirectUri is malformed. | 指定的 Rules.RedirectConfig.RedirectUri 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.RedirectPort.Malformed | The specified Rules.RedirectConfig.RedirectPort is malformed. | 指定的 Rules.RedirectConfig.RedirectPort 参数格式不合法。 |
400 | InvalidRules.RuleAction.Malformed | The specified Rules.RuleAction is malformed. | 指定的 Rules.RuleAction 参数格式不合法。 |
400 | InvalidRules.RewriteEnabled.Malformed | The specified Rules.RewriteEnabled is malformed. | 指定的 Rules.RewriteEnabled 参数格式不合法。 |
400 | InvalidRules.RewriteConfig.RewritePath.Malformed | The specified Rules.RewriteConfig.RewritePath is malformed. | 指定的 Rules.RewriteConfig.RewritePath 参数格式不合法。 |
400 | QuotaExceed.RulePerInstance | You've reached the limit on the number of rules per ALB you can create in, resource xxx, usage xx/xx. | 已达到每个实例可创建转发规则的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.ServerPerInstance | You've reached the limit on the number of backend servers per ALB you can associate with, resource xxx, usage xx/xx. | 已达到每个实例可关联的后端服务器的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.RulePerGroup | You've reached the limit on the number of rules per server group you can associate with, resource xxx, usage xx/xx. | 已达到每个服务器组可关联转发规则的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | InvalidLoadBalancer.InvalidStatus | The related LoadBalancer is not in the correct status for the request. | 关联的 ALB 实例所处状态无法响应该请求。 |
400 | InvalidServerGroup.InvalidStatus | The specified ServerGroup is not in the correct status for the request. | 指定的服务器组所处状态无法响应该请求。 |
400 | OperationDenied.RewriteEnabledInRedirectAction | The request on the specified Rule is denied due to the rewrite config is not allowed to be configured in redirect action. | 因重定向转发动作不支持重写功能,对于该转发规则的操作请求被拒绝。 |
400 | LimitExceed.ServerGroupTuple | You've reached the limit on the number of server group tuples that you can associate with the rule. | 已达到单个转发规则可关联的服务器组的数量上限。 |
400 | InvalidRules.ForwardGroupConfig.ServerGroupTuples.ServerGroupId.Duplicated | The specified Rules.ForwardGroupConfig.ServerGroupTuples.ServerGroupId is duplicated. | 指定的Rules.ForwardGroupConfig.ServerGroupTuples.ServerGroupId重复。 |
400 | InvalidRules.ForwardGroupConfig.Malformed | Either ForwardGroupConfig or ServerGroupID must be specified | 转发规则中 ForwardGroupConfig、ServerGroupID 至少填写一项 |
400 | InvalidRules.ForwardGroupConfig.StickySessionTimeout.Malformed | The specified Rules.ForwardGroupConfig.StickySessionTimeout is malformed. | 指定的 Rules.ForwardGroupConfig.StickySessionTimeout 参数格式不合法。 |
400 | InvalidRules.ForwardGroupConfig.ServerGroupTuples.Weight.Malformed | The specified Rules.ForwardGroupConfig.ServerGroupTuples.Weight is malformed. | 指定的 Rules.ForwardGroupConfig.ServerGroupTuples.Weight 参数格式不合法。 |
400 | InvalidRules.ForwardGroupConfig.StickySessionEnabled.Malformed | The specified Rules.ForwardGroupConfig.StickySessionEnabled is malformed. | 指定的 Rules.ForwardGroupConfig.StickySessionEnabled 参数格式不合法。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'Rules.ForwardGroupConfig.ServerGroupTuples.ServerGroupId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: Rules.ForwardGroupConfig.ServerGroupTuples.ServerGroupId。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'Rules.ForwardGroupConfig.ServerGroupTuples'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: Rules.ForwardGroupConfig.ServerGroupTuples。 |
403 | Forbidden | You are not authorized to configure server group tuples. | 您无权限使用多服务器组功能。 |
403 | Forbidden | You are not authorized to configure traffic limit for rule. | 您无权限对指定转发规则配置限速值。 |
403 | Forbidden | You are not authorized to create rule with regex url. | 您无权限创建正则表达式 url 的转发规则。 |
403 | Forbidden | You are not authorized to configure rewrite for rule. | 您无权限对指定转发规则配置重写。 |
404 | InvalidListener.NotFound | The specified Listener does not exist. | 指定的监听器不存在。 |
404 | InvalidServerGroup.NotFound | The specified ServerGroup does not exist. | 指定的服务器组不存在。 |
409 | InvalidRules.Conflict | The specified Rule already exists. | 指定的转发规则已存在。 |