Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.
Topik ini menjelaskan properti transpor yang dapat ditetapkan dalam konfigurasi TargetEndpoint
dan ProxyEndpoint
untuk mengontrol perilaku pesan dan koneksi. Untuk cakupan lengkap opsi konfigurasi TargetEndpoint
dan ProxyEndpoint
, lihat referensi konfigurasi proxy API.
Properti Transpor TargetEndpoint
Elemen HTTPTargetConnection
dalam konfigurasi TargetEndpoint
menentukan kumpulan properti transpor HTTP. Anda dapat menggunakan properti ini untuk menetapkan konfigurasi tingkat transpor.
Properti ditetapkan pada elemen TargetEndpoint
HTTPTargetConnection
seperti yang ditunjukkan dalam contoh konfigurasi ini:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Spesifikasi Properti Transport TargetEndpoint
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
allow.post.without.content.length |
false | Memungkinkan Anda mengirim permintaan POST tanpa konten dalam isi. |
allow.put.without.content.length |
false | Memungkinkan Anda mengirim permintaan PUT tanpa konten dalam isi. |
allow.tls.session.resumption |
benar | Jika klien true (default) menggunakan kembali sesi TLS saat membuat koneksi baru ke target.
Tetapkan ke false jika Anda tidak ingin sesi TLS digunakan kembali. Penggunaan kembali sesi umumnya
berarti waktu koneksi yang lebih singkat, tetapi beberapa target mungkin tidak mendukung penggunaan kembali sesi atau
mengalami kesulitan dengannya. |
keepalive.timeout.millis |
60000 | Waktu tunggu koneksi tidak ada aktivitas untuk koneksi target dalam kumpulan koneksi. Jika koneksi dalam kumpulan tidak ada aktivitas di luar batas yang ditentukan, koneksi akan ditutup. |
connect.timeout.millis |
3000 |
Waktu tunggu koneksi target habis. Apigee menampilkan kode status HTTP |
ignore.allow.header.for.405 |
benar |
Memungkinkan Anda meneruskan kode status 405 kembali ke klien. Dengan mengaktifkan tanda, Apigee akan menampilkan kode status 405, bukan 502. |
io.timeout.millis |
55000 |
Jika tidak ada data yang akan dibaca selama jumlah milidetik yang ditentukan, atau jika soket tidak siap untuk menulis data selama jumlah milidetik yang ditentukan, transaksi akan diperlakukan sebagai waktu tunggu habis.
|
supports.http11 |
benar | Jika ini adalah true dan klien mengirim permintaan 1.1 , target juga akan menerima permintaan 1.1 . Jika tidak, permintaan 1.0 akan dikirim ke target. |
use.proxy |
benar |
Jika file penggantian hybrid Apigee berisi konfigurasi
Jika ditetapkan ke |
use.proxy.tunneling |
benar |
Jika disetel ke benar (true), dan konfigurasi proxy ditentukan file penggantian hybrid Apigee seperti yang dijelaskan dalam Mengonfigurasi proxy penerusan untuk proxy API, koneksi target akan ditetapkan untuk menggunakan tunnel yang ditentukan. Jika target menggunakan TLS/SSL, properti ini akan diabaikan, dan pesan selalu dikirim menggunakan tunnel. |
request.streaming.enabled |
false |
Secara default ( |
response.streaming.enabled |
false |
Secara default (false), payload respons HTTP dibaca ke dalam buffer, dan kebijakan yang
dapat beroperasi pada payload berfungsi seperti yang diharapkan. Jika payload lebih besar dari
ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut
ini ke benar. Jika benar, payload respons HTTP tidak dibaca ke dalam buffering; payload tersebut
di-streaming apa adanya ke alur respons |
success.codes |
T/A |
Secara default, Apigee memperlakukan kode HTTP Menetapkan properti ini akan menimpa nilai default. Oleh karena itu, jika Anda ingin menambahkan kode HTTP
Jika Anda hanya ingin kode HTTP
Dengan menetapkan kode HTTP |
compression.algorithm |
T/A |
Secara default, Apigee mematuhi jenis kompresi yang ditetapkan (gzip, deflate, atau tidak ada) untuk pesan
yang diterima. Jika permintaan diterima dari klien menggunakan, misalnya, kompresi
gzip, Apigee akan meneruskan permintaan ke target menggunakan kompresi gzip. Jika
respons yang diterima dari target menggunakan deflate, Apigee akan meneruskan respons ke
klien menggunakan deflate. Nilai yang didukung adalah:
Lihat juga: Apakah Apigee mendukung kompresi/dekompresi dengan kompresi GZIP/deflate? |
request.retain.headers. |
benar | Secara default, Apigee selalu mempertahankan semua header HTTP pada pesan keluar. Jika ditetapkan ke true , semua header HTTP yang ada di permintaan masuk akan ditetapkan di permintaan keluar. |
request.retain.headers |
T/A | Menentukan header HTTP tertentu dari permintaan yang harus ditetapkan pada permintaan
keluar ke layanan target. Misalnya, untuk meneruskan header User-Agent , tetapkan nilai request.retain.headers ke User-Agent .
Beberapa header HTTP ditentukan sebagai daftar yang dipisahkan koma, misalnya,
User-Agent,Referer,Accept-Language . Properti ini menggantikan
request.retain.headers.enabled . Jika request.retain.headers.enabled
ditetapkan ke false , header apa pun yang ditentukan dalam
properti request.retain.headers masih ditetapkan pada pesan keluar. |
response.retain.headers. |
benar | Secara default, Apigee selalu mempertahankan semua header HTTP pada pesan keluar. Jika ditetapkan
ke true , semua header HTTP yang ada di respons masuk dari layanan
target akan ditetapkan di respons keluar sebelum diteruskan ke
ProxyEndpoint . |
response.retain.headers |
T/A | Menentukan header HTTP tertentu dari respons yang harus ditetapkan pada respons
keluar sebelum diteruskan ke ProxyEndpoint . Misalnya, untuk
meneruskan
header Expires , tetapkan nilai response.retain.headers ke
Expires . Beberapa header HTTP ditentukan sebagai daftar yang dipisahkan koma, misalnya, Expires,Set-Cookie . Properti ini menggantikan
response.retain.headers.enabled . Jika
response.retain.headers.enabled ditetapkan ke false , header apa pun
yang ditentukan dalam properti response.retain.headers masih ditetapkan pada
pesan keluar. |
retain.queryparams. |
benar | Secara default, Apigee selalu mempertahankan semua parameter kueri pada permintaan keluar. Jika ditetapkan ke true , semua parameter kueri yang ada di permintaan masuk akan ditetapkan di permintaan keluar ke layanan target. |
retain.queryparams |
T/A | Menentukan parameter kueri tertentu yang akan ditetapkan pada permintaan keluar. Misalnya, untuk
menyertakan parameter kueri apikey dari pesan permintaan, tetapkan
retain.queryparams ke apikey . Beberapa parameter kueri ditentukan sebagai daftar yang dipisahkan koma, misalnya, apikey,environment . Properti
ini menggantikan retain.queryparams.enabled . |
Properti Transpor ProxyEndpoint
Elemen ProxyEndpoint
HTTPTargetConnection
menentukan sekumpulan properti transpor HTTP. Properti
ini dapat digunakan untuk menetapkan konfigurasi tingkat transpor.
Properti ditetapkan pada elemen ProxyEndpoint
HTTPProxyConnection
seperti yang ditunjukkan dalam contoh konfigurasi ini:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="request.streaming.enabled">true</Property> </Properties> </HTTPProxyConnection> </ProxyEndpoint>
Header permintaan
Permintaan HTTP masuk menyertakan header HTTP yang dikirim oleh klien.
Header dengan nama yang cocok dengan pola X-Apigee-*
akan dihapus dari permintaan masuk jika klien mengirimkannya. Pola nama ini dicadangkan untuk Apigee.
Spesifikasi Properti Transpor ProxyEndpoint
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
X-Forwarded-For |
false | Jika ditetapkan ke benar, alamat IP host virtual akan ditambahkan ke permintaan keluar sebagai
nilai header X-Forwarded-For HTTP. |
request.streaming. |
false |
Secara default (false ), payload permintaan HTTP dibaca ke dalam buffer, dan kebijakan yang dapat beroperasi pada payload berfungsi seperti yang diharapkan. Jika payload lebih besar dari
ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut
ini ke true . Jika true , payload permintaan HTTP tidak dibaca
ke dalam buffering; payload tersebut
di-streaming apa adanya ke alur permintaan TargetEndpoint . Dalam hal ini, kebijakan apa pun
yang beroperasi
pada payload dalam alur permintaan ProxyEndpoint akan diabaikan. Lihat juga
Permintaan dan respons streaming. |
response.streaming. |
false |
Secara default (salah), payload respons HTTP dibaca ke dalam buffer, dan kebijakan yang dapat beroperasi pada payload berfungsi seperti yang diharapkan. Jika payload lebih besar dari
ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut
ini ke true . Jika true , payload respons HTTP tidak dibaca
ke dalam buffering; payload tersebut
di-streaming apa adanya ke klien. Dalam hal ini, kebijakan apa pun yang beroperasi pada payload dalam
aliran respons ProxyEndpoint akan diabaikan. Lihat juga
Permintaan dan respons streaming. |
compression.algorithm |
T/A |
Secara default, Apigee mematuhi jenis kompresi yang ditetapkan (gzip, deflate, atau tidak ada) untuk pesan yang diterima. Misalnya, saat klien mengirimkan permintaan yang menggunakan kompresi gzip, Apigee
akan meneruskan permintaan tersebut ke target menggunakan kompresi gzip. Anda dapat mengonfigurasi algoritma
kompresi untuk diterapkan secara eksplisit dengan menetapkan properti ini di
Lihat juga: Apakah Apigee mendukung kompresi/dekompresi dengan kompresi GZIP/deflate? |
api.timeout |
T/A |
Mengonfigurasi waktu tunggu untuk setiap proxy API (dalam milidetik) Anda dapat mengonfigurasi proxy API, bahkan yang mengaktifkan
streaming,
agar waktu tunggunya habis setelah waktu yang ditentukan dengan status
Misalnya, untuk mengonfigurasi proxy agar waktu tunggunya habis setelah 180.000 milidetik (tiga menit),
tambahkan properti berikut ke <Property name="api.timeout">180000</Property> Anda tidak dapat menetapkan properti ini dengan variabel. |
HTTPHeader.allowDuplicates |
T/A | Gunakan setelan ini untuk mengizinkan header duplikat (untuk header tertentu). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.allowDuplicates">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
HTTPHeader.multiValued |
T/A | Gunakan setelan ini untuk mengizinkan header duplikat (untuk header tertentu). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.multiValued">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
Menetapkan io.timeout.millis dan api.timeout
Operasi io.timeout.millis
dan api.timeout
terkait. Pada setiap permintaan ke proxy API:
- Ingress (alias Load Balancer Internal) mengirimkan nilai waktu tunggunya ke Message Processor. Nilai waktu tunggu ini secara default adalah 300 detik dan tidak dapat dikonfigurasi.
- Message Processor kemudian menetapkan
api.timeout
:- Jika
api.timeout
tidak ditetapkan di tingkat proxy, gunakan waktu tunggu yang ditetapkan oleh Ingress. - Jika
api.timeout
ditetapkan di tingkat proxy, tetapkan di Message Processor ke waktu tunggu Ingress yang lebih kecil atau nilaiapi.timeout
.
- Jika
-
Nilai
api.timeout
menentukan jumlah waktu maksimum yang harus dijalankan proxy API dari permintaan API ke respons.Setelah setiap kebijakan di proxy API dieksekusi, atau sebelum Pemroses Pesan mengirim permintaan ke endpoint target, Pemroses Pesan akan menghitung (
api.timeout
- waktu yang berlalu sejak awal permintaan).Jika nilainya kurang dari nol, berarti waktu maksimum untuk menangani permintaan telah berakhir dan Pemroses Pesan akan menampilkan
504 Gateway Timeout
. -
Nilai
io.timeout.millis
menentukan jumlah waktu maksimum yang harus direspons oleh endpoint target.Sebelum terhubung ke endpoint target, Message Processor menentukan mana yang lebih kecil dari (
api.timeout
- waktu yang berlalu sejak awal permintaan) danio.timeout.millis
. Kemudian, kode ini akan menetapkanio.timeout.millis
ke nilai tersebut.Jika waktu tunggu habis saat menulis permintaan HTTP atau membaca respons HTTP,
504 Gateway Timeout
akan ditampilkan.