调用 CreateRules 接口,为指定HTTP/HTTPS监听器添加转发规则,用于将访问不同域名或不同URL的请求转发到不同的后端服务器组。
下表中,a.N.b类型类型参数中的“N”表示转发规则的序号,取值范围为1 ~ 50。多个转发规则间请使用“&”分隔。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateRules | 要执行的操作,取值为CreateRules。 |
Version | String | 是 | 2020-04-01 | API版本信息,当前版本为:2020-04-01。 |
ListenerId | String | 是 | lsn-2fea4ayvu2g3k5oxruuz**** | 监听器ID。 |
Rules.N.Domain | String | 否 | Rules.1.Domain=*.com&Rules.2.Domain=www.test.com | 转发规则的域名,支持泛域名和精确域名。规范如下:
说明
|
Rules.N.Url | String | 否 | Rules.1.Url=/&Rules.2.Url=/poo | 转发规则的URL,仅支持绝对路径。规范如下:
说明
|
Rules.N.ActionType | String | 否 | Rules.1.ActionType=Forward&Rules.2.ActionType=Redirect | 转发规则的转发动作。取值如下:
说明 该参数取值为 |
Rules.N.ServerGroupId | String | 否 | Rules.1.ServerGroupId=rsp-bp1o94dp5i6ea****&Rules.2.ServerGroupId=rsp-2fea4bshkqv405oxruuz4**** | 转发规则关联的后端服务器组的ID。您可以调用DescribeServerGroups接口获取后端服务器组ID。 说明 参数 |
Rules.N.RedirectConfig.Protocol | String | 否 | Rules.1.RedirectConfig.Protocol=HTTP&Rules.2.RedirectConfig.Protocol=HTTPS | 转发规则重定向的协议。取值如下:
说明 参数 |
Rules.N.RedirectConfig.Host | String | 否 | Rules.1.RedirectConfig.Host=www.test.com&Rules.2.RedirectConfig.Host=www.lb.com | 转发规则重定向的域名,当前仅支持精确域名。规范如下:
说明 参数 |
Rules.N.RedirectConfig.Path | String | 否 | Rules.1.RedirectConfig.Path=/test&Rules.2.RedirectConfig.Path=/abc | 转发规则重定向的路径。规范如下:
说明 参数 |
Rules.N.RedirectConfig.Port | String | 否 | Rules.1.RedirectConfig.Port=80&Rules.2.RedirectConfig.Port=443 | 转发规则重定向的端口,取值范围为 1~65535。 说明 参数 |
Rules.N.RedirectConfig.StatusCode | String | 否 | Rules.1.RedirectConfig.StatusCode=301&Rules.2.RedirectConfig.StatusCode=302 | 转发规则重定向的状态码。取值如下:
说明 参数 |
Rules.N.Description | String | 否 | This is a rule. | 转发规则的描述,默认值为空字符串。规范如下:
|
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
RequestId | String | 2021081316135705146063000AD724**** | 请求ID。 |
RuleIds | Array | ["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 | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidDefaultRule.UnSupportAction | The specified Default Rule does not support this action. | 指定的默认转发规则不支持当前操作。 |
400 | InvalidDescription.Malformed | The specified Description is malformed. | 指定的 Description 参数格式不合法。 |
400 | InvalidIncorrectOrder.Malformed | The specified index order is malformed. | 指定的索引顺序参数格式不合法。 |
400 | InvalidListenerServerGroup.UnSupportAction | The specified Listener does not support this action. | 指定的监听器未绑定默认后端服务器组,不支持当前操作。 |
400 | InvalidLoadBalancer.InvalidStatus | The specified LoadBalancer is not in the correct status for the request. | 指定的负载均衡所处状态无法响应该请求。 |
400 | InvalidProtocol.ListenerMismatch | The specified Protocol and Listener are not matched. | 指定的协议与监听器不匹配。 |
400 | InvalidQuotaCode.Malformed | The specified QuotaCode is malformed. | 指定的 QuotaCode 参数格式不合法。 |
400 | InvalidRuleRedirectConfig.ActionTypeMismatch | The specified RedirectConfig not match with ActionType. | 指定的重定向配置与转发类型不一致。 |
400 | InvalidRules.ActionType.Malformed | The specified Rules.ActionType is malformed. | 指定的 Rules.ActionType 参数格式不合法。 |
400 | InvalidRules.Domain.Malformed | The specified Rules.Domain is malformed. | 指定的 Rules.Domain 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.Host.Malformed | The specified Rules.RedirectConfig.Host is malformed. | 指定的 Rules.RedirectConfig.Host 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.Path.Malformed | The specified Rules.RedirectConfig.Path is malformed. | 指定的 Rules.RedirectConfig.Path 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.Port.Malformed | The specified Rules.RedirectConfig.Port is malformed. | 指定的 Rules.RedirectConfig.Port 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.Protocol.Malformed | The specified Rules.RedirectConfig.Protocol is malformed. | 指定的 Rules.RedirectConfig.Protocol 参数格式不合法。 |
400 | InvalidRules.RedirectConfig.StatusCode.Malformed | The specified Rules.RedirectConfig.StatusCode is malformed. | 指定的 Rules.RedirectConfig.StatusCode 参数格式不合法。 |
400 | InvalidRules.URL.Malformed | The specified Rules.URL is malformed. | 指定的 Rules.URL 参数格式不合法。 |
400 | InvalidServerGroup.ActionTypeMismatch | The specified ServerGroup not match with ActionType. | 指定的后端服务器组与转发类型不一致。 |
400 | InvalidServerGroup.UnSupportAction | The specified ServerGroup does not support this action. | 指定的后端服务器组不支持当前操作。 |
400 | QuotaExceed.RuleNumberEachListener | You've reached the limit on the number of Rule that you can associate. | 已达到监听器可关联的转发规则的数量的配额上限{_tag_}。 |
400 | UnsupportedOperation.AccountArrears | The request on the specified instance is denied due to the account in arrears status. | 因账户处于欠费状态,对于该实例的操作请求被拒绝。 |
403 | Forbidden | You are not authorized to perform operations on the specified service. | 无权限对指定服务进行操作。 |
403 | InvalidResourceType.ServcieManaged | The specified ResourceType is managed by a service. | 指定的资源是服务托管资源。 |
404 | InvalidExclusiveCluster.NotFound | The specified ExclusiveCluster does not exist. | 指定的独占集群不存在。 |
404 | InvalidListener.NotFound | The specified Listener does not exist. | 指定的监听器不存在。 |
404 | InvalidLoadBalancer.NotFound | The specified LoadBalancer does not exist. | 指定的负载均衡不存在。 |
404 | InvalidRule.NotFound | The specified Rule does not exist. | 指定的转发规则不存在。 |
404 | InvalidServerGroup.NotFound | The specified ServerGroup does not exist. | 指定的后端服务器组不存在。 |
409 | InvalidRule.Conflict | The specified Rule already exists. | 指定的转发规则已存在。 |
412 | InvalidExclusiveCluster.Expired | The specified ExclusiveCluster has expired. | 指定的独占集群已过期。 |
412 | InvalidExclusiveCluster.UnPurchased | The specified ExclusiveCluster is not purchased. | 指定的独占集群未购买。 |
412 | InvalidLoadBalancer.Expired | The specified LoadBalancer has expired. | 指定的负载均衡已过期。 |