Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Что
Используется для динамического изменения оставшегося количества запросов, разрешенных целевой политикой квот. Обычно эта политика используется для уменьшения текущего значения квоты целевой политики квот, а не для ожидания сброса значения квоты.
Например, политика целевых квот ограничивает разработчика 1000 запросами в неделю. Ко второму дню недели разработчик уже достиг этого лимита. Используйте политику сброса квот, чтобы вычесть 500 из счетчика квот и разрешить еще 500 запросов до конца недели. В конце недели политика квот сбрасывается, и разработчик возвращается к 1000 запросам за неделю.
Более подробную информацию о политике квот см. в разделе «Политика квот». Также ознакомьтесь с этим сообщением на форуме о том, как использовать функцию «Сбросить политику квот».
Образцы
Эти примеры кода политики демонстрируют, как сбросить счетчики квот:
Сбросить счетчик по умолчанию
<ResetQuota name="resetQuota">
<Quota name="MyQuotaPolicy">
<Identifier name="_default">
<Allow>100</Allow>
</Identifier>
</Quota>
</ResetQuota>Политика сброса квоты указывает целевую политику квоты с помощью атрибута name тега <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> элемент
Определяет целевую политику квотирования, счетчик которой необходимо обновить.
<Quota name="quotaName" ref="request.header.quotapolicy">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| По умолчанию: | Н/Д |
| Присутствие: | Необходимый |
| Тип: | Н/Д |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
| имя | Указывает название целевой политики квотирования. | Н/Д | Необязательный |
| ссылка | Переменная потока, содержащая имя целевой политики квот. Если указаны и ref , и name , то приоритет отдается ref . Если ref не определяется во время выполнения, то используется name . | Н/Д | Необязательный |
<Quota>/<Identifier> элемент
Переменная, используемая для однозначной идентификации счетчика, если целевая политика квотирования указывает тег <Identifier> .
<Quota name="quotaName">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| По умолчанию: | Н/Д |
| Присутствие: | Необходимый |
| Тип: | Нить |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
| имя | Указывает имя идентификатора счетчика в целевой политике квот. Для политики квот, которая не использует тег <Identifier> , укажите _default . | Н/Д | Необязательный |
| ссылка | Переменная потока, содержащая имя идентификатора счетчика в целевой политике квот. Если указаны и ref , и name , то приоритет отдается ref . Если ref не разрешается во время выполнения, то используется name . | Н/Д | Необязательный |
<Quota>/<Identifier>/<Allow> элемент
Указывает величину уменьшения счетчика квоты. Необходимо указать <Allow> , в противном случае политика не изменит квоту.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
| По умолчанию: | Н/Д |
| Присутствие: | Необходимый |
| Тип: | Целое число |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
| ссылка | Переменная потока, содержащая информацию об изменении количества квот в целевой политике квотирования. | Н/Д | Необязательный |
<Quota>/<Identifier>/<Class> элемент
Указывает класс, для которого обновляется счетчик квот. Дополнительную информацию об использовании класса с политикой квот см. в разделе «Политика квот» .
<Identifier name="_default">
<Class ref="request.header.classIdentifier">
<Allow>200</Allow>
</Class>
</Identifier>| По умолчанию: | Н/Д |
| Присутствие: | Необязательный |
| Тип: | Н/Д |
Атрибуты
| Атрибут | Описание | По умолчанию | Присутствие |
|---|---|---|---|
| ссылка | Ссылка на переменную потока, содержащую класс квоты для обновления. | Н/Д | Необязательный |
Ссылка на ошибку
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Ошибки выполнения
Эти ошибки могут возникнуть при выполнении политики.
| Код неисправности | Статус HTTP | Причина | Исправить |
|---|---|---|---|
policies.resetquota.InvalidRLPolicy | 500 | Политика квот, указанная в элементе <Quota> политики сброса квоты, не определена в прокси-сервере API и, следовательно, недоступна во время потока. Элемент <Quota> является обязательным и определяет целевую политику квот, счетчик которой должен быть обновлен с помощью политики сброса квоты. | build |
policies.resetquota.FailedToResolveAllowCountRef | Н/Д | Ссылку на переменную, содержащую счетчик разрешений в элементе <Allow> политики, невозможно преобразовать в значение. Этот элемент является обязательным и определяет величину уменьшения счетчика квоты. | build |
policies.resetquota.FailedToResolveRLPolicy | 500 | Переменную, на которую ссылается атрибут ref в элементе <Quota> , невозможно разрешить. | build |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCount | Если значение счетчика, указанное в элементе <Allow> политики сброса квот, не является целым числом, развертывание прокси-сервера API завершается неудачей. | build |