无法在 Azure API 管理中续订 Qouta

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

实际上,我正在尝试为特定客户重新分配配额,因为他超出了配额,但同时我不想仅针对此客户为所有客户端重置配额,也不更改订阅密钥。

下面的代码无法正常工作,我尝试测试它,没有完全达到限制,有时达到超过配额,有时低于配额,而且差别不小,差别很大

<choose>
        <when condition="@(context.Subscription.Id == "")">
            <quota-by-key calls="20" renewal-period="500" counter-key="@(context.Subscription.Key)" />
        </when>
   <otherwise />
</choose>
azure azure-api-management
1个回答
0
投票

我通过创建新的订阅密钥来使用相同的策略,它对我来说按预期工作。

请验证您使用的订阅 ID 是否正确。默认情况下,如果您未在任何其他订阅密钥的请求标头中提供 ocp-apim-subscription-key,APIM 会采用内置全访问订阅订阅密钥。对于内置全访问订阅,订阅 ID 值为 master

您可以借助以下策略检查您的 API 正在使用的订阅密钥名称和 ID -

<set-variable  name="ID"  value="@(context.Subscription.Id)"  />
<set-variable  name="Name"  value="@(context.Subscription.Name)"  />

您可以在Trace中看到数值

enter image description here

enter image description here

政策

<choose>
<when  condition="@(context.Subscription.Id== "test")">
<quota-by-key  calls="2"  renewal-period="300"  counter-key="@(context.Subscription.Key)"  />
</when>
</choose>

测试

enter image description here

enter image description here

踪迹

enter image description here

enter image description here

您也可以参考这个链接

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