Prześlij żądanie dalej
DOTYCZY: Wszystkie warstwy usługi API Management
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.
Ważne
- Te zasady są wymagane do przekazywania żądań do zaplecza interfejsu API. Domyślnie usługa API Management konfiguruje te zasady w zakresie globalnym.
- 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.
Uwaga
Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.
Instrukcja zasad
<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>
Atrybuty
Atrybut | opis | Wymagani | Wartość domyślna |
---|---|---|---|
timeout | Czas w sekundach oczekiwania na zwrócenie nagłówków odpowiedzi HTTP przez usługę zaplecza przed zwróceniem błędu przekroczenia limitu czasu. Wartość minimalna to 0 sekund. Wartości większe niż 240 sekund mogą nie zostać uznane, ponieważ po tym czasie podstawowa infrastruktura sieciowa może porzucać bezczynne połączenia. Wyrażenia zasad są dozwolone. Można określić albo albo timeout timeout-ms , ale nie oba te elementy. |
Nie. | 300 |
timeout-ms | Czas w milisekundach oczekiwania na zwrócenie nagłówków odpowiedzi HTTP przez usługę zaplecza przed zwróceniem błędu przekroczenia limitu czasu. Wartość minimalna to 0 ms. Wyrażenia zasad są dozwolone. Można określić albo albo timeout timeout-ms , ale nie oba te elementy. |
Nie. | Nie dotyczy |
limit czasu kontynuacji | Czas w sekundach oczekiwania na 100 Continue zwrócenie kodu stanu przez usługę zaplecza przed zwróceniem błędu przekroczenia limitu czasu. Wyrażenia zasad są dozwolone. |
Nie. | Nie dotyczy |
http-version | Wersja specyfikacji HTTP używana podczas wysyłania odpowiedzi HTTP do usługi zaplecza. W przypadku korzystania z 2or1 usługi brama będzie faworyzować protokół HTTP /2 przez /1, ale wróć do protokołu HTTP /1, jeśli protokół HTTP /2 nie działa. |
Nie. | 1 |
obserwowanie przekierowań | Określa, czy następuje przekierowania z usługi zaplecza, czy brama jest zwracana do obiektu wywołującego. Wyrażenia zasad są dozwolone. | Nie. | false |
bufor-request-body | Po ustawieniu true wartości żądanie jest buforowane i będzie ponownie używane podczas ponawiania próby. |
Nie. | false |
bufor-response | Wpływa na przetwarzanie fragmentowanych odpowiedzi. Po ustawieniu false wartości na element każdy fragment otrzymany z zaplecza jest natychmiast zwracany do obiektu wywołującego. Po ustawieniu true wartości na element fragmenty są buforowane (8 KB, chyba że zostanie wykryty koniec strumienia), a dopiero potem zostaną zwrócone do obiektu wywołującego.Ustaw wartość na false z zapleczemi, takimi jak te implementujące zdarzenia wysyłane przez serwer (SSE), które wymagają zwrócenia lub natychmiastowego przesyłania strumieniowego zawartości do wywołującego. Wyrażenia zasad nie są dozwolone. |
Nie. | true |
kod stanu błędu w trybie fail-on-error | Po ustawieniu wartości true na wartość wyzwala sekcję "błąd " dla kodów odpowiedzi z zakresu od 400 do 599 włącznie. Wyrażenia zasad nie są dozwolone. |
Nie. | false |
Użycie
- Sekcje zasad: zaplecze
- Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
- Bramy: klasyczne, v2, zużycie, self-hosted, obszar roboczy
Przykłady
Wysyłanie żądania do zaplecza HTTP/2
Następujące zasady na poziomie interfejsu API przekazują wszystkie żądania interfejsu API do usługi zaplecza HTTP/2.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request http-version="2or1"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Jest to wymagane w przypadku obciążeń HTTP /2 lub gRPC i obecnie obsługiwanych tylko w bramie własnej. Dowiedz się więcej w naszym omówieniu bramy interfejsu API.
Przesyłanie dalej żądania z interwałem przekroczenia limitu czasu
Następujące zasady na poziomie interfejsu API przekazują wszystkie żądania interfejsu API do usługi zaplecza z interwałem limitu czasu wynoszącym 60 sekund.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Dziedzicz zasady z zakresu nadrzędnego
Te zasady na poziomie operacji używają base
elementu do dziedziczenia zasad zaplecza z nadrzędnego zakresu poziomu interfejsu API.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<base/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Nie dziedzicz zasad z zakresu nadrzędnego
Te zasady na poziomie operacji jawnie przekazują wszystkie żądania do usługi zaplecza z limitem czasu 120 i nie dziedziczą zasad zaplecza na poziomie nadrzędnego interfejsu API. Jeśli usługa zaplecza odpowie kodem stanu błędu z zakresu od 400 do 599 włącznie, zostanie wyzwolona sekcja on-error .
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="120" fail-on-error-status-code="true" />
<!-- effective policy. note the absence of <base/> -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Nie przesyłaj dalej żądań do zaplecza
Te zasady na poziomie operacji nie przesyłają dalej żądań do usługi zaplecza.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<!-- no forwarding to backend -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Powiązane zasady
Powiązana zawartość
Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz:
- Samouczek: przekształcanie i ochrona interfejsu API
- Dokumentacja zasad dla pełnej listy instrukcji zasad i ich ustawień
- Wyrażenia zasad
- Ustawianie lub edytowanie zasad
- Ponowne używanie konfiguracji zasad
- Repozytorium fragmentów zasad
- Tworzenie zasad przy użyciu rozwiązania Microsoft Copilot na platformie Azure