调用ListRules接口查询指定地域的转发规则。

调试

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

请求参数

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

要执行的操作。

取值:ListRules

NextToken String FFmyTO70tTpLG6I3FmYAXGKPd****

用来标记当前开始读取的位置,设置为空表示从头开始。

MaxResults Integer 20

本次读取的最大数据记录数。

取值:1~100

默认值:20,表示用户没有传入数据。

说明 此参数为可选。
RuleIds.N String rule-sada

转发规则ID列表,一次最多支持查询20个转发规则。

ListenerIds.N String lsn-i35udpz3pxsmnf****

监听ID列表,一次最多支持查询20个监听。

LoadBalancerIds.N String alb-x30o38azsuj0sx****

负载均衡实例ID列表,一次最多支持查询20个实例。

Direction String Request

转发规则的方向。取值:

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

返回数据

名称 类型 示例值 描述
MaxResults Integer 50

本次请求所返回的最大记录条数。

NextToken String FFmyTO70tTpLG6I3FmYAXGKPd****

是否拥有下一次查询的令牌(Token)。取值:

  • 如果NextToken为空表示没有下一次查询。
  • 如果NextToken有返回值,该取值表示下一次查询开始的令牌。
RequestId String CEF72CEB-54B6-4AE8-B225-F876FF7BA984

请求ID。

Rules Array of Rule

转发规则列表。

ListenerId String lsn-i35udpz3pxsmnf****

转发规则所属监听ID。

LoadBalancerId String alb-x30o38azsuj0sx****

转发规则所属负载均衡实例ID。

Priority Integer 1

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

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

转发规则动作列表。

FixedResponseConfig Object

固定响应内容配置。

Content String dssacav

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

ContentType String text/plain

返回固定内容的格式。

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

HttpCode String HTTP_2xx

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

ForwardGroupConfig Object

转发组配置。

ServerGroupTuples Array of ServerGroupTuple

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

ServerGroupId String sg-atstuj3rtoptyui****

转发到的目的服务器组。

Weight Integer 2

权重。取值范围:0~100

InsertHeaderConfig Object

写入头字段配置。

Key String key

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

说明 不允许用户在头字段名称中使用CookieHost
Value String ClientSrcPort

插入的头字段内容。

  • ValueType取值为SystemDefined时取值如下:
    • ClientSrcPort:客户端端口。
    • ClientSrcIp:客户端IP地址。
    • Protocol:客户端请求的协议(HTTP或HTTPS)。
    • SLBId:应用型负载均衡实例ID。
    • SLBPort:应用型负载均衡实例监听端口。
  • ValueType取值为UserDefined时:您可自定义头字段内容,限制长度为1~128个字符,支持通配符星号(*)、半角问号(?)和ASCII码值ch >= 32 && ch < 127范围内的可打印字符,开头和结尾不能为空格。
  • ValueType取值为ReferenceHeader时:您可以引用请求头字段中的某一个字段,限制长度限制为1~128个字符,支持小写字母a~z、数字、短划线(-)和下划线(_)。
ValueType String SystemDefined

头字段内容类型。取值:

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

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

RedirectConfig Object

重定向配置。

Host String www.example.com

要跳转的主机地址。取值:

  • ${host}(默认值):取此值时不支持和其他字符拼接使用。
  • 其他取值,字符集和格式限制如下:
    • 主机名长度为3~128个字符,支持小写字母a~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。
    • 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。
    • 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。
    • 短划线(-)不能出现在其它域标签的开头或结尾。
    • 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。
HttpCode String 301

跳转方式,取值为301302303307308

Path String /test

要跳转的路径。取值:

  • ${path}(默认值):可以引用${host}${protocol}${port},由${host}${protocol}${port}组成,每个变量最多出现一次。上述变量可以同时使用,也可以和下面罗列的可取值范围内的字符串拼接使用。
  • 其他取值,字符集和格式限制如下:
    • 长度为1~128个字符。
    • 必须以正斜线(/)开头,支持字母、数字和特殊字符$-_.+/&~@:,不支持“%#;!()[]^,” ,同时支持通配符星号(*)和半角问号(?)。
Port String 10

要跳转的端口。取值:

  • ${port}(默认值):该取值不支持和其他字符同时使用。
  • 其他取值:1~63335
Protocol String HTTP

要跳转的协议。取值:

  • ${protocol}(默认值):取该值时不支持和其他字符拼接使用。
  • HTTPHTTPS
说明 HTTPS监听仅支持跳转HTTPS协议。
Query String quert

要跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 #[]{}\|<>&

RewriteConfig Object

重写配置。

Host String www.example.com

要跳转的主机地址。取值:

  • ${host}(默认值):取此值时不支持和其他字符拼接使用。
  • 其他取值,字符集和格式限制如下:
    • 主机名长度为3~128个字符,支持小写字母a~z、数字、短划线(-)、半角句号(.)以及通配符星号(*)和半角问号(?)。
    • 主机名至少包含一个半角句号(.),且半角句号(.)不能出现在开头或结尾。
    • 最右侧的域标签只能包含字母和通配符,不能包含数字或短划线(-)。
    • 短划线(-)不能出现在其它域标签的开头或结尾。
    • 通配符星号(*)和半角问号(?)可以出现在域标签的任意位置。
Path String /tsdf

内部跳转的目的路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和$-_.+/&~@:,不支持“%#;!()[]^,”

Query String quedsa

内部跳转的查询字符串。长度为1~128个字符,支持小写字母和可见字符,不支持 #[]{}\|<>&

TrafficMirrorConfig Object

流量镜像。

MirrorGroupConfig Object

流量镜像至服务器组。

ServerGroupTuples Array of ServerGroupTuple

流量镜像至服务器组。

ServerGroupId String srg-00mkgijak0w4qgz9****

服务器组ID。

Weight Integer 2

权重。取值范围:0~100

TrafficLimitConfig Object

流量限速。

QPS Integer 4

每秒请求次数。取值范围:1~100000

PerIpQps Integer 80

单IP每秒请求次数。 取值范围:1 ~ 100000

说明 如果同时配置QPS参数,PerIpQps参数的取值必须小于QPS参数的取值。
Type String ForwardGroup

动作类型。取值:

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

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

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

跨域。

AllowOrigin Array of String http://test.com

允许访问的来源。支持配置为*或配置为一个或多个value值。value的值不能为*

  • 单个value值必须以http://或者https://开头,后面加一个正确的域名或者一级的泛域名(例如,*.test.abc.example.com)。
  • 单个value值可以不加端口,也可以指定端口,端口范围:1~65535
AllowMethods Array of String GET

选择跨域访问时允许的HTTP方法。取值:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • OPTIONS
  • PATCH
AllowHeaders Array of String test_123

允许跨域的Header列表。支持配置为*或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,不能以下划线(_)和短划线(-)开头或结尾,最大长度限制为32个字符。

ExposeHeaders Array of String test_123

允许跨域的Header列表。支持配置为*或配置一个或多个value值,多个value值用半角逗号(,)隔开。单个value值只允许包含大小写字母、数字,不能以下划线(_)和短划线(-)开头或结尾,最大长度限制为32个字符。

AllowCredentials String on

是否允许携带凭证信息。取值:

  • on:是。
  • off:否。
MaxAge Long 1000

预检请求在浏览器的最大缓存时间,单位:秒。

取值范围:-1~172800

RuleConditions Array of Condition

转发规则条件列表。

CookieConfig Object

Cookie配置。

Values Array of Value

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.example.com

主机名。命名规则:

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

请求方法配置。

Values Array of String PUT

请求方法。

取值:HEADGETPOSTOPTIONSPUTPATCHDELETE

PathConfig Object

转发路径配置。

Values Array of String /test

转发路径。长度为1~128个字符,以正斜线(/)开头,支持字母、数字、星号(*)、半角问号(?)和$-_.+/&~@:,不支持“%#;!()[]^,”

QueryStringConfig Object

查询字符串配置。

Values Array of Value

查询字符串。

Key String test

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

Value String test

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

SourceIpConfig Object

基于源IP业务流量匹配。

Values Array of String 192.168.XX.XX/32

添加一个或多个IP地址或者IP地址段。

一条转发规则中最多支持添加5条源IP。

Type String Host

转发规则类型。取值:

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

转发规则ID。

RuleName String rule-instance-test

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

RuleStatus String Available

转发规则状态。取值:

  • Provisioning:创建中。
  • Configuring:变配中。
  • Available:运行中。
TotalCount Integer 1000

本次请求条件下返回的总数据记录数。

示例

请求示例

http(s)://[Endpoint]/?Action=ListRules
&NextToken=FFmyTO70tTpLG6I3FmYAXGKPd****
&MaxResults=20
&RuleIds=["rule-sada"]
&ListenerIds=["lsn-i35udpz3pxsmnf****"]
&LoadBalancerIds=["alb-x30o38azsuj0sx****"]
&Direction=Request
&公共请求参数

正常返回示例

XML格式

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

<ListRulesResponse>
    <MaxResults>50</MaxResults>
    <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>
    <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>
    <Rules>
        <ListenerId>lsn-i35udpz3pxsmnf****</ListenerId>
        <LoadBalancerId>alb-x30o38azsuj0sx****</LoadBalancerId>
        <Priority>1</Priority>
        <RuleActions>
            <FixedResponseConfig>
                <Content>dssacav</Content>
                <ContentType>text/plain</ContentType>
                <HttpCode>HTTP_2xx</HttpCode>
            </FixedResponseConfig>
            <ForwardGroupConfig>
                <ServerGroupTuples>
                    <ServerGroupId>sg-atstuj3rtoptyui****</ServerGroupId>
                    <Weight>2</Weight>
                </ServerGroupTuples>
            </ForwardGroupConfig>
            <InsertHeaderConfig>
                <Key>key</Key>
                <Value>ClientSrcPort</Value>
                <ValueType>SystemDefined</ValueType>
            </InsertHeaderConfig>
            <Order>1</Order>
            <RedirectConfig>
                <Host>www.example.com</Host>
                <HttpCode>301</HttpCode>
                <Path>/test</Path>
                <Port>10</Port>
                <Protocol>HTTP</Protocol>
                <Query>quert</Query>
            </RedirectConfig>
            <RewriteConfig>
                <Host>www.example.com</Host>
                <Path>/tsdf</Path>
                <Query>quedsa</Query>
            </RewriteConfig>
            <TrafficMirrorConfig>
                <MirrorGroupConfig>
                    <ServerGroupTuples>
                        <ServerGroupId>srg-00mkgijak0w4qgz9****</ServerGroupId>
                        <Weight>2</Weight>
                    </ServerGroupTuples>
                </MirrorGroupConfig>
            </TrafficMirrorConfig>
            <TrafficLimitConfig>
                <QPS>4</QPS>
                <PerIpQps>80</PerIpQps>
            </TrafficLimitConfig>
            <Type>ForwardGroup</Type>
            <CorsConfig>
                <AllowOrigin>http://test.com</AllowOrigin>
                <AllowMethods>GET</AllowMethods>
                <AllowHeaders>test_123</AllowHeaders>
                <ExposeHeaders>test_123</ExposeHeaders>
                <AllowCredentials>on</AllowCredentials>
                <MaxAge>1000</MaxAge>
            </CorsConfig>
        </RuleActions>
        <RuleConditions>
            <CookieConfig>
                <Values>
                    <Key>test</Key>
                    <Value>test</Value>
                </Values>
            </CookieConfig>
            <HeaderConfig>
                <Key>Port</Key>
                <Values>5006</Values>
            </HeaderConfig>
            <HostConfig>
                <Values>www.example.com</Values>
            </HostConfig>
            <MethodConfig>
                <Values>PUT</Values>
            </MethodConfig>
            <PathConfig>
                <Values>/test</Values>
            </PathConfig>
            <QueryStringConfig>
                <Values>
                    <Key>test</Key>
                    <Value>test</Value>
                </Values>
            </QueryStringConfig>
            <SourceIpConfig>
                <Values>192.168.XX.XX/32</Values>
            </SourceIpConfig>
            <Type>Host</Type>
        </RuleConditions>
        <RuleId>rule-bpn0kn908w4nbw****</RuleId>
        <RuleName>rule-instance-test</RuleName>
        <RuleStatus>Available</RuleStatus>
    </Rules>
    <TotalCount>1000</TotalCount>
</ListRulesResponse>

JSON格式

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

{
  "MaxResults" : 50,
  "NextToken" : "FFmyTO70tTpLG6I3FmYAXGKPd****",
  "RequestId" : "CEF72CEB-54B6-4AE8-B225-F876FF7BA984",
  "Rules" : [ {
    "ListenerId" : "lsn-i35udpz3pxsmnf****",
    "LoadBalancerId" : "alb-x30o38azsuj0sx****",
    "Priority" : 1,
    "RuleActions" : [ {
      "FixedResponseConfig" : {
        "Content" : "dssacav",
        "ContentType" : "text/plain",
        "HttpCode" : "HTTP_2xx"
      },
      "ForwardGroupConfig" : {
        "ServerGroupTuples" : [ {
          "ServerGroupId" : "sg-atstuj3rtoptyui****",
          "Weight" : 2
        } ]
      },
      "InsertHeaderConfig" : {
        "Key" : "key",
        "Value" : "ClientSrcPort",
        "ValueType" : "SystemDefined"
      },
      "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"
      },
      "TrafficMirrorConfig" : {
        "MirrorGroupConfig" : {
          "ServerGroupTuples" : [ {
            "ServerGroupId" : "srg-00mkgijak0w4qgz9****",
            "Weight" : 2
          } ]
        }
      },
      "TrafficLimitConfig" : {
        "QPS" : 4,
        "PerIpQps" : 80
      },
      "Type" : "ForwardGroup",
      "CorsConfig" : {
        "AllowOrigin" : [ "http://test.com" ],
        "AllowMethods" : [ "GET" ],
        "AllowHeaders" : [ "test_123" ],
        "ExposeHeaders" : [ "test_123" ],
        "AllowCredentials" : "on",
        "MaxAge" : 1000
      }
    } ],
    "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"
        } ]
      },
      "SourceIpConfig" : {
        "Values" : [ "192.168.XX.XX/32" ]
      },
      "Type" : "Host"
    } ],
    "RuleId" : "rule-bpn0kn908w4nbw****",
    "RuleName" : "rule-instance-test",
    "RuleStatus" : "Available"
  } ],
  "TotalCount" : 1000
}

错误码

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