Политика ResetQuota

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Что

Используйте для динамического изменения оставшегося количества запросов, разрешенных целевой политикой квот. Обычно вы используете эту политику для уменьшения текущего количества квот целевой политики квот, а не для ожидания сброса счетчика квот.

Например, целевая политика квот ограничивает разработчика 1000 запросами в неделю. Ко второму дню недели разработчик уже достиг этого лимита. Используйте политику сброса квоты, чтобы вычесть 500 из счетчика квот, чтобы разрешить дополнительные 500 запросов до конца недели. В конце недели политика квот сбрасывается, и разработчик возвращается к 1000 запросам за неделю.

Дополнительную информацию о политике квот см. в разделе Политика квот. Также ознакомьтесь с публикацией сообщества об использовании политики сброса квот.

Образцы

Эти примеры кода политики иллюстрируют, как сбросить счетчики квот:

Сбросить счетчик по умолчанию

<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Политика сброса квот определяет целевую политику квот с помощью атрибута имени тега <Quota> . В приведенном выше примере целевой политикой является политика MyQuotaPolicy.

Все политики сброса квот требуют, чтобы тег <Identifier> указывал счетчик в политике квот, который необходимо обновить. По умолчанию политика квот имеет один счетчик, если политика квот также не включает тег <Identifier> . В этом примере целевая политика квот не использует тег <Identifier> , поэтому вы указываете атрибут имени как _default .

Элемент <Allow> указывает значение, используемое для уменьшения текущего количества квот в целевой политике. В этом примере количество квот уменьшается на 100, чтобы разрешить еще 100 запросов к целевой политике квот. При сбросе целевой политики квот это изменение отменяется.

Ниже показано определение целевой политики квот:

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Используйте ссылку

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

В этом примере вы передаете имя целевой политики квот и изменение ее количества квот в качестве заголовков запроса. Затем вы можете ссылаться на переменные потока, содержащие эти значения, в политике сброса квоты.

Укажите идентификатор

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Если в целевой политике квот указан тег <Identifier> , вы можете указать то же значение для тега <Identifier> политики сброса квоты, чтобы обновить определенное количество квот. Обратите внимание, что тег <Identifier> в целевой политике квот ниже соответствует значению, указанному в политике сброса квоты:

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Ссылка на элемент

Ссылка на элемент описывает элементы и атрибуты политики сброса квоты.

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
   <DisplayName>Reset Quota 1</DisplayName>
   <Quota name="quotaName" ref="request.header.quotapolicy">
      <Identifier name="identifierName" ref="request.header.identifier">
         <Class ref="request.header.classIdentifier" />
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Атрибуты <ResetQuota>

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> 

В следующей таблице описаны атрибуты, общие для всех родительских элементов политики:

Атрибут Описание По умолчанию Присутствие
name

Внутреннее имя политики. Значение атрибута name может содержать буквы, цифры, пробелы, дефисы, подчеркивания и точки. Это значение не может превышать 255 символов.

При необходимости используйте элемент <DisplayName> , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

Н/Д Необходимый
continueOnError

Установите значение false , чтобы возвращать ошибку в случае сбоя политики. Это ожидаемое поведение для большинства политик.

Установите значение true , чтобы выполнение потока продолжалось даже после сбоя политики.

ЛОЖЬ Необязательный
enabled

Установите значение true , чтобы обеспечить соблюдение политики.

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

истинный Необязательный
async

Этот атрибут устарел.

ЛОЖЬ Устарело

Элемент <DisplayName>

Используйте в дополнение к атрибуту name , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

<DisplayName>Policy Display Name</DisplayName>
По умолчанию

Н/Д

Если вы опустите этот элемент, будет использовано значение атрибута name политики.

Присутствие Необязательный
Тип Нить

Элемент <Квота>

Идентифицирует целевую политику квот, счетчик которой должен быть обновлен.

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
По умолчанию: Н/Д
Присутствие: Необходимый
Тип: Н/Д

Атрибуты

Атрибут Описание По умолчанию Присутствие
имя

Указывает имя целевой политики квот.

Н/Д Необязательный
ссылка Переменная потока, содержащая имя целевой политики квот. Если указаны и ref , и name , то ref получает приоритет. Если ref не разрешается во время выполнения, используется имя . Н/Д Необязательный

Элемент <Квота>/<Идентификатор>

Переменная, используемая для уникальной идентификации счетчика, если в целевой политике квот указан тег <Identifier> .

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
По умолчанию: Н/Д
Присутствие: Необходимый
Тип: Нить

Атрибуты

Атрибут Описание По умолчанию Присутствие
имя

Указывает имя идентификатора счетчика в целевой политике квот. Для политики квот, которая не использует тег <Identifier> , укажите _default .

Н/Д Необязательный
ссылка

Переменная потока, содержащая имя идентификатора счетчика в целевой политике квот. Если указаны и ref , и name , то ref получает приоритет. Если ref не разрешается во время выполнения, используется имя .

Н/Д Необязательный

Элемент <Quota>/<Идентификатор>/<Разрешить>

Указывает сумму уменьшения счетчика квоты. Вы должны указать <Allow> , иначе политика не изменит квоту.

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
По умолчанию: Н/Д
Присутствие: Необходимый
Тип: Целое число

Атрибуты

Атрибут Описание По умолчанию Присутствие
ссылка

Переменная потока, содержащая изменение количества квот в целевой политике квот.

Н/Д Необязательный

Элемент <Quota>/<Идентификатор>/<Класс>

Указывает класс, для которого обновляется счетчик квоты. Дополнительные сведения об использовании класса с политикой квот см. в разделе Политика квот .

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
По умолчанию: Н/Д
Присутствие: Необязательный
Тип: Н/Д

Атрибуты

Атрибут Описание По умолчанию Присутствие
ссылка

Ссылка на переменную потока, содержащую обновляемый класс квоты.

Н/Д Необязательный

Ссылка на ошибку

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
policies.resetquota.InvalidRLPolicy 500 Политика квот, указанная в элементе <Quota> политики сброса квоты, не определена в прокси-сервере API и, следовательно, недоступна во время потока. Элемент <Quota> является обязательным и определяет целевую политику квот, счетчик которой должен быть обновлен с помощью политики сброса квоты.
policies.resetquota.FailedToResolveAllowCountRef Н/Д Ссылку на переменную, содержащую счетчик разрешений в элементе <Allow> политики, невозможно преобразовать в значение. Этот элемент является обязательным и определяет величину уменьшения счетчика квоты.
policies.resetquota.FailedToResolveRLPolicy 500 Переменную, на которую ссылается атрибут ref в элементе <Quota> , невозможно разрешить.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidCount Если значение счетчика, указанное в элементе <Allow> политики сброса квот, не является целым числом, развертывание прокси-сервера API завершается неудачей.

Схемы

Связанные темы

Политика квот