您的位置:首页 > 其它

【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)

2021-05-30 20:56 411 查看

问题描述

Azure API Management 是否可以通过请求中的Path来限定其被访问的频率? 在系统Request中发现某个Path 在短时间内被频繁的调用,影响了后台服务的性能及安全,所以想限制在一定时间内允许被调用(Call)的次数,如1秒钟一次。如被限制的URL Path的格式为:/api/prodregist/00001。

 

而在Azure APIM的Policy设定文档中,可以通过设定” 按密钥限制调用速率 “ 来限制客户端的访问。同理,可以根据该文档示例写出能限制URL Path的表达式。

 

解决办法

在APIM中设定访问限制API 入站策略(Inbound Policy)。 如下的内容就是对URL = ”https://testapi.azure-api.cn/prodregist/sessions“ 进行了每一秒钟call一次的限制。renewal-period = “1” 表示一秒钟。

<rate-limit-by-key 
calls="1"
renewal-period="1"
counter-key="@(context.Request.OriginalUrl.ToString())"
increment-condition="@(context.Request.OriginalUrl.ToString()=="https://testapi.azure-api.cn/prodregist/sessions")"
/>

在API的策略设置页面添加的位置如下图所示:

同理,如果需要对客户端的IP地址进行限制,可以使用如下表达式:

 

 

 

参考资料

APIM管理访问限制策略(按密钥限制调用速率)https://docs.microsoft.com/zh-cn/azure/api-management/api-management-access-restriction-policies#limit-call-rate-by-key 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐