编辑网关上某条配额限流规则。
接口说明
该接口用于编辑网关上某条配额规则。注意,只针对于版本大于 2.1.21 的 AI 网关生效;编辑将保留规则上消费主体的历史用量。
推荐调用逻辑:
一、先 dryRun 预检检验是否存在规则冲突
-
传 dryRun=true
-
返回含 conflictHash 的冲突预览
二、确认后正式提交
-
无冲突:dryRun=false,overwrite=false
-
有冲突且确认覆盖:dryRun=false,overwrite=true, conflictHash=<上一步返回的值>
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
apig:UpdateGatewayQuotaRule |
update |
*Gateway
|
无 | 无 |
请求语法
PUT /v1/gateways/{gatewayId}/quota-rules/{ruleId} HTTP/1.1
路径参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| gatewayId |
string |
否 |
网关唯一标识 |
gw-123456 |
| ruleId |
string |
否 |
规则 ID |
qr-d8j7fpmm1hks65xxxx |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| body |
object |
否 |
请求体内容 |
{'key': 'value'} |
| addIds |
array |
否 |
新增绑定主体(消费主体)ID 列表 |
cs-001,cs-002 |
|
string |
否 |
主体 ID |
cs-001xxxxx |
|
| conflictHash |
string |
否 |
冲突快照哈希,用于“确认覆盖时防并发脏覆盖”。通过先执行 dryRun=true 在返回数据提取。 当以下情况不需要填写:没有冲突;只是 dryRun=true 预检;overwrite=false,即不确认覆盖。 当当 dryRun = false 且 overwrite=true 时不带改参数或者该参数过期不匹配,后端会返回:accepted=false 并带新的冲突预览,需要重新执行 dryrun 确认新的冲突。 |
f8f44dc6cf369a017d56b7197eb4fb5ac4bbb6b09a92b9b41999541f50xxxxxx |
consumerGroupIds
deprecated
|
array |
否 |
消费者组 ID 列表(已废弃) |
group1,group2 |
deprecated
|
string |
否 |
消费者组 ID(已废弃) |
consumer-group-001 |
| dryRun |
boolean |
否 |
是否仅预检(预检不下发实际配置),用于检查绑定的消费主体上是否存在冲突的规则(同一消费主体不能配置两个相同周期的自然周期配额,例如已有自然日配额的消费主体不能再新增一个自然日配额规则) |
true |
| overwrite |
boolean |
否 |
冲突时是否允许覆盖。注意如果选择允许覆盖,冲突主体(消费者或消费者组)会从旧规则解绑并绑定到新规则 |
|
| quotaLimit |
integer |
否 |
修改后的可用总额度 |
1000 |
| removeIds |
array |
否 |
解绑主体(消费主体)ID 列表 |
cs003,cs-004 |
|
string |
否 |
主体 ID |
cs-003xxxxx |
|
| ruleName |
string |
否 |
修改后的规则名称 |
team-rule |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
Schema of Response |
||
| code |
string |
状态码或错误代码 |
200, 404, 500 |
| data |
object |
请求数据内容 |
{'key': 'value'} |
| accepted |
boolean |
本次写请求语义是否可被系统接收,false 常见于冲突未确认覆盖等可重试场景 |
true |
| conflictPreview |
object |
冲突预览 |
|
| conflictHash |
string |
冲突的 hash |
f8f44dc6cf369a017d56b7197eb4fb5ac4bbb6b09a92b9b41999541f50xxxxxx |
| items |
array<object> |
冲突的主体(消费者或消费者组)列表 |
|
|
object |
冲突的主体(消费者或消费者组)详情 |
||
| conflictPeriodType |
string |
消费主体上已有冲突规则的周期类型。conflictPeriodType = "day"/"week"/"month"分别表示消费主体已有冲突规则的周期为日/周/月 |
week |
| conflictType |
string |
消费主体上已有冲突规则的类型。conflictType = "calendar"表示消费主体已有冲突规则为自然周期;conflictType = "epoch"表示已有冲突规则为自定义周期。 |
calendar |
| consumerId |
string |
消费者 ID(现可统一使用 subjectId 替代) |
cs-d82n1g6m1hkm375xxxxx |
| consumerName |
string |
消费者名称(现可统一使用 subjectName 替代) |
consumer-a |
| subjectId |
string |
冲突主体 ID |
cs-xxx |
| subjectName |
string |
冲突主体名称 |
consumer-a |
| subjectType |
string |
冲突主体类型,取值为 consumer 或 consumer_group。 |
consumer |
| totalConflictCount |
integer |
冲突总数 |
2 |
| dryRun |
boolean |
是否预检 |
true |
| ruleId |
string |
规则 ID |
qr-xxxxxx |
| message |
string |
消息内容 |
你好,世界! |
| requestId |
string |
请求唯一标识 |
1234567890 |
示例
正常返回示例
JSON格式
{
"code": "200, 404, 500",
"data": {
"accepted": true,
"conflictPreview": {
"conflictHash": "\t\nf8f44dc6cf369a017d56b7197eb4fb5ac4bbb6b09a92b9b41999541f50xxxxxx",
"items": [
{
"conflictPeriodType": "week",
"conflictType": "calendar",
"consumerId": "cs-d82n1g6m1hkm375xxxxx",
"consumerName": "consumer-a",
"subjectId": "cs-xxx",
"subjectName": "consumer-a",
"subjectType": "consumer"
}
],
"totalConflictCount": 2
},
"dryRun": true,
"ruleId": "qr-xxxxxx"
},
"message": "你好,世界!",
"requestId": "1234567890"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。