Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Co
Użyj tej zasady, aby dynamicznie modyfikować pozostałą liczbę żądań dozwolonych przez docelową zasadę dotyczącą limitów. Zazwyczaj używasz tej zasady, aby zmniejszyć bieżącą liczbę limitów w docelowej zasadzie dotyczącej limitów zamiast czekać na zresetowanie tej liczby.
Na przykład docelowa zasada dotycząca limitów ogranicza dewelopera do 1000 żądań tygodniowo. Do drugiego dnia tygodnia deweloper osiągnął już ten limit. Użyj zasady Reset Quota aby odjąć 500 od licznika limitów, co pozwoli na dodatkowe 500 żądań w pozostałej części tygodnia. Pod koniec tygodnia zasada dotycząca limitów zostanie zresetowana, a deweloper będzie mógł wysłać 1000 żądań w tygodniu.
Więcej informacji o zasadach dotyczących limitów znajdziesz w artykule Zasady dotyczące limitów. Zapoznaj się też z tym postem w społeczności na temat używania zasady Reset Quota.
Przykłady
Te przykłady kodu zasad pokazują, jak zresetować liczniki limitów:
Resetowanie domyślnego licznika
<ResetQuota name="resetQuota">
<Quota name="MyQuotaPolicy">
<Identifier name="_default">
<Allow>100</Allow>
</Identifier>
</Quota>
</ResetQuota>Zasada Reset Quota określa docelową zasadę dotyczącą limitów za pomocą atrybutu name tagu <Quota>. W powyższym przykładzie, celem jest zasada MyQuotaPolicy.
Wszystkie zasady Reset Quota wymagają tagu <Identifier>, aby określić licznik w zasadzie dotyczącej limitów, który ma zostać zaktualizowany. Domyślnie zasada dotycząca limitów ma jeden licznik, chyba że zawiera też tag <Identifier>. W tym przykładzie, docelowa zasada dotycząca limitów nie używa tagu <Identifier>, więc atrybut name określasz jako _default.
Element <Allow> określa wartość używaną do zmniejszenia bieżącej liczby limitów w docelowej zasadzie. W tym przykładzie liczba limitów jest zmniejszana o 100, co pozwala na wysłanie 100 dodatkowych żądań do docelowej zasady dotyczącej limitów. Gdy docelowa zasada dotycząca limitów zostanie zresetowana, ta zmiana zostanie odrzucona.
Poniżej znajduje się definicja docelowej zasady dotyczącej limitów:
<Quota name="MyQuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Korzystanie z wzorca
<ResetQuota name="resetQuota">
<Quota ref="request.header.quotapolicy">
<Identifier name="_default">
<Allow ref="request.header.allowquota" />
</Identifier>
</Quota>
</ResetQuota>W tym przykładzie przekazujesz nazwę docelowej zasady dotyczącej limitów i zmianę jej liczby limitów limitów jako nagłówki w żądaniu. Następnie możesz odwołać się do zmiennych przepływu zawierających te wartości w zasadzie Reset Quota.
Określanie identyfikatora
<ResetQuota name="resetQuota">
<Quota name="QuotaPolicy">
<Identifier ref="request.header.clientId">
<Allow>100</Allow>
</Identifier>
</Quota>
</ResetQuota>Jeśli docelowa zasada dotycząca limitów określa tag <Identifier>, możesz określić tę samą wartość w tagu <Identifier> zasady Reset Quota w celu zaktualizowania konkretnej liczby limitów. Zwróć uwagę, że tag <Identifier> w docelowej zasadzie dotyczącej limitów poniżej pasuje do wartości określonej w zasadzie Reset Quota:
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Dokumentacja elementów
Dokumentacja elementów opisuje elementy i atrybuty zasady Reset 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>Atrybuty <ResetQuota>
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
name |
Wewnętrzna nazwa zasady. Wartość atrybutu Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw jako Ustaw jako |
fałsz | Opcjonalnie |
enabled |
Aby egzekwować zasadę, ustaw wartość Aby wyłączyć zasadę, ustaw wartość |
prawda | Opcjonalnie |
async |
Ten atrybut został wycofany. |
fałsz | Wycofano |
<DisplayName> element
Używaj oprócz atrybutu name do oznaczania zasady w
edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.
<DisplayName>Policy Display Name</DisplayName>
| Domyślny |
Nie dotyczy Jeśli pominiesz ten element, atrybut |
|---|---|
| Obecność | Opcjonalnie |
| Typ | Ciąg znaków |
Element <Quota>
Określa docelową zasadę dotyczącą limitów, której licznik ma zostać zaktualizowany.
<Quota name="quotaName" ref="request.header.quotapolicy">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| Domyślny: | Nie dotyczy |
| Obecność: | Wymagane |
| Typ: | Nie dotyczy |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| name |
Określa nazwę docelowej zasady dotyczącej limitów. |
Nie dotyczy | Opcjonalny |
| ref | Zmienna przepływu, która zawiera nazwę docelowej zasady dotyczącej limitów. Jeśli określono zarówno ref, jak i name, priorytet ma ref. Jeśli ref nie zostanie rozpoznany w czasie działania, używana jest wartość name. | Nie dotyczy | Opcjonalny |
Element <Quota>/<Identifier>
Zmienna używana do jednoznacznego identyfikowania licznika, jeśli docelowa zasada dotycząca limitów określa tag <Identifier>.
<Quota name="quotaName">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| Domyślny: | Nie dotyczy |
| Obecność: | Wymagane |
| Typ: | Ciąg znaków |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| name |
Określa nazwę identyfikatora liczby w docelowej zasadzie dotyczącej limitów. W przypadku zasady dotyczącej limitów, która nie używa tagu <Identifier>, określ _default. |
Nie dotyczy | Opcjonalny |
| ref |
Zmienna przepływu, która zawiera nazwę identyfikatora liczby w docelowej zasadzie dotyczącej limitów policy. Jeśli określono zarówno ref, jak i name, priorytet ma ref. Jeśli ref nie zostanie rozpoznany w czasie działania, używana jest wartość name. |
Nie dotyczy | Opcjonalny |
Element <Quota>/<Identifier>/<Allow>
Określa kwotę, o jaką ma zostać zmniejszony licznik limitów. Musisz określić <Allow>, w przeciwnym razie zasada nie zmodyfikuje limitu.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
| Domyślny: | Nie dotyczy |
| Obecność: | Wymagane |
| Typ: | Liczba całkowita |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| ref |
Zmienna przepływu, która zawiera zmianę liczby limitów w docelowej zasadzie dotyczącej limitów. |
Nie dotyczy | Opcjonalny |
Element <Quota>/<Identifier>/<Class>
Określa klasę, dla której ma zostać zaktualizowany licznik limitów. Więcej informacji o używaniu klasy z zasadą dotyczącą limitów znajdziesz w artykule Zasady dotyczące limitów.
<Identifier name="_default">
<Class ref="request.header.classIdentifier">
<Allow>200</Allow>
</Class>
</Identifier>| Domyślny: | Nie dotyczy |
| Obecność: | Opcjonalny |
| Typ: | Nie dotyczy |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| ref |
Odwołanie do zmiennej przepływu, która zawiera klasę limitów do zaktualizowania. |
Nie dotyczy | Opcjonalny |
Dokumentacja błędów
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 |