Zasada ResetQuota

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 name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; 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 name zasady otrzyma wartość .

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

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
policies.resetquota.InvalidRLPolicy 500 Zasada dotycząca limitu określona w elemencie <Quota> zasady resetowania limitu nie jest zdefiniowana w serwerze proxy interfejsu API, dlatego jest niedostępna podczas tego procesu. Element <Quota> jest obowiązkowy i wskazuje zasadę dotyczącą docelowego limitu, której licznik należy zaktualizować za pomocą zasady resetowania limitu.
policies.resetquota.FailedToResolveAllowCountRef Nie dotyczy Odniesienia do zmiennej zawierającej liczbę dozwolonych w elemencie <Allow> zasady nie można przypisać do wartości. Ten element jest wymagany i określa kwotę, o którą ma zostać zmniejszony licznik limitu.
policies.resetquota.FailedToResolveRLPolicy 500 Nie można znaleźć zmiennej, do której odwołuje się atrybut ref w elemencie <Quota>.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidCount Jeśli liczba określona w elemencie <Allow> zasady resetowania limitów nie jest liczbą całkowitą, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Schematy

Powiązane artykuły

Zasady dotyczące limitów