调用CreateRules创建多条转发规则。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateRules

要执行的操作。

取值:CreateRules

ListenerId String lsr-bp1bpn0kn908w4nbw****

负载均衡实例监听ID。

ClientToken String 5A2CFF0E-5718-45B5-9D4D-70B3FF3898

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。

DryRun Boolean true

是否只预检此次请求,取值:

true:发送检查请求,不会创建资源。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码DryRunOperation

false(默认值):发送正常请求,通过检查后返回HTTP_2xx状态码并直接进行操作。

Rules Array

转发规则列表。

Priority Integer 10

规则优先级,取值为1~10000。值越小表示优先级越高。

说明 同一个监听内规则优先级必须唯一。
RuleActions Array

规则动作列表。

FixedResponseConfig Object

固定响应内容配置。

Content String dssacav

返回的固定内容。最大1 KB字节,只支持ASCII字符。

ContentType String text/plain

返回固定内容的格式。

取值:text/plaintext/csstext/htmlapplication/javascriptapplication/json

HttpCode String 200

返回的HTTP响应码,仅支持HTTP_2xxHTTP_4xxHTTP_5xx数字型字符串,x为任意数字。

ForwardGroupConfig Object

转发动作对应的配置。

ServerGroupTuples Array

转发到的目的服务器组列表。

ServerGroupId String sg-xxxxx

转发到的目的服务器组。

InsertHeaderConfig Object

写入头字段配置。

Key String key

写入的头字段名称,长度为1~40个字符,支持大小写字母a~z、数字、下划线(_)和短划线(-)。头字段名称不能重复用于InsertHeader

说明 不允许将头字段设为以下字段:

不区分大小写::slb-id、slb-ip、x-forwarded-for、x-forwarded-proto、x-forwarded-eip、x-forwarded-port、x-forwarded-client-srcport、connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority。

Value String ClientSrcPort

插入的头字段内容:

取值类型为系统定义

  • ClientSrcPort:客户端端口。
  • ClientSrcIp:客户端IP地址。
  • Protocol:客户端请求的协议(http或https)。
  • SLBId:应用型负载均衡实例ID。
  • SLBPort:应用型负载均衡实例监听端口。

取值类型为用户定义:长度限制为1~128个字符,支持通配符星号(*)和半角问号(?),以及ASCII码值ch >= 32 && ch < 127范围内的可打印字符,其中字母只支持小写字母,开头和结尾不能为空格。

取值类型为引用:长度限制为1~128个字符,支持小写字母a~z、数字、短划线(-)和下划线(_)。

ValueType String ClientSrcPort

取值类型:

  • UserDefined:用户指定。
  • ReferenceHeader:引用用户请求头中的某一个字段。
  • SystemDefined:系统定义。
Order Integer 1

转发规则动作执行的顺序,取值为1~50000,按值从小到大执行动作。值不能为空,不能重复。

RedirectConfig Object

外部重定向配置。

Host String ww.ali.com

要跳转的主机地址。

取值范围:

  • 主机名长度为3~128个字符,支持小写字母a~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和问号(?)。
  • 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。
  • 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。
  • 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签l的任意位置。

默认值:${host},不支持和其他字符同时使用。

HttpCode String 301

跳转方式,取值为301302303307308

Path String /test

要跳转的路径。

取值范围:长度为1~128个字符,以正斜线(/)开头,支持字母、数字、$-_.+/&~@:,不支持“%#;!()[]^,” ,大小写敏感。同时支持通配符星号(*)和半角问号(?)。

默认值:${path}, 也可以引用${host}${protocol}${port},每个变量最多出现一次。上述变量可以同时使用,也可以和合法取值范围内的字符串同时使用。

Port String 10

要跳转的端口。

取值范围:1~63335

默认值:${port},不支持和其他字符同时使用。

Protocol String HTTP

要跳转的协议。

取值范围:HTTPHTTPS

默认值:${protocol},不支持和其他字符同时使用。

说明 HTTPS监听仅支持跳转HTTPS协议。
Query String quert

要跳转的查询字符串。

取值范围:长度为1~128个字符,支持小写字母和可见字符,不支持 #[]{}\|<>&

默认值:${query}, 也可以引用${host}${protocol}${port},每个变量最多出现一次。上述变量可以同时使用,也可以和合法取值范围内的字符串同时使用。

RewriteConfig Object

内部重定向。

Host String www.al.com

内部跳转的目的主机地址。

取值范围:

  • 主机名长度为3~128个字符,支持小写字母a~z、数字、短划线(-)、半角句点(.)以及通配符星号(*)和半角问号(?)。
  • 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。
  • 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。
  • 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签l的任意位置。

默认值:${host},不支持和其他字符同时使用。

Path String /tsdf

内部跳转的目的路径。

取值范围:长度为1~128个字符,以正斜线(/)开头,支持字母、数字、$-_.+/&~@:,不支持“%#;!()[]^,” ,大小写敏感。同时支持通配符星号(*)和半角问号(?)。

默认值:${path},最多出现一次。可以和合法取值范围内的字符串同时使用。

Query String quedsa

内部跳转的查询字符串。

取值范围:长度为1~128个字符,支持小写字母和可见字符,不支持 #[]{}\|<>&

默认值:${query}, 最多出现一次。可以和合法取值范围内的字符串同时使用。

Type String ForwardGroup

动作类型,取值:

  • ForwardGroup:转发至多个虚拟服务器组。
  • Redirect:重定向。
  • FixedResponse:返回固定内容。
  • Rewrite:重写。
  • InsertHeader:写入头字段。

类型:

FinalType:一个转发规则的动作中仅能有一项FinalType的动作并且最后执行,只能包含一项ForwardGroupRedirect、或FixedResponse

ExtType:一个转发规则可以有一项或多项此类ExtType的动作,在FianlType的动作之前执行,且需要与FinalType并存。包含多项InsertHeader一项Rewrite

RuleConditions Array

转发规则条件。

CookieConfig Object

Cookie条件配置。

Values Array

Cookie值。

Key String test

Cookie键,长度为1~100个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

Value String test

Cookie值,长度为1~128个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

HeaderConfig Object

头字段配置。

Key String Port

头字段键,长度为1~40个字符。支持字母a~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。

Values Array of String 5006

头字段值。长度为1~128个字符。支持ASCII码值ch >= 32 && ch < 127范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。开头和结尾不能为空格。

HostConfig Object

主机配置。

Values Array of String www.test.com

主机名。

取值范围:

  • 主机名长度为3~128个字符,支持小写字母a~z、数字、短划线(-)、英文句点(.)以及通配符星号(*)和半角问号(?)。
  • 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。
  • 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。
  • 短划线(-)不能出现在其它域标签的开头或结尾。通配符星号(*)和半角问号(?)可以出现在域标签l的任意位置。
MethodConfig Object

请求方法配置。

Values Array of String PUT

请求方法。

取值:HEADGETPOSTOPTIONSPUTPATCHDELETE

PathConfig Object

转发路径配置。

Values Array of String /test

转发路径。

取值范围:长度为1~128个字符,以正斜线(/)开头,支持字母、数字、$-_.+/&~@:,不支持“%#;!()[]^,” ,大小写敏感。同时支持通配符星号(*)和半角问号(?)。

QueryStringConfig Object

查询字符串条件配置。

Values Array

查询字符串条件。

Key String test

查询字符串键。

长度为1~100个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

Value String test

查询字符串值。

长度为1~128个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

ResponseHeaderConfig Object

标头条件配置。

Key String Port

头字段键,长度为1~40个字符。支持字母a~z、数字、短划线(-)和下划线(_)。不支持Cookie和Host。

Values Array of String 5006

头字段值。长度为1~128个字符。支持ASCII码值ch >= 32 && ch < 127范围内可打印字符、小写字母以及通配符星号(*)和半角问号(?)。开头和结尾不能为空格。

Type String Host

转发规则类型。取值:

  • Host:主机。
  • Path:路径。
  • Header:HTTP头字段。
  • QueryString:查询字符串。
  • Method:请求方法。
  • Cookie:Cookie。
RuleName String rule-doc****

转发规则名称。 长度为2~128个英文或中文字符,必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。

返回数据

名称 类型 示例值 描述
JobId String 72dcd26b-f12d-4c27-b3af-18f6aed5****

异步任务ID。

RequestId String 365F4154-92F6-4AE4-92F8-7FF34B540710

请求ID。

RuleIds Array of RuleId

转发规则列表。

RuleId String rule-doc****

转发规则列表ID。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateRules
&ListenerId=lsr-bp1bpn0kn908w4nbw****
&ClientToken=5A2CFF0E-5718-45B5-9D4D-70B3FF3898
&DryRun=true
&Rules=[{"Priority":10,"RuleActions":[{"FixedResponseConfig":{"Content":"dssacav","ContentType":"text/plain","HttpCode":"200"},"ForwardGroupConfig":{"ServerGroupTuples":[{"ServerGroupId":"sg-xxxxx"}]},"InsertHeaderConfig":{"Key":"key","Value":"ClientSrcPort","ValueType":"ClientSrcPort"},"Order":1,"RedirectConfig":{"Host":"ww.ali.com","HttpCode":"301","Path":"/test","Port":"10","Protocol":"HTTP","Query":"quert"},"RewriteConfig":{"Host":"www.al.com","Path":"/tsdf","Query":"quedsa"},"Type":"ForwardGroup"}],"RuleConditions":[{"CookieConfig":{"Values":[{"Key":"test","Value":"test"}]},"HeaderConfig":{"Key":"Port","Values":["5006"]},"HostConfig":{"Values":["www.test.com"]},"MethodConfig":{"Values":["PUT"]},"PathConfig":{"Values":["/test"]},"QueryStringConfig":{"Values":[{"Key":"test","Value":"test"}]},"ResponseHeaderConfig":{"Key":"Port","Values":["5006"]},"Type":"Host"}],"RuleName":"rule-doc****"}]
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateRulesResponse>
    <JobId>72dcd26b-f12d-4c27-b3af-18f6aed5****</JobId>
    <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>
    <RuleIds>
        <RuleId>rule-doc****</RuleId>
    </RuleIds>
</CreateRulesResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "JobId" : "72dcd26b-f12d-4c27-b3af-18f6aed5****",
  "RequestId" : "365F4154-92F6-4AE4-92F8-7FF34B540710",
  "RuleIds" : {
    "RuleId" : "rule-doc****"
  }
}

错误码

HttpCode 错误码 错误信息 描述
400 IncorrectStatus.Listener The status of %s [%s] is incorrect. 资源%s [%s]的状态无效。
400 OperationDenied.IpGroupCanNotUsedForMirrorAction The operation is not allowed because of %s. 操作被拒绝,原因是%s。
400 OperationDenied.SameGroupForForwardAndMirrorAction The operation is not allowed because of %s. 操作被拒绝,原因是%s。
400 OperationDenied.GRPCServerGroup The operation is not allowed because of %s. 操作被拒绝,原因是%s。
400 Conflict.Priority There is already %s having the same configuration with %s. %s冲突,已经存在同配置的%s。
400 ResourceQuotaExceeded.LoadBalancerRulesNum The quota of %s is exceeded for resource %s, usage %s/%s. 配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
400 ResourceQuotaExceeded.ServerGroupAttachedNum The quota of %s is exceeded for resource %s, usage %s/%s. 配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
400 ResourceQuotaExceeded.LoadBalancerServersNum The quota of %s is exceeded for resource %s, usage %s/%s. 配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
400 ResourceQuotaExceeded.ServerAddedNum The quota of %s is exceeded for resource %s, usage %s/%s. 配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
400 QuotaExceeded.RuleWildcardsNum The quota of %s is exceeded, usage %s/%s. 配额%s已超额度限制,目前已使用%s,配额为%s。
400 QuotaExceeded.RuleMatchEvaluationsNum The quota of %s is exceeded, usage %s/%s. 配额%s已超额度限制,目前已使用%s,配额为%s。
400 QuotaExceeded.RuleActionsNum The quota of %s is exceeded, usage %s/%s. 配额%s已超额度限制,目前已使用%s,配额为%s。
400 Mismatch.VpcId The %s is mismatched for %s and %s. %s在%s和%s中不匹配。
400 Mismatch.Protocol The %s is mismatched for %s and %s. %s在%s和%s中不匹配。
400 OperationDenied.RewriteMissingForwardGroup The operation is not allowed because of RewriteMissingForwardGroup. 操作被拒绝,原因是RewriteMissingForwardGroup。
404 ResourceNotFound.Listener The specified resource %s is not found. 资源%s不存在。
404 ResourceNotFound.ServerGroup The specified resource %s is not found. 资源%s不存在。

访问错误中心查看更多错误码。