文档首页 > > API签名指南> 获取流控信息

获取流控信息

分享
更新时间: 2020/04/27 GMT+08:00

当您对云服务API做自动化调用时,可能会因为调用请求过于频繁,触发了API网关的流控策略,导致请求被API网关拒绝。云服务一般会为其开放的接口设置流控策略,即设置每个接口在指定场景下允许的并发上限,用于保护云服务接口免受流量攻击,合理分配API调用资源。

如何查看接口的流控策略

API网关提供流控信息查询功能,您可以在接口调用时,通过在请求消息头中增加一个头部参数进行查询,参数名称为“X-Apig-Mode”,参数值为“debug”。例如请求消息头中加送X-Apig-Mode。

GET / HTTP/1.1
Host: 95dfff7fa1644ab5a43546bdd3d3cd29.apigw.service.region.example.com
User-Agent: APIGatewayDebugClient/1.0
X-Apig-Mode: debug

增加头部参数,可参考签名SDK与demo章节的示例代码。

返回的响应消息头如下所示:

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: keep-alive
Content-Type: application/json
Date: Mon, 25 Nov 2019 01:33:23 GMT
Server: api-gateway
X-Apig-Latency: 2413
X-Apig-Ratelimit-Api: remain:99,limit:100,time:1 minute
X-Apig-Ratelimit-User: remain:199,limit:200,time:1 second
X-Apig-Ratelimit-Api-Allenv: remain:199,limit:200,time:1 second
X-Apig-Upstream-Latency: 2
X-Request-Id: 74a4651dd9a3da4bc896268e6038a67f

流控分类

当您查询流控信息时,即API调用的请求消息头包含“X-Apig-Mode: debug”,响应消息头可能包含如下参数中的某几个。任何一个流控指标达到上限,API都不能被成功调用。

表1 流控信息

响应消息头

消息头描述

取值说明与示例

X-Apig-RateLimit-Api

单位时长内,一个API总的被访问次数上限。

示例:X-Apig-Ratelimit-Api: remain:80,limit:100,time:1 minute

表示1分钟内,API总的被访问次数上限为100次,当前剩余可访问次数为80

X-Apig-RateLimit-User

单位时长内,一个用户访问各类API的总次数上限。如果是IAM用户,则按账号维度统计,即统计同一账号下的所有IAM用户的访问次数之和。

示例:X-Apig-RateLimit-User: remain:99,limit:100,time:1 minute

表示1分钟内,该用户总的访问次数上限为100次,当前剩余可访问次数为99

X-Apig-RateLimit-Ip

单位时长内,一个源端IP地址访问各类API的总次数上限。

示例:X-Apig-RateLimit-Ip: remain:49,limit:50,time:1 minute

表示1分钟内,该IP地址总的访问次数上限为50次,当前剩余可访问次数为49

X-Apig-RateLimit-Api-Allenv

API网关的默认流控信息。

示例:X-Apig-Ratelimit-Api-Allenv: remain:199,limit:200,time:1 second

表示API,默认每秒最多访问200次。

  • 单位时长指流量控制策略的统计周期。单位时长与访问次数配合使用,表示一段时间内,接口调用次数上限。单位时长可以是秒、分钟、小时、天的整数倍。
  • 参数X-Apig-RateLimit-Api-Allenv在所有的流控查询中都会返回,其他参数,云服务的API配置了该项策略,才会返回。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问