Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
![](https://docs.apigee.com/static/api-platform/images/icon_policy_reset-quota.jpg?hl=pl)
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 Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw wartość Ustaw jako |
false | Opcjonalnie |
enabled |
Ustaw jako Ustaw wartość |
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 |
---|---|
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. |
build |
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. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | Nie można znaleźć zmiennej, do której odwołuje się atrybut ref w elemencie <Quota> . |
build |
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ę.
|
build |