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

使用说明

调用该接口创建转发规则时,请注意以下事项:

  • 配置Redirect转发动作时,除了HttpCode参数外,其余参数不能都配置默认值。
  • 同一个转发规则配置多个转发动作时,Rewrite转发动作必须配置ForwardGroup的动作类型。
  • CreateRules接口属于异步接口,即系统返回一个实例ID,但该多条转发规则尚未创建成功,系统后台的创建任务仍在进行。您可以调用ListRules查询多条转发规则的创建状态:
    • 当多条转发规则处于Provisioning状态时,表示多条转发规则正在创建中。
    • 当多条转发规则处于Available状态时,表示多条转发规则创建成功。

调试

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

请求参数

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

系统规定的参数。取值:CreateRules

ListenerId String lsr-bp1bpn0kn908w4nbw****

应用型负载均衡实例监听ID。

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

客户端Token,用于保证请求的幂等性。

从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。

说明 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。
DryRun Boolean false

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

  • true:发送检查请求,不会创建多条转发规则。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码DryRunOperation
  • false(默认值):发送正常请求,通过检查后返回HTTP 2xx状态码并直接进行创建。
Rules.N.Priority Integer 10

规则优先级,取值:1~10000。值越小表示优先级越高。最多支持添加10个规则优先级。

说明 同一个监听内规则优先级必须唯一。
Rules.N.RuleActions.N.FixedResponseConfig Map

固定响应内容配置。最多支持添加20个固定响应内容。

Rules.N.RuleActions.N.ForwardGroupConfig Map

转发组对应的配置。最多支持添加20个转发组。

Rules.N.RuleActions.N.InsertHeaderConfig Map

写入头字段配置。最多支持添加20个写入头字段。

Rules.N.RuleActions.N.Order Integer 1

转发规则动作执行的顺序,取值范围:1~50000,按值从小到大执行动作。值不能为空,不能重复。最多支持添加20个转发规则动作的顺序。

Rules.N.RuleActions.N.RedirectConfig Map

外部重定向配置。最多支持添加20个外部重定向。

Rules.N.RuleActions.N.RewriteConfig Map

内部重定向。最多支持添加20个内部重定向。

Rules.N.RuleActions.N.Type String ForwardGroup

动作类型。最多支持添加11个动作类型。取值:

  • ForwardGroup:转发至多个虚拟服务器组。
  • Redirect:重定向。
  • FixedResponse:返回固定内容。
  • Rewrite:重写。
  • InsertHeader:写入头字段。
  • RemoveHeaderConfig:删除头字段。
  • TrafficLimitConfig:流量限速。
  • TrafficMirrorConfig:流量镜像。
  • CORS:跨域。

转发规则中包括的动作类型:

  • FinalType:一个转发规则的动作中仅能有一项FinalType的动作并且最后执行,只能包含一项ForwardGroupRedirect、或FixedResponse
  • ExtType:一个转发规则可以有一项或多项此类ExtType的动作,在FianlType的动作之前执行,且需要与FinalType并存。包含多项InsertHeader或一项Rewrite
Rules.N.RuleActions.N.TrafficLimitConfig Map

流量限速。最多支持添加20个流量限速。

Rules.N.RuleActions.N.TrafficMirrorConfig Map

流量镜像。最多支持添加20个流量镜像。

Rules.N.RuleConditions.N.CookieConfig Map

Cookie配置。最多支持添加20个Cookie。

Rules.N.RuleConditions.N.HeaderConfig Map

头字段配置。最多支持添加20个头字段。

Rules.N.RuleConditions.N.HostConfig Map

主机配置。最多支持添加20个主机。

Rules.N.RuleConditions.N.MethodConfig Map

请求方法配置。最多支持添加20个请求方法。

Rules.N.RuleConditions.N.PathConfig Map

转发路径配置。最多支持添加20个请转发路径。

Rules.N.RuleConditions.N.QueryStringConfig Map

查询字符串条件配置。最多支持添加20个查询字符串条件。

Rules.N.RuleConditions.N.ResponseHeaderConfig Map

标头条件配置。最多支持添加20个标头条件。

Rules.N.RuleConditions.N.Type String Host

转发规则类型。最多支持添加7个转发类型。取值:

  • Host:主机。
  • Path:路径。
  • Header:HTTP头字段。
  • QueryString:查询字符串。
  • Method:请求方法。
  • Cookie:Cookie。
  • SourceIp:源IP。
Rules.N.RuleConditions.N.SourceIpConfig Map

基于源IP业务流量匹配。当TypeSourceIP时必选且有效。一条转发规则中最多支持添加5条SourceIp

Rules.N.RuleName String test

转发规则名称。最多支持添加20个转发规则名称。

  • 长度为2~128个英文或中文字符。
  • 必须以大小字母或中文开头,可包含数字,半角句号(.),下划线(_)和短划线(-)。
Rules.N.Direction String Request

转发规则的方向。最多支持添加1个转发规则方向。取值:

  • Request(默认值):请求类型,对从客户端发送到ALB的报文进行条件匹配并进行相应的处理。
  • Response:响应类型,对从后端服务器组返回到ALB的报文进行条件匹配并进行相应的处理。
说明 基础版的ALB实例不支持Response类型。

返回数据

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

异步任务ID。

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

请求ID。

RuleIds Array of RuleId

转发规则列表。

RuleId String rule-a3x3pg1yohq3lq****

转发规则ID。

Priority Integer 10

转发规则优先级,取值范围:1~10000。值越小表示优先级越高。

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

示例

请求示例

http(s)://[Endpoint]/?Action=CreateRules
&ListenerId=lsr-bp1bpn0kn908w4nbw****
&ClientToken=5A2CFF0E-5718-45B5-9D4D-70B3FF3898
&DryRun=false
&Rules=[{"Priority":10,"RuleActions":[{"FixedResponseConfig":{"Content":"dssacav","ContentType":"text/plain","HttpCode":"HTTP_200"},"ForwardGroupConfig":{"ServerGroupTuples":[{"ServerGroupId":"sgp-k86c1ov501id6p****","Weight":100}],"ServerGroupStickySession":{"Enabled":false,"Timeout":2}},"InsertHeaderConfig":{"Key":"key","Value":"UserDefined","ValueType":"UserDefined"},"Order":1,"RedirectConfig":{"Host":"www.example.com","HttpCode":"301","Path":"/test","Port":"10","Protocol":"HTTP","Query":"quert"},"RewriteConfig":{"Host":"www.example.com","Path":"/tsdf","Query":"quedsa"},"Type":"ForwardGroup","TrafficLimitConfig":{"QPS":100,"PerIpQps":80},"TrafficMirrorConfig":{"TargetType":"ForwardGroupMirror","MirrorGroupConfig":{"ServerGroupTuples":[{"ServerGroupId":"srg-00mkgijak0w4qgz9****"}]}}}],"RuleConditions":[{"CookieConfig":{"Values":[{"Key":"test","Value":"test"}]},"HeaderConfig":{"Key":"Port","Values":["5006"]},"HostConfig":{"Values":["www.example.com"]},"MethodConfig":{"Values":["PUT"]},"PathConfig":{"Values":["/test"]},"QueryStringConfig":{"Values":[{"Key":"test","Value":"test"}]},"ResponseHeaderConfig":{"Key":"Port","Values":["5006"]},"Type":"Host","SourceIpConfig":{"Values":["192.168.0.0/32"]}}],"RuleName":"test","Direction":"Request"}]
&公共请求参数

正常返回示例

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-a3x3pg1yohq3lq****</RuleId>
        <Priority>10</Priority>
    </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-a3x3pg1yohq3lq****",
    "Priority" : 10
  } ]
}

错误码

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不存在。

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