Bagikan melalui


Forward request

BERLAKU UNTUK: Semua tingkatAN API Management

Kebijakan forward-request meneruskan permintaan masuk ke layanan backend yang ditentukan dalam konteks permintaan. URL layanan backend ditentukan dalam pengaturan API dan dapat diubah menggunakan kebijakan setel layanan backend.

Important

  • Kebijakan ini diperlukan untuk meneruskan permintaan ke backend API. Secara default, API Management menyiapkan kebijakan ini dalam cakupan global.
  • Penghapusan kebijakan ini akan mengakibatkan permintaan yang tidak diteruskan ke layanan backend. Kebijakan di bagian keluar akan langsung dievaluasi setelah selesainya kebijakan di bagian masuk.

Note

Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan 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 Jumlah waktu dalam detik untuk menunggu header respons HTTP dikembalikan oleh layanan backend sebelum kesalahan batas waktu dimunculkan. Nilai minimum adalah 0 detik. Nilai yang lebih besar dari 240 detik mungkin tidak dihormati, karena infrastruktur jaringan yang mendasar dapat menghilangkan koneksi diam setelah waktu ini. Ekspresi kebijakan diizinkan. Anda dapat menentukan keduanya timeout atau timeout-ms tetapi tidak keduanya. No 300
timeout-ms Jumlah waktu dalam milidetik untuk menunggu header respons HTTP dikembalikan oleh layanan backend sebelum kesalahan waktu habis dimunculkan. Nilai minimum adalah 0 mdtk. Ekspresi kebijakan diizinkan. Anda dapat menentukan keduanya timeout atau timeout-ms tetapi tidak keduanya. No N/A
continue-timeout Jumlah waktu dalam detik untuk 100 Continue menunggu kode status dikembalikan oleh layanan backend sebelum kesalahan batas waktu dinaikkan. Ekspresi kebijakan diizinkan. No N/A
http-version Versi protokol HTTP yang akan digunakan saat mengirim permintaan HTTP ke layanan backend:
- 1: HTTP/1
- 2: HTTP/2
- 2or1: Gateway mendukung HTTP/2 melalui HTTP/1, tetapi kembali ke HTTP/1 jika HTTP/2 tidak berfungsi.

HTTP/2 keluar didukung di gateway tertentu. Lihat Catatan penggunaan untuk detailnya.
No 1
follow-redirects Menentukan apakah pengalihan dari layanan backend diikuti oleh gateway atau dikembalikan ke pemanggil. Ekspresi kebijakan diizinkan. No false
buffer-request-body Ketika diatur ke true, permintaan di-buffer dan akan digunakan kembali saat coba lagi. No false
buffer-response Memengaruhi pemrosesan respons yang tergugus. Ketika diatur ke false, setiap gugus yang diterima dari backend segera dikembalikan ke pemanggil. Ketika diatur ke true, gugus di-buffer (8 KB, kecuali akhir aliran terdeteksi) dan hanya kemudian dikembalikan ke pemanggil.

Atur ke false dengan backend seperti yang menerapkan peristiwa yang dikirim server (SSE) yang mengharuskan konten dikembalikan atau dialirkan segera ke pemanggil. Ekspresi kebijakan tidak diizinkan.
No true
fail-on-error-status-code Saat diatur ke true, memicu bagian on-error untuk kode respons dalam kisaran 400 hingga 599 inklusif. Ekspresi kebijakan tidak diizinkan. No false

Usage

Usage notes

  • http-version Gunakan atribut untuk mengaktifkan protokol HTTP/2 keluar dari gateway ke backend. Atur atribut ke 2or1 atau 2. Saat ini, HTTP/2 keluar didukung di gateway yang dihost sendiri dan dalam pratinjau di gateway v2.

    Important

    Di gateway v2, HTTP/2 didukung masuk ke gateway API Management dan keluar dari gateway ke backend tetapi bukan end-to-end. Saat ini, gateway v2 menurunkan koneksi HTTP/2 masuk ke HTTP/1 sebelum meneruskan permintaan ke backend.

Examples

Kirim permintaan ke backend HTTP/2

Kebijakan tingkat API berikut meneruskan semua permintaan API ke layanan backend HTTP/2. Misalnya, gunakan kebijakan ini untuk meneruskan permintaan dari gateway yang dihost sendiri ke backend gRPC.

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

Meneruskan permintaan dengan interval waktu habis

Kebijakan tingkat API berikut meneruskan semua permintaan API ke layanan backend dengan interval waktu tunggu 60 detik.

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

Mewarisi kebijakan dari cakupan induk

Kebijakan tingkat pengoperasian ini menggunakan elemen base untuk mewarisi kebijakan backend dari cakupan tingkat API induk.

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

Jangan mewarisi kebijakan dari cakupan induk

Kebijakan tingkat operasi ini secara eksplisit meneruskan semua permintaan ke layanan backend dengan batas waktu 120 dan tidak mewarisi kebijakan backend tingkat API induk. Jika layanan backend merespons dengan kode status kesalahan dari 400 hingga 599 secara inklusif, bagian on-error akan dipicu.

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

Jangan meneruskan permintaan ke backend

Kebijakan tingkat operasi ini tidak meneruskan permintaan ke layanan backend.

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

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: