Настройки динамических квот Apigee по умолчанию

Для динамических настроек квот: 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. Это приводит к сбою проверки квоты.

Это требует, чтобы все новые созданные приложения для разработчиков имели установленный атрибут. Как возможно иметь квоту по умолчанию, если она не установлена?


person mparaz    schedule 24.01.2014    source источник


Ответы (4)


Есть 2 варианта, о которых я могу думать:

1) Лучшим вариантом является обеспечение того, чтобы приложения всегда имели ту переменную, на которую вы ссылаетесь для квоты, заполненной в первую очередь. Это устраняет необходимость в двух переменных, и можно использовать политику квот, как вы указали. Кроме того, при необходимости администратор может переопределить или назначить другую квоту. 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>
person akoo1010    schedule 25.01.2014

Квоты можно настроить на уровне продукта API, которые используются политика. Эта переменная будет отражать эту конфигурацию.

person Srikanth    schedule 24.01.2014

Продукт API похож на «метаполитику»; он действует как источник значений, используемых другими политиками для обеспечения контроля доступа и квот.

Убедитесь, что вы создали разработчика, создали приложение для этого разработчика и утвердили приложение по крайней мере для одного продукта API. Когда прокси-сервер API проверяет ключ во время выполнения, он также разрешает продукт API и извлекает параметры квоты, эффективно сопоставляя ключ с «планом обслуживания».

Подробное описание отношений между этими сущностями приведено здесь:

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

person ap-andrew    schedule 24.01.2014
comment
Спасибо. Вы имеете в виду, что прокси-сервер API принимает атрибуты для квот (и других) как из продукта API, так и из приложения разработчика? Я хотел бы использовать параметр из приложения разработчика, если он есть, в противном случае использовать продукт - так ли это? - person mparaz; 24.01.2014

Глядя на определение схемы квоты, Я вижу, что count и countRef доступны в Allow.

Вы пробовали что-то подобное?

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