Zasada ResetQuota

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Co

Umożliwia dynamiczną zmianę pozostałej liczby żądań dozwolonych przez zasadę dotyczącą limitów docelowych. Zwykle używasz tej zasady do zmniejszenia bieżącej liczby limitów w zasadzie docelowego limitu zamiast czekać na zresetowanie licznika.

Na przykład zasada dotycząca limitu docelowego ogranicza deweloperowi do 1000 żądań tygodniowo. Przez drugiego dnia tygodnia, deweloper już osiągnął już ten limit. Używanie zasady resetowania limitu odejmuje 500 od ich licznika, a pozostałe 500 żądań w tym tygodniu. Pod koniec tygodnia zasady dotyczące limitów są resetowane, a deweloper powraca do 1000. żądań na tydzień.

Zapoznaj się z zasadami dotyczącymi limitów, aby dowiedzieć się więcej. zasady dotyczące limitów. Zobacz też te post na karcie Społeczność na temat korzystania z zasady resetowania limitów.

Przykłady

Te przykłady kodu zasad pokazują, jak zresetować 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 zasadę limitu docelowego przy użyciu atrybutu name tagu <Limit>. W przykładzie powyżej obiektem docelowym jest zasada MyLimitPolicy.

Wszystkie zasady resetowania limitów wymagają tagu &lt;Identifier&gt;, aby określić licznik w zasadzie dotyczącej limitów. Domyślnie zasada dotycząca limitów ma jeden licznik, chyba że zasady dotyczące limitów zawierają też tag &lt;Identifier&gt;. W tym przykładzie zasada dotycząca limitu docelowego nie używa tagu &lt;Identifier&gt;, więc podajesz atrybut name jako _default.

Element &lt;Allow&gt; określa wartość używaną do zmniejszenia bieżącego limitu w zasadzie docelowej. W tym na przykład liczba żądań jest zmniejszona o 100, aby umożliwić osiągnięcie kolejnych 100 żądań do limitu docelowego . Po zresetowaniu zasady dotyczącej 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 nazwę zasady dotyczącej limitu docelowego oraz zmianę jej limitu , pod postacią nagłówków w żądaniu. Możesz następnie odwoływać się do zmiennych przepływu zawierających te wartości w zasadzie resetowania limitów.

Podaj identyfikator

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

Jeśli zasada limitu docelowego określa tag &lt;Identifier&gt;, możesz określ tę samą wartość tagu &lt;Identifier&gt; dla resetowania limitu zgodnie z zasadą aktualizacji określonego limitu. Zwróć uwagę, że tag &lt;Identifier&gt; w środowisku docelowym Poniższa zasada dotycząca limitów odpowiada wartości określonej w zasadzie 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 elementu opisuje elementy i atrybuty 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>

&lt;ResetQuota&gt; atrybuty

<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

&lt;Quota&gt; element

Określa zasadę dotyczącą limitu docelowego, 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ślne: Nie dotyczy
Obecność: Wymagane
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa

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

Nie dotyczy Opcjonalnie
odsyłacz Zmienna przepływu zawierająca nazwę zasady dotyczącej limitów docelowych. Jeśli określono zarówno wartość ref, jak i name, z kolei ref ma priorytet. Jeśli ciąg ref już tak nie są rozpoznawane w czasie działania, używane jest pole name. Nie dotyczy Opcjonalnie

&lt;Quota&gt;/&lt;Identifier&gt; element

Zmienna używana do jednoznacznej identyfikacji licznika, jeśli określona zasada limitu docelowego określa &lt;Identifier&gt;.

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

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa

Określa nazwę identyfikatora liczby w zasadzie limitów docelowych. Aby uzyskać limit zasady, które nie używają tagu &lt;Identifier&gt;, określ _default.

Nie dotyczy Opcjonalnie
odsyłacz

Zmienna przepływu zawierająca nazwę identyfikatora liczby w docelowym limicie . Jeśli określono zarówno ref, jak i name, z kolei ref ma priorytet. Jeśli ciąg ref nie kończy się na środowiska wykonawczego, jest używana wartość name.

Nie dotyczy Opcjonalnie

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Allow&gt; element

Określa kwotę, o którą chcesz zmniejszyć licznik limitu. Musisz określić element &lt;Allow&gt;. W przeciwnym razie zasada nie będzie zmienić limit.

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

Atrybuty

Atrybut Opis Domyślny Obecność
odsyłacz

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

Nie dotyczy Opcjonalnie

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Class&gt; element

Określa klasę, której licznik limitu jest aktualizowany. Więcej informacji o używaniu klasy z Zasady dotyczące limitów – patrz Limit .

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

Atrybuty

Atrybut Opis Domyślny Obecność
odsyłacz

Odwołanie do zmiennej przepływu, która zawiera klasę limitu do zaktualizowania.

Nie dotyczy Opcjonalnie

Informacje o błędzie

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