在Azure API管理中,是否有办法按订阅来改变费率限制的值?

问题描述 投票:0回答:1

在 Azure API Management 中,可以通过订阅和密钥来限制调用率。https:/docs.microsoft.comen-usazureapi-managementapi-management-access-restriction-policies#LimitCallRateByKey。

我的问题是--有没有办法按订阅来改变调用次数和续费周期的限制?例如,订阅A每分钟可以调用一个操作100次,但订阅B每10秒可以调用500次?

我想能够在订阅上有变量可以解决这个问题,但我认为这是不可能的。还有其他方法吗?

谢谢你,Chris。

azure azure-api-management rate-limiting
1个回答
1
投票

如果我没看错的话,这可能是一个解决方案。

<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或名称来改变速率限制。

© www.soinside.com 2019 - 2024. All rights reserved.