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 timeouttimeout-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 timeouttimeout-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 2or1usł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 truewartoś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 falsewartości na element każdy fragment otrzymany z zaplecza jest natychmiast zwracany do obiektu wywołującego. Po ustawieniu truewartoś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 truena 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

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>

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: