0

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

我发现当开发者应用没有定义属性时,比如verifyapikey.VerifyApiKey.apiproduct.developer.quota.limit,它默认为0。这使得配额检查失败。

这要求创建的所有新开发者应用程序都具有该属性集。如果没有设置,怎么可能有默认配额?

4

4 回答 4

2

我能想到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>
于 2014-01-25T00:01:53.247 回答
0

可以在策略使用的API 产品级别配置配额。该变量将反映此配置。

于 2014-01-24T12:53:07.140 回答
0

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

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

这里有这些实体之间关系的详细描述:

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

于 2014-01-24T13:45:24.400 回答
0

查看配额架构定义,我看到允许中的 count 和 countRef 都可用。

你有没有尝试过这样的事情?

<Quota name="CheckQuota"> 
  <Interval>24</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100" countRef="apiproduct.developer.quota.limit"/>
  <Identifier ref="client_id"/>
</Quota>
于 2014-01-24T17:00:21.123 回答