更新时间:2022-03-31 GMT+08:00
分享

创建转发规则

功能介绍

创建七层转发规则。

调试

您可以在API Explorer中调试该接口。

URI

POST /v3/{project_id}/elb/l7policies/{l7policy_id}/rules

表1 路径参数

参数

是否必选

参数类型

描述

l7policy_id

String

转发策略ID。

project_id

String

项目ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

IAM鉴权Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

rule

CreateRuleOption object

转发规则对象。

表4 CreateRuleOption

参数

是否必选

参数类型

描述

admin_state_up

Boolean

转发规则的管理状态,默认为true。

不支持该字段,请勿使用。

compare_type

String

转发规则的匹配方式。取值:

  • type为HOST_NAME时仅支持EQUAL_TO,支持通配符*。

  • type为PATH时可以为Perl类型的REGEX,STARTS_WITH,EQUAL_TO。

  • type为METHOD、SOURCE_IP时,仅支持EQUAL_TO。

  • type为HEADER、QUERY_STRING,仅支持EQUAL_TO,支持通配符*、?。

key

String

匹配项的名称,比如转发规则匹配类型是请求头匹配,则key表示请求头参数的名称。

不支持该字段,请勿使用。

最小长度:0

最大长度:255

value

String

匹配项的值,比如转发规则匹配类型是域名匹配,则value表示域名的值。仅当conditions空时该字段生效。

当type为HOST_NAME时,字符串只能包含英文字母、数字、"-"、"."或"",必须以字母、数字或""开头。若域名中包含"",则""只能出现在开头且必须以*.开始。当*开头时表示通配0~任一个字符。

当type为PATH时,当转发规则的compare_type为STARTS_WITH、EQUAL_TO时,字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|/()[]{},且必须以"/"开头。

当type为METHOD、SOURCE_IP、HEADER,QUERY_STRING时,该字段无意义,使用conditions来指定key/value。

最小长度:1

最大长度:128

project_id

String

转发规则所在的项目ID。

最小长度:32

最大长度:32

正则匹配:[0-9a-fA-F]{32}

type

String

转发规则类别。取值:

  • HOST_NAME:匹配域名 - PATH:匹配请求路径 - METHOD:匹配请求方法 - HEADER:匹配请求头 - QUERY_STRING:匹配请求查询参数 - SOURCE_IP:匹配请求源IP地址 使用说明: - 一个l7policy下创建的l7rule的HOST_NAME,PATH,METHOD,SOURCE_IP不能重复。HEADER、QUERY_STRING支持重复的rule配置。

invert

Boolean

是否反向匹配。取值:true、false,默认false。

不支持该字段,请勿使用。

conditions

Array of CreateRuleCondition objects

转发规则的匹配条件。当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。 配置了conditions后,字段key、字段value的值无意义。 若指定了conditions,该rule的条件数为conditions列表长度。 列表中key必须相同,value不允许重复。

表5 CreateRuleCondition

参数

是否必选

参数类型

描述

key

String

匹配项的名称。 当type为HOST_NAME、PATH、METHOD、SOURCE_IP时,该字段固定为空字符串。 当type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。key的长度限制[1,40],只允许包含字母、数字和-_。 当type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。key的长度限制为[1,128],不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|','%','~',字母区分大小写。

最小长度:1

最大长度:128

value

String

匹配项的值。

当type为HOST_NAME时,key固定为空字符串,value表示域名的值。value长度[1,128],字符串只能包含英文字母、数字、"-"、"."或"",必须以字母、数字或""开头,""只能出现在开头且必须以.开始。

当type为PATH时,key固定为空字符串,value表示请求路径的值。value长度[1,128]。当转发规则的compare_type为STARTS_WITH、EQUAL_TO时,字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|/()[]{},且必须以"/"开头。

[当type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。value长度限制[1,128],不支持空格,双引号,支持以下通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)。

当type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。value长度限制为[1,128],不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|','%','~',字母区分大小写,支持通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)

当type为METHOD时,key固定为空字符串,value表示请求方式。value取值范围为:GET, PUT, POST, DELETE, PATCH, HEAD, OPTIONS。

当type为SOURCE_IP时,key固定为空字符串,value表示请求源地址。value为CIDR格式,支持ipv4,ipv6。例如: 192.168.0.2/32,2049::49/64。](tag:hws,hws_hk,ocb,tlf,ctc,hcso,sbc,g42,tm,cmcc,hk-g42)

最小长度:1

最大长度:128

响应参数

状态码: 201

表6 响应Body参数

参数

参数类型

描述

request_id

String

请求ID。

注:自动生成 。

rule

L7Rule object

转发规则对象。

表7 L7Rule

参数

参数类型

描述

admin_state_up

Boolean

转发规则的管理状,默认为true。

不支持该字段,请勿使用。

compare_type

String

转发规则的匹配方式。

  • type为HOST_NAME时仅支持EQUAL_TO,支持通配符*。

  • type为PATH时可以为Perl类型的REGEX,STARTS_WITH,EQUAL_TO。

  • type为METHOD、SOURCE_IP时,仅支持EQUAL_TO。

  • type为HEADER、QUERY_STRING,仅支持EQUAL_TO,支持通配符*、?。

key

String

匹配内容的键值。type为HOST_NAME和PATH时,该字段不生效。

最小长度:1

最大长度:255

project_id

String

转发规则所在的项目ID。

type

String

转发规则类别。取值: - HOST_NAME:匹配域名 - PATH:匹配请求路径 - METHOD:匹配请求方法 - HEADER:匹配请求头 - QUERY_STRING:匹配请求查询参数 - SOURCE_IP:匹配请求源IP地址 使用说明: - 一个l7policy下创建的l7rule的HOST_NAME,PATH,METHOD,SOURCE_IP不能重复。HEADER、QUERY_STRING支持重复的rule配置。

value

String

匹配内容的值。仅当conditions空时该字段生效。

当type为HOST_NAME时,字符串只能包含英文字母、数字、"-"、"."或"",必须以字母、数字或""开头。若域名中包含"",则""只能出现在开头且必须以*.开始。当*开头时表示通配0~任一个字符。

当type为PATH时,当转发规则的compare_type为STARTS_WITH、EQUAL_TO时,字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|/()[]{},且必须以"/"开头。

当type为METHOD、SOURCE_IP、HEADER、QUERY_STRING时,该字段无意义,使用condition_pair来指定key,value。

最小长度:1

最大长度:128

provisioning_status

String

provisioning状态,可以为ACTIVE、PENDING_CREATE 或者ERROR。 说明:该字段无实际含义,默认为ACTIVE。

invert

Boolean

是否反向匹配。 使用说明:

  • 固定为false。该字段能更新但不会生效。

id

String

规则ID。

conditions

Array of RuleCondition objects

转发规则的匹配条件。当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。 配置了conditions后,字段key、字段value的值无意义。 若指定了conditions,该rule的条件数为conditions列表长度。 列表中key必须相同,value不允许重复。

表8 RuleCondition

参数

参数类型

描述

key

String

匹配项的名称。

[匹配项的名称。

当type为HOST_NAME、PATH、METHOD、SOURCE_IP时,该字段固定为空字符串。

当type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。key的长度限制[1,40],只允许包含字母、数字和-_。

当type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。key的长度限制为[1,128],不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|','%','~',字母区分大小写。](tag:hws,hws_hk,ocb,tlf,ctc,hcso,sbc,g42,tm,cmcc,hk-g42)

最小长度:1

最大长度:128

value

String

匹配项的值。

当type为HOST_NAME时,key固定为空字符串,value表示域名的值。value长度[1,128],字符串只能包含英文字母、数字、"-"、"."或"",必须以字母、数字或""开头,""只能出现在开头且必须以.开始。

当type为PATH时,key固定为空字符串,value表示请求路径的值。value长度[1,128]。当转发规则的compare_type为STARTS_WITH、EQUAL_TO时,字符串只能包含英文字母、数字、_~';@^-%#&$.*+?,=!:|/()[]{},且必须以"/"开头。

[当type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。value长度限制[1,128],不支持空格,双引号,支持以下通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)。

当type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。value长度限制为[1,128],不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|','%','~',字母区分大小写,支持通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)

当type为METHOD时,key固定为空字符串,value表示请求方式。value取值范围为:GET, PUT, POST, DELETE, PATCH, HEAD, OPTIONS。

当type为SOURCE_IP时,key固定为空字符串,value表示请求源地址。value为CIDR格式,支持ipv4,ipv6。例如:192.168.0.2/32,2049::49/64。](tag:hws,hws_hk,ocb,tlf,ctc,hcso,sbc,g42,tm,cmcc,hk-g42)

最小长度:1

最大长度:128

请求示例

POST https://{ELB_Endpoint}/v3/{99a3fff0d03c428eac3678da6a7d0f24}/elb/l7policies/cf4360fd-8631-41ff-a6f5-b72c35da74be/rules

{
  "rule" : {
    "compare_type" : "EQUAL_TO",
    "type" : "PATH",
    "value" : "/bbb.html"
  }
}

响应示例

状态码: 201

POST操作正常返回。

{
  "rule" : {
    "compare_type" : "EQUAL_TO",
    "provisioning_status" : "ACTIVE",
    "project_id" : "99a3fff0d03c428eac3678da6a7d0f24",
    "invert" : false,
    "admin_state_up" : true,
    "value" : "/bbb.html",
    "key" : null,
    "type" : "PATH",
    "id" : "84f4fcae-9c15-4e19-a99f-72c0b08fd3d7"
  },
  "request_id" : "3639f1b7-f04b-496e-9218-ec5a9e493f69"
}

状态码

状态码

描述

201

POST操作正常返回。

错误码

请参见错误码

分享:

    相关文档

    相关产品

close