Sdílet prostřednictvím


Forward request

PLATÍ PRO: Všechny úrovně služby API Management

Zásady forward-request předávají příchozí požadavek back-endové službě zadané v kontextu požadavku. Adresa URL back-endové služby je zadaná v nastavení rozhraní API a dá se změnit pomocí zásad nastavené back-endové služby.

Important

  • Tato zásada se vyžaduje k předávání požadavků do back-endu rozhraní API. Ve výchozím nastavení služba API Management nastaví tuto zásadu v globálním oboru.
  • Odebráním této zásady se požadavek nepřesměrovává do back-endové služby. Zásady v oddílu odchozích přenosů se vyhodnocují okamžitě po úspěšném dokončení zásad v příchozím oddílu.

Note

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Policy statement

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

Attributes

Attribute Description Required Default
timeout Doba v sekundách čekání na vrácení hlaviček odpovědi HTTP back-endovou službou před vyvoláním chyby časového limitu. Minimální hodnota je 0 sekund. Hodnoty větší než 240 sekund nemusí být dodrženy, protože základní síťová infrastruktura může po této době vynechat nečinná připojení. Výrazy zásad jsou povolené. Můžete zadat buď timeout nebo timeout-ms ne obojí. No 300
timeout-ms Doba v milisekundách, po kterou se před vyvoláním chyby časového limitu vrátí hlavičky odpovědi HTTP back-endovou službou. Minimální hodnota je 0 ms. Výrazy zásad jsou povolené. Můžete zadat buď timeout nebo timeout-ms ne obojí. No N/A
continue-timeout Doba v sekundách čekání na vrácení stavového 100 Continue kódu back-endovou službou před vyvoláním chyby časového limitu Výrazy zásad jsou povolené. No N/A
http-version Verze protokolu HTTP, která se má použít při odesílání požadavku HTTP do back-endové služby:
- 1: HTTP/1
- 2: HTTP/2
- 2or1: Brána upřednostňuje HTTP/2 před HTTP/1, ale pokud http/2 nefunguje, vrátí se zpět na HTTP/1.

Odchozí přenosy HTTP/2 se podporují ve vybraných branách. Podrobnosti najdete v poznámkách k využití .
No 1
follow-redirects Určuje, jestli za bránou následuje přesměrování z back-endové služby nebo se vrátí volajícímu. Výrazy zásad jsou povolené. No false
buffer-request-body Pokud je nastavená hodnota true, požadavek se uloží do vyrovnávací paměti a znovu se použije při opakování. No false
buffer-response Ovlivňuje zpracování blokovaných odpovědí. Pokud je falsetato možnost nastavená, každý blok přijatý z back-endu se okamžitě vrátí volajícímu. Pokud je nastavená hodnota true, bloky dat se ukládají do vyrovnávací paměti (8 kB, pokud není zjištěn konec datového proudu) a teprve potom se vrátí volajícímu.

Nastavte na false back-endy, jako jsou například ty, které implementují události odeslané serverem (SSE), které vyžadují, aby se obsah vrátil nebo streamoval okamžitě volajícímu. Výrazy zásad nejsou povolené.
No true
fail-on-error-status-code Pokud je tato možnost nastavená na truehodnotu , aktivuje část o chybě pro kódy odpovědí v rozsahu od 400 do 599 včetně. Výrazy zásad nejsou povolené. No false

Usage

Usage notes

  • http-version Atribut použijte k povolení odchozího protokolu HTTP/2 z brány do back-endu. Nastavte atribut na 2or1 nebo 2. Odchozí připojení HTTP/2 se v současné době podporuje v bráně v místním prostředí a ve verzi Preview v bráně v2.

    Important

    V bráně v2 je http/2 podporován příchozí provoz do brány služby API Management a odchozí provoz z brány do back-endu, ale ne do konce. V současné době brána v2 downgraduje příchozí připojení HTTP/2 na HTTP/1 před předáním požadavku do back-endu.

Examples

Odeslání požadavku na back-end HTTP/2

Následující zásady na úrovni rozhraní API předávají všechny požadavky rozhraní API back-endové službě HTTP/2. Pomocí této zásady můžete například předávat požadavky z brány v místním prostředí do back-endu gRPC.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request http-version="2or1"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Forward request with timeout interval

Následující zásady na úrovni rozhraní API předávají všechny požadavky rozhraní API do back-endové služby s časovým limitem 60 sekund.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Dědění zásad z nadřazeného oboru

Tato zásada na úrovni operace používá base element k dědění back-endové zásady z oboru nadřazené úrovně rozhraní API.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <base/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Nedědí zásady z nadřazeného oboru

Tato zásada na úrovni operace explicitně předává všechny požadavky back-endové službě s vypršením časového limitu 120 a nedědí zásady back-endu na úrovni nadřazeného rozhraní API. Pokud back-endová služba odpoví stavovým kódem chyby od 400 do 599 včetně, aktivuje se část o chybě .

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

Nepřeposílat požadavky na back-end

Tato zásada na úrovni operace nepředává požadavky back-endové službě.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <!-- no forwarding to backend -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Další informace o práci se zásadami najdete v tématech: