Вы просматриваете документацию 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 получает приоритет. Если 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> является обязательным и определяет целевую политику квот, счетчик которой должен быть обновлен с помощью политики сброса квоты. | build |
policies.resetquota.FailedToResolveAllowCountRef | Н/Д | Ссылку на переменную, содержащую счетчик разрешений в элементе <Allow> политики, невозможно преобразовать в значение. Этот элемент является обязательным и определяет величину уменьшения счетчика квоты. | build |
policies.resetquota.FailedToResolveRLPolicy | 500 | Переменную, на которую ссылается атрибут ref в элементе <Quota> , невозможно разрешить. | build |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
Название ошибки | Причина | Исправить |
---|---|---|
InvalidCount | Если значение счетчика, указанное в элементе <Allow> политики сброса квот, не является целым числом, развертывание прокси-сервера API завершается неудачей. | build |