Tworzenie zaawansowanych zasad
Ta lekcja zawiera informacje dotyczące następujących zasad usługi API Management:
- Przepływ sterowania — warunkowo stosuje instrukcje zasad na podstawie wyników oceny wyrażeń logicznych.
- Żądanie przesyłania dalej — przekazuje żądanie do usługi zaplecza.
- Ogranicz współbieżność — uniemożliwia wykonywanie zamkniętych zasad przez więcej niż określoną liczbę żądań jednocześnie.
- Zaloguj się do centrum zdarzeń — wysyła komunikaty w określonym formacie do centrum zdarzeń zdefiniowanego przez jednostkę rejestratora.
- Pozorowana odpowiedź — przerywa wykonywanie potoku i zwraca pozorowaną odpowiedź bezpośrednio do wywołującego.
- Ponów próbę — ponawia próbę wykonania ujętych instrukcji zasad, jeśli i dopóki warunek nie zostanie spełniony. Wykonanie jest powtarzane w określonych interwałach czasu i do określonej liczby ponownych prób.
Przepływ sterowania
Zasady choose
dotyczą instrukcji zasad ujętych w oparciu o wynik oceny wyrażeń logicznych, podobnie jak instrukcja if-then-else lub konstrukcja przełącznika w języku programowania.
<choose>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<otherwise>
<!— one or more policy statements to be applied if none of the above conditions are true -->
</otherwise>
</choose>
Zasady przepływu sterowania muszą zawierać co najmniej jeden <when/>
element. Element <otherwise/>
jest opcjonalny. Warunki w <when/>
elementach są oceniane w kolejności ich wyglądu w ramach zasad. Instrukcje zasad ujęte w pierwszym <when/>
elemercie są stosowane, gdy atrybut warunku ma wartość true. Zasady ujęte w elemecie <otherwise/>
, jeśli są obecne, są stosowane, jeśli wszystkie <when/>
atrybuty warunku elementu są fałszywe.
Prześlij żądanie dalej
Zasady forward-request
przekazują przychodzące żądanie do usługi zaplecza określonej w kontekście żądania. Adres URL usługi zaplecza jest określony w ustawieniach interfejsu API i można go zmienić przy użyciu zasad usługi set backend.
Usunięcie tych zasad powoduje, że żądanie nie jest przekazywane do usługi zaplecza. Zasady w sekcji ruchu wychodzącego są oceniane natychmiast po pomyślnym zakończeniu zasad w sekcji przychodzącej.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Ograniczanie współbieżności
Zasady limit-concurrency
uniemożliwiają wykonywanie ujęć zasad przez więcej niż określoną liczbę żądań w dowolnym momencie. Po przekroczeniu tej liczby nowe żądania natychmiast kończą się niepowodzeniem z kodem stanu 429 Zbyt wiele żądań .
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Logowanie do centrum zdarzeń
Zasady log-to-eventhub
wysyła komunikaty w określonym formacie do centrum zdarzeń zdefiniowanego przez jednostkę rejestratora. Jak wskazuje jego nazwa, zasady są używane do zapisywania wybranych informacji o kontekście żądania lub odpowiedzi na potrzeby analizy online lub offline.
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
Pozorna odpowiedź
Parametr mock-response
, jak wskazuje nazwa, jest używany do pozorowania interfejsów API i operacji. Przerywa normalne wykonywanie potoku i zwraca pozorowaną odpowiedź na obiekt wywołujący. Zasady zawsze próbują zwrócić odpowiedzi o najwyższej wierności. Preferuje przykłady zawartości odpowiedzi, jeśli są dostępne. Generuje przykładowe odpowiedzi na podstawie schematów, gdy podano schematy, a przykłady nie są. Jeśli nie znaleziono przykładów lub schematów, odpowiedzi bez zawartości nie są zwracane.
<mock-response status-code="code" content-type="media type"/>
Ponów próbę
Zasady retry
wykonują swoje zasady podrzędne raz, a następnie ponawiają próbę wykonania, dopóki ponawianie próby condition
nie zostanie false
wyczerpane lub ponów próbę count
.
<retry
condition="boolean expression or literal"
count="number of retry attempts"
interval="retry interval in seconds"
max-interval="maximum retry interval in seconds"
delta="retry interval delta in seconds"
first-fast-retry="boolean expression or literal">
<!-- One or more child policies. No restrictions -->
</retry>
Zwracana odpowiedź
Zasady return-response
przerywają wykonywanie potoku i zwracają domyślną lub niestandardową odpowiedź na obiekt wywołujący. Odpowiedź domyślna nie zawiera 200 OK
treści. Odpowiedź niestandardową można określić za pomocą zmiennej kontekstowej lub instrukcji zasad. Po podaniu obu tych instrukcji zasad modyfikuje zmienną kontekstową przed zwróceniem do obiektu wywołującego.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Inne zasoby
- Odwiedź stronę Api Management policies (Zasady usługi API Management), aby uzyskać więcej przykładów zasad.
- Obsługa błędów w zasadach usługi API Management