Вы просматриваете документацию 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 | Внутреннее имя политики. Значение атрибута При необходимости используйте элемент | Н/Д | Необходимый |
continueOnError | Установите значение Установите значение | ЛОЖЬ | Необязательный |
enabled | Установите значение Установите значение | истинный | Необязательный |
async | Этот атрибут устарел. | ЛОЖЬ | Устарело |
Элемент <DisplayName>
Используйте в дополнение к атрибуту name
, чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.
<DisplayName>Policy Display Name</DisplayName>
По умолчанию | Н/Д Если вы опустите этот элемент, будет использовано значение атрибута |
---|---|
Присутствие | Необязательный |
Тип | Нить |
Элемент <Квота>
Идентифицирует целевую политику квот, счетчик которой должен быть обновлен.
<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 получает приоритет. Если ссылка не разрешается во время выполнения, используется имя . | Н/Д | Необязательный |
Элемент <Quota>/<Идентификатор>/<Разрешить>
Указывает сумму уменьшения счетчика квоты. Вы должны указать <Allow> , иначе политика не изменит квоту.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
По умолчанию: | Н/Д |
Присутствие: | Необходимый |
Тип: | Целое число |
Атрибуты
Атрибут | Описание | По умолчанию | Присутствие |
---|---|---|---|
ссылка | Переменная потока, содержащая изменение количества квот в целевой политике квот. | Н/Д | Необязательный |
Элемент <Квота>/<Идентификатор>/<Класс>
Указывает класс, для которого обновляется счетчик квоты. Дополнительные сведения об использовании класса с политикой квот см. в разделе Политика квот .
<Identifier name="_default"> <Class ref="request.header.classIdentifier"> <Allow>200</Allow> </Class> </Identifier>
По умолчанию: | Н/Д |
Присутствие: | Необязательный |
Тип: | Н/Д |
Атрибуты
Атрибут | Описание | По умолчанию | Присутствие |
---|---|---|---|
ссылка | Ссылка на переменную потока, содержащую обновляемый класс квоты. | Н/Д | Необязательный |
Ссылка на ошибку
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | The Quota policy specified in the <Quota> element of the Reset Quota policy
is not defined in the API proxy and thus is not available during the flow. The <Quota>
element is mandatory and identifies the target Quota policy whose counter should be updated
through the Reset Quota policy. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
N/A | The reference to the variable containing the allow count in the <Allow> element
of the policy cannot be resolved to a value. This element is mandatory and specifies the amount
to decrease the quota counter. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | The variable referenced by the ref attribute in the <Quota> element
cannot be resolved. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidCount |
If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer,
then the deployment of the API proxy fails.
|
build |