You need to enable JavaScript to run this app.
导航
CreateRules
最近更新时间:2024.10.21 14:07:13首次发布时间:2021.08.31 10:37:28

调用 CreateRules 接口,为指定HTTP/HTTPS监听器添加转发规则,用于将访问不同域名或不同URL的请求转发到不同的后端服务器组。

使用说明

  • 每个HTTP/HTTPS监听器中最多可添加50个转发规则,默认转发规则不计入在内。
  • 调用一次接口最多可以添加50个转发规则。

调试

请求参数

下表中,a.N.b类型类型参数中的“N”表示转发规则的序号,取值范围为1 ~ 50。多个转发规则间请使用“&”分隔。

名称
类型
是否必选
示例值
描述
ActionStringCreateRules要执行的操作,取值为CreateRules。
VersionString2020-04-01API版本信息,当前版本为:2020-04-01。

ListenerId

String

lsn-2fea4ayvu2g3k5oxruuz****

监听器ID。
您可以调用DescribeListeners接口,查询监听器ID。

Rules.N.Domain

String

Rules.1.Domain=*.com&Rules.2.Domain=www.test.com

转发规则的域名,支持泛域名和精确域名。规范如下:

  • 需至少包含一个‘.’,且不允许以‘.’开头或结尾。
  • 仅允许包含字母、数字、‘.’、‘-‘、‘*’。
  • 长度限制为1 ~ 128个字符。
  • 泛域名:使用“*”代替1个或多个字符。
    • “*”必须在域名开头或结尾。
    • 同一条域名中“*”不能出现两次。
    • “*”前后不能有除了.以外的字符。
    • 合法示例:*.com、www.test.*。
    • 非法示例:*aaa.com、www.*.com
  • 精确域名:符合域名规范的精确域名,例如:www.test.com。

说明

Rules.N.DomainRules.N.Url两者至少需指定一个,且Rules.N.DomainRules.N.Url的组合在同一个监听器内必须唯一。

Rules.N.Url

String

Rules.1.Url=/&Rules.2.Url=/poo

转发规则的URL,仅支持绝对路径。规范如下:

  • 必须以正斜线“/”开头。
  • 仅允许包含字母、数字、‘-’、‘_’、‘/’、‘.’、‘%’、‘?’、‘#’、‘&’、‘=’等字符。
  • 字符‘/’不能连续出现。
  • 长度限制为1 ~ 128个字符。
  • 若指定Domain,则Url不传入数值时,默认为“/”。

说明

  • Rules.N.DomainRules.N.Url两者至少需指定一个,且Rules.N.DomainRules.N.Url的组合在同一个监听器内必须唯一。
  • Rules.N.Domain设置为空时,Rules.N.Url不允许只为正斜线“/”。

Rules.N.ActionType

String

Rules.1.ActionType=Forward&Rules.2.ActionType=Redirect

转发规则的转发动作。取值如下:

  • Forward:转发至。
  • Redirect:重定向至。

说明

该参数取值为Redirect且参数Rules.N.RedirectConfig.Protocol与该转发规则所属监听器协议相同时,参数Rules.N.RedirectConfig.HostRules.N.RedirectConfig.PathRules.N.RedirectConfig.Port不能均为空。

Rules.N.ServerGroupId

String

Rules.1.ServerGroupId=rsp-bp1o94dp5i6ea****&Rules.2.ServerGroupId=rsp-2fea4bshkqv405oxruuz4****

转发规则关联的后端服务器组的ID。您可以调用DescribeServerGroups接口获取后端服务器组ID。

说明

参数Rules.N.ActionType取值为Forward时,该参数为必填。

Rules.N.RedirectConfig.Protocol

String

Rules.1.RedirectConfig.Protocol=HTTP&Rules.2.RedirectConfig.Protocol=HTTPS

转发规则重定向的协议。取值如下:

  • HTTP
  • HTTPS(默认值)

说明

参数Rules.N.ActionType取值为Redirect时,不传入该参数或该参数不传入数值,则默认为HTTPS。

Rules.N.RedirectConfig.Host

String

Rules.1.RedirectConfig.Host=www.test.com&Rules.2.RedirectConfig.Host=www.lb.com

转发规则重定向的域名,当前仅支持精确域名。规范如下:

  • 需至少包含一个‘.’,且不允许以‘.’开头或结尾。
  • 仅允许包含字母、数字、‘.’、‘-‘。
  • 长度限制为1 ~ 128个字符。
  • 符合域名规范的精确域名,例如:www.test.com。

说明

参数Rules.N.ActionType取值为Redirect时,不传入该参数或该参数不传入数值,则默认为空字符串,实际转发时与请求域名保持一致。

Rules.N.RedirectConfig.Path

String

Rules.1.RedirectConfig.Path=/test&Rules.2.RedirectConfig.Path=/abc

转发规则重定向的路径。规范如下:

  • 必须以正斜线“/”开头,字符‘/’不能连续出现。
  • 仅允许包含字母、数字、‘-’、‘_’、‘/’、‘.’、‘%’、‘?’、‘#’、‘&’、‘=’等字符。
  • 长度限制为1 ~ 128个字符。

说明

参数Rules.N.ActionType取值为Redirect时,不传入该参数或该参数不传入数值,则默认为空字符串,实际转发时与请求路径保持一致。

Rules.N.RedirectConfig.Port

String

Rules.1.RedirectConfig.Port=80&Rules.2.RedirectConfig.Port=443

转发规则重定向的端口,取值范围为 1~65535。

说明

参数Rules.N.ActionType取值为Redirect时,不传入该参数或该参数不传入数值,则默认为空字符串,实际转发时与请求端口保持一致。

Rules.N.RedirectConfig.StatusCode

String

Rules.1.RedirectConfig.StatusCode=301&Rules.2.RedirectConfig.StatusCode=302

转发规则重定向的状态码。取值如下:

  • 301(默认):表示请求的资源已被永久移动到新的 URL,客户端应该使用新的 URL 进行后续请求。
  • 302:表示请求的资源被临时移动到新的 URL,但未来可能会再次更改,客户端应该使用新的 URL 进行后续请求。
  • 307:与 302 类似,但在重定向时要求客户端保持请求方法不变。例如,原来是 GET 请求,则重定向后仍然是 GET 请求。
  • 308:与 301 类似,但在重定向时要求客户端保持请求方法不变。

说明

参数Rules.N.ActionType取值为Redirect时,不传入该参数或该参数不传入数值,则默认为301。

Rules.N.Description

String

This is a rule.

转发规则的描述,默认值为空字符串。规范如下:

  • 必须以字母、数字或中文开头,可包含字母、数字、中文及以下特殊字符:英文逗号(,)、点号(.)、下划线(_)、空格( )、等号(=)、中划线(-)、中文逗号(,)、中文句号(。)。
  • 长度限制为0 ~ 255个字符。

返回参数

名称
类型
示例值
描述
RequestIdString2021081316135705146063000AD724****请求ID。
RuleIdsArray["rule-2fegss1cplxxc5oxruvvq****","rule-3ciynwkb46c6rrt4jszkd****"]转发规则ID。

请求示例

GET /?Action=CreateRules&Version=2020-04-01&ListenerId=lsn-2fea4ayvu2g3k5oxruuz****&Rules.1.Domain=test.com&Rules.1.ServerGroupId=rsp-bp1o94dp5i6ea****&Rules.1.Url=/test HTTP/1.1
Host: open.volcengineapi.com
Region: cn-beijing
Service: clb

返回示例

{
    "ResponseMetadata": {
        "RequestId": "2021081316135705146063000AD724****",
        "Action": "CreateRules",
        "Version": "2020-04-01",
        "Service": "clb",
        "Region": "cn-beijing"
    },
    "Result": {
        "RequestId": "2021081316135705146063000AD724****",
        "RuleIds": [
            "rule-2fegss1cplxxc5oxruvvq****",
            "rule-3ciynwkb46c6rrt4jszkd****"
        ]
    }
}

错误码

下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。

HttpCode
错误码
错误信息
描述
400InvalidDefaultRule.UnSupportActionThe specified Default Rule does not support this action.指定的默认转发规则不支持当前操作。
400InvalidDescription.MalformedThe specified Description is malformed.指定的 Description 参数格式不合法。
400InvalidIncorrectOrder.MalformedThe specified index order is malformed.指定的索引顺序参数格式不合法。
400InvalidListenerServerGroup.UnSupportActionThe specified Listener does not support this action.指定的监听器未绑定默认后端服务器组,不支持当前操作。
400InvalidLoadBalancer.InvalidStatusThe specified LoadBalancer is not in the correct status for the request.指定的负载均衡所处状态无法响应该请求。
400InvalidProtocol.ListenerMismatchThe specified Protocol and Listener are not matched.指定的协议与监听器不匹配。
400InvalidQuotaCode.MalformedThe specified QuotaCode is malformed.指定的 QuotaCode 参数格式不合法。
400InvalidRuleRedirectConfig.ActionTypeMismatchThe specified RedirectConfig not match with ActionType.指定的重定向配置与转发类型不一致。
400InvalidRules.ActionType.MalformedThe specified Rules.ActionType is malformed.指定的 Rules.ActionType 参数格式不合法。
400InvalidRules.Domain.MalformedThe specified Rules.Domain is malformed.指定的 Rules.Domain 参数格式不合法。
400InvalidRules.RedirectConfig.Host.MalformedThe specified Rules.RedirectConfig.Host is malformed.指定的 Rules.RedirectConfig.Host 参数格式不合法。
400InvalidRules.RedirectConfig.Path.MalformedThe specified Rules.RedirectConfig.Path is malformed.指定的 Rules.RedirectConfig.Path 参数格式不合法。
400InvalidRules.RedirectConfig.Port.MalformedThe specified Rules.RedirectConfig.Port is malformed.指定的 Rules.RedirectConfig.Port 参数格式不合法。
400InvalidRules.RedirectConfig.Protocol.MalformedThe specified Rules.RedirectConfig.Protocol is malformed.指定的 Rules.RedirectConfig.Protocol 参数格式不合法。
400InvalidRules.RedirectConfig.StatusCode.MalformedThe specified Rules.RedirectConfig.StatusCode is malformed.指定的 Rules.RedirectConfig.StatusCode 参数格式不合法。
400InvalidRules.URL.MalformedThe specified Rules.URL is malformed.指定的 Rules.URL 参数格式不合法。
400InvalidServerGroup.ActionTypeMismatchThe specified ServerGroup not match with ActionType.指定的后端服务器组与转发类型不一致。
400InvalidServerGroup.UnSupportActionThe specified ServerGroup does not support this action.指定的后端服务器组不支持当前操作。
400QuotaExceed.RuleNumberEachListenerYou've reached the limit on the number of Rule that you can associate.已达到监听器可关联的转发规则的数量的配额上限{_tag_}。
400UnsupportedOperation.AccountArrearsThe request on the specified instance is denied due to the account in arrears status.因账户处于欠费状态,对于该实例的操作请求被拒绝。
403ForbiddenYou are not authorized to perform operations on the specified service.无权限对指定服务进行操作。
403InvalidResourceType.ServcieManagedThe specified ResourceType is managed by a service.指定的资源是服务托管资源。
404InvalidExclusiveCluster.NotFoundThe specified ExclusiveCluster does not exist.指定的独占集群不存在。
404InvalidListener.NotFoundThe specified Listener does not exist.指定的监听器不存在。
404InvalidLoadBalancer.NotFoundThe specified LoadBalancer does not exist.指定的负载均衡不存在。
404InvalidRule.NotFoundThe specified Rule does not exist.指定的转发规则不存在。
404InvalidServerGroup.NotFoundThe specified ServerGroup does not exist.指定的后端服务器组不存在。
409InvalidRule.ConflictThe specified Rule already exists.指定的转发规则已存在。
412InvalidExclusiveCluster.ExpiredThe specified ExclusiveCluster has expired.指定的独占集群已过期。
412InvalidExclusiveCluster.UnPurchasedThe specified ExclusiveCluster is not purchased.指定的独占集群未购买。
412InvalidLoadBalancer.ExpiredThe specified LoadBalancer has expired.指定的负载均衡已过期。