zoukankan      html  css  js  c++  java
  • 【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)

    问题描述

    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 

    当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

  • 相关阅读:
    团队个人冲刺day08
    4.26 jQuery AJAX load() 方法
    4.23 jquery
    4.22 AJAX技术
    4.21 正则表达式
    4.20
    4.15 重写团队作业1
    4.12 重写团队作业1
    4.9 团队作业1
    4.7 团队作业1
  • 原文地址:https://www.cnblogs.com/lulight/p/14829083.html
Copyright © 2011-2022 走看看