更新时间:2026-01-16 GMT+08:00

更新转发规则

功能介绍

更新七层转发规则。

调用方法

请参见如何调用API

URI

PUT /v3/{project_id}/elb/l7policies/{l7policy_id}/rules/{l7rule_id}

表1 路径参数

参数

是否必选

参数类型

描述

l7policy_id

String

参数解释:策略ID。

约束限制:不涉及

取值范围:不涉及

默认取值:不涉及

l7rule_id

String

参数解释:规则ID。

约束限制:不涉及

取值范围:不涉及

默认取值:不涉及

project_id

String

参数解释:项目ID。获取方式请参见获取项目ID

约束限制:不涉及

取值范围:长度为32个字符,由小写字母和数字组成。

默认取值:不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:IAM鉴权Token。

约束限制:不涉及

取值范围:不涉及

默认取值:不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

rule

UpdateL7RuleOption object

参数解释:规则对象。

约束限制:不涉及

表4 UpdateL7RuleOption

参数

是否必选

参数类型

描述

admin_state_up

Boolean

参数解释:转发规则的管理状态。

约束限制:只支持设置为true。

取值范围:不涉及

默认取值:不涉及

compare_type

String

参数解释:转发匹配方式。

约束限制

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

  • type为PATH时可以为REGEX,STARTS_WITH,EQUAL_TO。

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

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

取值范围

  • EQUAL_TO 表示精确匹配。

  • REGEX 表示正则匹配。

  • STARTS_WITH 表示前缀匹配。

默认取值:不涉及

invert

Boolean

参数解释:是否反向匹配。

约束限制:不涉及

取值范围:true、false。

默认取值:不涉及

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

key

String

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

约束限制:不涉及

取值范围:不涉及

默认取值:不涉及

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

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。

默认取值:不涉及

conditions

Array of UpdateRuleCondition objects

参数解释:转发规则的匹配条件。

约束限制

  • 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。

  • 若转发规则配置了conditions,字段key、字段value的值无意义。

  • 同一个rule内的conditions列表中所有key必须相同,value不允许重复。

取值范围:不涉及

默认取值:不涉及

表5 UpdateRuleCondition

参数

是否必选

参数类型

描述

key

String

参数解释:匹配项的名称。

约束限制:同一个rule内的conditions列表中所有key必须相同。

取值范围

  • 当转发规则类别type为HOST_NAME、PATH、METHOD、SOURCE_IP时,该字段固定为空字符串。

  • 当转发规则类别type为HEADER时,key表示请求头参数的名称,value表示请求头参数的值。key的长度限制1-40字符,只允许包含字母、数字和-_。

  • 当转发规则类别type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。key的长度限制为1-128字符,不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|',‘%’,‘~’,字母区分大小写。

默认取值:不涉及

value

String

参数解释:匹配项的值。

约束限制

  • 同一个rule内的conditions列表中所有key必须相同。

  • 同一个rule内的conditions列表中所有value不允许重复。

取值范围

  • 当转发规则类别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。

默认取值:不涉及

响应参数

状态码:200

表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时可以为REGEX,STARTS_WITH,EQUAL_TO。

key

String

参数解释:匹配内容的键值。

取值范围:不涉及

project_id

String

参数解释:转发规则所在的项目ID。

取值范围:不涉及

type

String

参数解释:转发规则类别。

取值范围

  • HOST_NAME:匹配域名。

  • PATH:匹配请求路径。

  • METHOD:匹配请求方法。

  • HEADER:匹配请求头。

  • QUERY_STRING:匹配请求查询参数。

  • SOURCE_IP:匹配请求源IP地址。

  • COOKIE: 匹配cookie信息。

value

String

参数解释:匹配内容的值。

取值范围

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

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

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

provisioning_status

String

参数解释:provisioning状态。该字段无效,默认为ACTIVE。

取值范围

  • ACTIVE:已生效。

  • PENDING_CREATE:创建中。

  • ERROR:当前配置有误。

invert

Boolean

参数解释:是否反向匹配。

取值范围:不涉及

id

String

参数解释:规则ID。

取值范围:不涉及

conditions

Array of RuleCondition objects

参数解释:转发规则的匹配条件。

取值范围:不涉及

created_at

String

参数解释:创建时间。

取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。

updated_at

String

参数解释:更新时间。

取值范围:格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。

表8 RuleCondition

参数

参数类型

描述

key

String

参数解释:匹配项的名称。

约束限制:同一个rule内的conditions列表中所有key必须相同。

取值范围

  • 当转发规则类别type为HOST_NAME、PATH、METHOD、SOURCE_IP时,该字段固定为空字符串。

  • 当转发规则类别type为HEADER时,key表示请求头、响应头参数的名称,value表示请求头、响应头参数的值。key的长度限制1-40字符,只允许包含字母、数字和-_。

  • 当转发规则类别type为QUERY_STRING时,key表示查询参数的名称,value表示查询参数的值。key的长度限制为1-128字符,不支持空格,中括号,大括号,尖括号,反斜杠,双引号,'#','&','|',‘%’,‘~’,字母区分大小写。

默认取值:不涉及

value

String

参数解释:匹配项的值。

约束限制:同一个rule内的conditions列表中所有value不允许重复。

取值范围

  • 当转发规则类别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。

默认取值:不涉及

请求示例

更新转发规则

PUT https://{ELB_Endpoint}/v3/{99a3fff0d03c428eac3678da6a7d0f24}/elb/l7policies/cf4360fd-8631-41ff-a6f5-b72c35da74be/rules/84f4fcae-9c15-4e19-a99f-72c0b08fd3d7

{
  "rule" : {
    "compare_type" : "STARTS_WITH",
    "value" : "/ccc.html"
  }
}

响应示例

状态码:200

操作正常返回。

{
  "rule" : {
    "compare_type" : "STARTS_WITH",
    "provisioning_status" : "ACTIVE",
    "project_id" : "99a3fff0d03c428eac3678da6a7d0f24",
    "invert" : false,
    "admin_state_up" : true,
    "value" : "/ccc.html",
    "key" : null,
    "type" : "PATH",
    "id" : "84f4fcae-9c15-4e19-a99f-72c0b08fd3d7"
  },
  "request_id" : "133096f9-e754-430d-a2c2-e61fe1190aa8"
}

状态码

状态码

描述

200

操作正常返回。

错误码

请参见错误码