有没有办法通过 Azure API 管理中的订阅来改变速率限制的值
Is there a way of varying the value of the rate limit by subscription in Azure API Management
在 Azure API 管理中,可以通过订阅和密钥限制调用率:
https://docs.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#LimitCallRateByKey
我的问题 - 有没有办法通过订阅来改变通话限制和续订期限?因此,例如,订阅 A 每分钟可以调用一个操作 100 次,但订阅 B 每 10 秒可以调用它 500 次?
我认为订阅变量可以解决这个问题,但我认为这是不可能的。还有其他办法吗?
谢谢,
克里斯
如果我没猜错,这可能是一个解决方案:
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Subscription.Id == "123")">
<rate-limit-by-key calls="500" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</when>
<when condition="@(context.Subscription.Name == "example-b")">
<rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</when>
<otherwise>
<rate-limit-by-key calls="10" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</otherwise>
</choose>
</inbound>
<backend>
<base />
</backend>...
这样,我认为您可以通过特定的订阅 ID 或名称来改变速率限制。
在 Azure API 管理中,可以通过订阅和密钥限制调用率: https://docs.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#LimitCallRateByKey
我的问题 - 有没有办法通过订阅来改变通话限制和续订期限?因此,例如,订阅 A 每分钟可以调用一个操作 100 次,但订阅 B 每 10 秒可以调用它 500 次?
我认为订阅变量可以解决这个问题,但我认为这是不可能的。还有其他办法吗?
谢谢, 克里斯
如果我没猜错,这可能是一个解决方案:
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Subscription.Id == "123")">
<rate-limit-by-key calls="500" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</when>
<when condition="@(context.Subscription.Name == "example-b")">
<rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</when>
<otherwise>
<rate-limit-by-key calls="10" renewal-period="60" counter-key="@(context.Subscription.Id)" />
</otherwise>
</choose>
</inbound>
<backend>
<base />
</backend>...
这样,我认为您可以通过特定的订阅 ID 或名称来改变速率限制。