Apigee默认基于动态的配额设置

时间:2014-01-24 11:21:09

标签: quota rate-limiting apigee

对于基于动态的配额设置: http://apigee.com/docs/api-services/content/rate-limit-api-traffic-using-quota#dynamic-product-based-quota-settings

我发现当Developer App没有定义任何属性时,例如verifyapikey.VerifyApiKey.apiproduct.developer.quota.limit,它默认为0.这会使配额检查失败。

这需要创建所有新的开发人员应用程序以设置属性。 如果没有设置默认配额,怎么可能?

4 个答案:

答案 0 :(得分:2)

我可以想到两个选项:

1)更好的选择是确保应用总是具有您首先填充的配额所引用的变量。这消除了对2个变量的需要,并且可以在引用时使用配额策略。此外,管理员可以在必要时覆盖或分配不同的配额。可以配置Dev Connect以确保在创建或注册应用程序时分配应用程序自定义属性。

2)或者,您可以从1个来源(如应用自定义变量)进行检查,然后如果它没有值,则可以使用其他来源(如API产品配额设置)。

不幸的是,我不相信这可以在配额政策中完成。相反,您可以使用服务标注策略根据可用内容设置1个配额变量。

那......或者你可以使用2种不同的配额政策,其中任何一种都会根据他们的条件被触发。他们的条件会引用你提到的变量来检查它们是否存在。

<Step>
<Condition>(app.quota_var is null)</Condition>
  <Name>QuotaPolicyUsingApiProductQuotaReference</Name>
</Step>
<Step>
  <!-- if the app custom variable is there, you must mean to use it -->
  <Condition>(app.quota_var != null)</Condition>
  <Name>QuotaPolicyUsingAppQuotaReference</Name>
</Step>

答案 1 :(得分:0)

配额可以在API product级别配置,供策略使用。该变量将反映此配置。

答案 2 :(得分:0)

API产品就像一个“元策略”;它充当其他策略用于实施访问控制和配额的值的来源。

确保您创建开发人员,为该开发人员创建应用,并批准至少一个API产品的应用。当API代理在运行时检查密钥时,它还将解析API产品并提取配额设置 - 有效地将密钥与“服务计划”匹配。

这里有关于这些实体之间关系的详细说明:

http://apigee.com/docs/api-services/content/using-edge-management-api-publish-apis

答案 3 :(得分:0)

查看Quota schema definition,我在Allow中看到count和countRef都可用。

你尝试过这样的事吗?

<Quota name="CheckQuota"> 
  <Interval>24</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100" countRef="apiproduct.developer.quota.limit"/>
  <Identifier ref="client_id"/>
</Quota>