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