Zasada ResetQuota

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Co

Służy do dynamicznego modyfikowania pozostałej liczby żądań dozwolonych przez zasadę dotyczącą docelowego limitu. Zwykle ta zasada służy do zmniejszenia bieżącej liczby docelowych wartości w ramach zasady dotyczącej limitu docelowego, zamiast czekać na zresetowanie liczby limitów.

Na przykład zasada dotycząca docelowego limitu pozwala deweloperowi przesłać maksymalnie 1000 żądań tygodniowo. Limit ten został już osiągnięty w drugim dniu tygodnia. Użyj zasady resetowania limitu, aby odjąć 500 od licznika limitów, aby pozwolić na kolejne 500 żądań do końca tygodnia. Pod koniec tygodnia zasady dotyczące limitów zostaną zresetowane, a deweloper wraca do 1000 żądań na tydzień.

Więcej informacji o zasadach dotyczących limitów znajdziesz w zasadach dotyczących limitów. Przeczytaj też ten post na forum społeczności dotyczący zasady resetowania limitu.

Sample

Te przykładowe fragmenty kodu zasad pokazują, jak resetować liczniki limitów:

Zresetuj domyślny licznik

<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Zasada resetowania limitu określa zasady dotyczące limitów docelowych przy użyciu atrybutu name tagu <Quota>. W powyższym przykładzie celem jest zasada MyQuotaPolicy.

Wszystkie zasady resetowania limitów wymagają tagu <Identifier> do określenia licznika w zasadzie limitów do aktualizacji. Domyślnie zasada dotycząca limitów ma 1 licznik, chyba że zasada dotycząca limitu zawiera też tag <Identifier>. W tym przykładzie zasada dotycząca docelowych limitów nie korzysta z tagu <Identifier>, więc określasz dla atrybutu name wartość _default.

Element <Allow> określa wartość używaną do zmniejszania bieżącej liczby limitów w zasadzie docelowej. W tym przykładzie liczba została zmniejszona o 100, aby można było zezwolić na kolejne 100 żądań w ramach zasady dotyczącej limitów docelowych. Po zresetowaniu zasady limitu docelowego ta zmiana jest odrzucana.

Poniżej znajduje się definicja zasady dotyczącej limitów docelowych:

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Użyj referencji

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

W tym przykładzie przekazujesz w żądaniu nazwę zasady dotyczącej limitów docelowych oraz zmianę jej liczby w postaci nagłówków. Następnie możesz odwołać się do zmiennych przepływu zawierających te wartości w zasadzie resetowania limitu.

Podaj identyfikator

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Jeśli docelowa zasada limitów określa tag <Identifier>, możesz podać tę samą wartość w tagu <Identifier> w zasadzie resetowania limitu, aby zaktualizować określoną liczbę limitów. Zwróć uwagę na to, że tag <Identifier> w poniższej zasadzie limitu docelowego pasuje do wartości określonej w zasadach resetowania limitu:

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Odwołanie do elementu

Dokumentacja elementów zawiera opis elementów i atrybutów zasady resetowania limitu.

<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"> 

Tabela poniżej zawiera opis atrybutów wspólnych dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślne 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>, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw wartość false, aby zwracać błąd w przypadku niepowodzenia zasady. Jest to normalne działanie większości zasad.

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

false Opcjonalnie
enabled

Ustaw jako true, aby wymuszać zasadę.

Ustaw wartość false, aby wyłączyć tę zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie dołączona do procesu.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

false Wycofano

Element <DisplayName>

Użyj oprócz atrybutu name, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślne

Nie dotyczy

Jeśli pominiesz ten element, zostanie użyta wartość atrybutu name zasady.

Obecność Opcjonalnie
Typ Ciąg znaków

Element <Limit>

Określa docelową zasadę dotyczącą limitów, której licznik należy zaktualizować.

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
Domyślnie: Nie dotyczy
Obecność: Wymagane
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślne Obecność
nazwa

Określa nazwę zasady dotyczącej limitów docelowych.

Nie dotyczy Opcjonalnie
referencja Zmienna przepływu zawierająca nazwę zasady dotyczącej docelowych limitów. Jeśli podasz zarówno ref, jak i name, ref ma priorytet. Jeśli argument ref nie jest rozpoznawany w czasie działania, używany jest element name. Nie dotyczy Opcjonalnie

Element <Limit>/<Identyfikator>

Zmienna używana do jednoznacznego identyfikowania licznika, jeśli zasada docelowego limitu określa tag <Identifier>.

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
Domyślnie: Nie dotyczy
Obecność: Wymagane
Typ: Ciąg znaków

Atrybuty

Atrybut Opis Domyślne Obecność
nazwa

Określa nazwę identyfikatora liczby w zasadzie dotyczącej docelowego limitu. W przypadku zasady limitu, która nie używa tagu <Identifier>, wpisz _default.

Nie dotyczy Opcjonalnie
referencja

Zmienna przepływu zawierająca nazwę identyfikatora liczby w zasadzie dotyczącej docelowego limitu. Jeśli podasz zarówno ref, jak i name, priorytet ref jest traktowany priorytetowo. Jeśli argument ref nie jest rozpoznawany w czasie działania, używany jest element name.

Nie dotyczy Opcjonalnie

Element <Limit>/<Identyfikator>/<Allow>

Określa wartość, o którą ma zostać zmniejszony licznik limitów. Musisz określić <Allow>. W przeciwnym razie zasada nie będzie modyfikować limitu.

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
Domyślnie: Nie dotyczy
Obecność: Wymagane
Typ: Liczba całkowita

Atrybuty

Atrybut Opis Domyślne Obecność
referencja

Zmienna przepływu zawierająca zmianę liczby limitów w zasadzie dotyczącej docelowych limitów.

Nie dotyczy Opcjonalnie

Element <Limit>/<Identyfikator>/<Class>

Określa klasę, dla której aktualizowany jest licznik limitów. Więcej informacji o korzystaniu z klasy z zasadami dotyczącymi limitów znajdziesz w zasadach dotyczących limitów.

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
Domyślnie: Nie dotyczy
Obecność: Opcjonalnie
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślne Obecność
referencja

Odniesienie do zmiennej przepływu zawierającej klasę limitu do zaktualizowania.

Nie dotyczy Opcjonalnie

Informacje o błędach

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