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。 |
请求参数
表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 | 参数解释:匹配项的值。 约束限制: 取值范围: 当转发规则类别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 | 参数解释:匹配内容的键值。 约束限制:type为HOST_NAME和PATH时,该字段不生效。 |
project_id | String | 参数解释:转发规则所在的项目ID。 |
type | String | 参数解释:转发规则类别。 约束限制: 取值范围: HOST_NAME:匹配域名。 PATH:匹配请求路径。 METHOD:匹配请求方法。 HEADER:匹配请求头。 QUERY_STRING:匹配请求查询参数。 SOURCE_IP:匹配请求源IP地址。 COOKIE: 匹配cookie信息。
|
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。
|
provisioning_status | String | 参数解释:provisioning状态。该字段无效,默认为ACTIVE。 取值范围:ACTIVE、PENDING_CREATE 或者ERROR。 |
invert | Boolean | 参数解释:是否反向匹配。 约束限制:固定为false。该字段能更新但不会生效。 |
id | String | 参数解释:规则ID。 |
conditions | Array of RuleCondition objects | 参数解释:转发规则的匹配条件。 约束限制: 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。 若转发规则配置了conditions,字段key、字段value的值无意义。 同一个rule内的conditions列表中所有key必须相同,value不允许重复。
|
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"
}