Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Baca dokumentasi Apigee Edge.
Topik ini menjelaskan properti transport yang dapat ditetapkan di konfigurasi TargetEndpoint
dan ProxyEndpoint
untuk mengontrol perilaku pesan dan koneksi. Untuk mengetahui cakupan lengkap tentang opsi konfigurasi TargetEndpoint
dan ProxyEndpoint
, lihat referensi konfigurasi proxy API.
Properti Transport TargetEndpoint
Elemen HTTPTargetConnection
dalam konfigurasi TargetEndpoint
menentukan kumpulan properti
transpor HTTP. Anda dapat menggunakan properti ini untuk menetapkan konfigurasi tingkat transport.
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 Transportasi 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 di bagian isi. |
allow.tls.session.resumption |
true | Jika klien true (default) menggunakan kembali sesi TLS saat membuat koneksi baru ke target.
Tetapkan ke false jika Anda tidak ingin menggunakan ulang sesi TLS. Penggunaan ulang sesi umumnya
berarti waktu koneksi lebih singkat, tetapi beberapa target mungkin tidak mendukung penggunaan ulang sesi atau mengalami
kesulitan dengan sesi tersebut. |
keepalive.timeout.millis |
60000 | Waktu tunggu tidak ada aktivitas koneksi untuk koneksi target dalam kumpulan koneksi. Jika koneksi dalam kumpulan tidak ada aktivitas melebihi batas yang ditetapkan, koneksi akan ditutup. |
connect.timeout.millis |
3.000 |
Waktu tunggu koneksi target habis. Apigee menampilkan kode status |
ignore.allow.header.for.405 |
true |
Memungkinkan Anda meneruskan kode status 405 kembali ke klien. Dengan mengaktifkan flag, Apigee akan menampilkan 405, bukan kode status 502. |
io.timeout.millis |
55000 |
Jika tidak ada data yang akan dibaca untuk jumlah milidetik yang ditentukan, atau jika soket belum siap menulis data selama jumlah milidetik yang ditentukan, transaksi akan diperlakukan sebagai waktu tunggu.
|
supports.http11 |
true | Jika ini adalah true dan klien mengirimkan permintaan 1.1 , target juga akan dikirimi permintaan 1.1 . Jika tidak, permintaan 1.0 akan dikirim ke target. |
use.proxy |
true | Properti ini hanya berlaku untuk Apigee Hybrid.
Jika file penggantian hibrid Apigee berisi konfigurasi
Jika ditetapkan ke |
use.proxy.tunneling |
true |
Properti ini hanya berlaku untuk Apigee Hybrid. Jika kebijakan ini disetel ke benar (true), dan konfigurasi proxy ditetapkan file pengganti hybrid Apigee seperti yang dijelaskan dalam Mengonfigurasi proxy penerusan untuk proxy API, koneksi target akan disetel 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 bekerja seperti yang diharapkan. Jika payload lebih besar dari ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut ini ke true. Jika true (benar), payload respons HTTP tidak dibaca ke buffer; dan akan di-streaming apa adanya ke alur respons |
success.codes |
T/A |
Secara default, Apigee memperlakukan kode HTTP Menyetel 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 mengikuti kumpulan jenis kompresi (gzip, deflate, atau tidak sama sekali) untuk pesan yang diterima. Jika permintaan diterima dari klien menggunakan, misalnya, kompresi gzip, Apigee akan meneruskan permintaan tersebut ke target menggunakan kompresi gzip. Jika respons yang diterima dari target menggunakan deflate, maka Apigee akan meneruskan respons ke klien menggunakan deflate. Nilai yang didukung adalah:
Lihat juga: Apakah Apigee mendukung kompresi/de-kompresi dengan kompresi GZIP/deflate? |
request.retain.headers. |
true | 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 pada permintaan keluar. |
request.retain.headers |
T/A | Menentukan header HTTP tertentu dari permintaan yang harus ditetapkan pada permintaan keluar ke layanan target. Misalnya, untuk passthrough header User-Agent , tetapkan nilai request.retain.headers ke User-Agent .
Beberapa header HTTP ditetapkan sebagai daftar yang dipisahkan koma, misalnya,
User-Agent,Referer,Accept-Language . Properti ini mengganti
request.retain.headers.enabled . Jika request.retain.headers.enabled
ditetapkan ke false , semua header yang ditentukan di
properti request.retain.headers akan tetap ditetapkan pada pesan keluar. |
response.retain.headers. |
true | 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 pada 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 passthrough header Expires , tetapkan nilai response.retain.headers ke Expires . Beberapa header HTTP ditetapkan sebagai daftar yang dipisahkan koma, misalnya, Expires,Set-Cookie . Properti ini mengganti
response.retain.headers.enabled . Jika response.retain.headers.enabled ditetapkan ke false , semua header yang ditentukan dalam properti response.retain.headers akan tetap ditetapkan pada pesan keluar. |
retain.queryparams. |
true | 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 pada permintaan keluar ke layanan target. |
retain.queryparams |
T/A | Menentukan parameter kueri tertentu untuk ditetapkan pada permintaan keluar. Misalnya, untuk menyertakan parameter kueri apikey dari pesan permintaan, tetapkan retain.queryparams ke apikey . Beberapa parameter kueri
ditetapkan sebagai daftar yang dipisahkan koma, misalnya, apikey,environment . Properti ini menggantikan retain.queryparams.enabled . |
Properti Transport ProxyEndpoint
Elemen ProxyEndpoint
HTTPTargetConnection
menentukan kumpulan properti transpor HTTP. Properti ini dapat digunakan untuk menetapkan konfigurasi tingkat transport.
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 Transport ProxyEndpoint
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
X-Forwarded-For |
false | Jika ditetapkan ke true, 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 bekerja seperti yang diharapkan. Jika payload lebih besar dari ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut ini ke true . Saat true , payload permintaan HTTP tidak dibaca ke buffer; payload akan 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 (false), payload respons HTTP dibaca ke dalam buffer, dan kebijakan yang dapat beroperasi pada payload bekerja seperti yang diharapkan. Jika payload lebih besar dari ukuran buffer (10 MB di Apigee), Anda dapat menetapkan atribut ini ke true . Saat true , payload respons HTTP tidak dibaca ke buffer, dan akan di-streaming apa adanya ke klien. Dalam hal ini, kebijakan apa pun yang beroperasi pada payload dalam alur respons ProxyEndpoint akan diabaikan. Lihat juga Permintaan dan respons streaming. |
compression.algorithm |
T/A |
Secara default, Apigee mengikuti kumpulan jenis kompresi (gzip, deflate, atau tidak sama sekali) untuk pesan yang diterima. Misalnya, jika 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 pada
Lihat juga: Apakah Apigee mendukung kompresi/de-kompresi dengan kompresi GZIP/deflate? |
api.timeout |
T/A |
Mengonfigurasi waktu tunggu untuk setiap proxy API (dalam milidetik) Anda dapat mengonfigurasi proxy API, bahkan proxy yang mengaktifkan streaming, untuk mencapai waktu tunggu setelah waktu yang ditentukan dengan status
Misalnya, untuk mengonfigurasi proxy agar waktu 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> |
Menyetel io.timeout.millis dan api.timeout
Operasi io.timeout.millis
dan api.timeout
saling terkait. Pada setiap permintaan ke proxy API:
- Ingress (alias Load Balancer Internal) mengirimkan nilai waktu tunggunya ke Pemroses Pesan. Nilai waktu tunggu ini ditetapkan secara default ke 300 detik dan tidak dapat dikonfigurasi.
- Pemroses Pesan kemudian menetapkan
api.timeout
:- Jika
api.timeout
tidak ditetapkan pada tingkat proxy, gunakan waktu tunggu yang ditetapkan oleh Ingress. - Jika
api.timeout
disetel pada tingkat proxy, tetapkan parameter tersebut di Pemroses Pesan ke yang lebih rendah dalam waktu tunggu Ingress atau nilaiapi.timeout
.
- Jika
-
Nilai
api.timeout
menentukan jumlah waktu maksimum yang harus dieksekusi proxy API dari permintaan API ke respons.Setelah setiap kebijakan dalam proxy API dieksekusi, atau sebelum Pemroses Pesan mengirim permintaan ke endpoint target, Pemroses Pesan akan menghitung (
api.timeout
- waktu yang berlalu sejak permintaan dimulai).Jika nilainya kurang dari nol, maka jumlah waktu maksimum untuk menangani permintaan telah habis masa berlakunya dan Pemroses Pesan akan menampilkan
504 Gateway Timeout
. -
Nilai
io.timeout.millis
menentukan jumlah waktu maksimum yang dimiliki endpoint target untuk merespons.Sebelum terhubung ke endpoint target, Pemroses Pesan menentukan yang lebih singkat dari (
api.timeout
- waktu berlalu dari awal permintaan) danio.timeout.millis
. Selanjutnya, kode ini menetapkanio.timeout.millis
ke nilai tersebut.Jika waktu tunggu terjadi saat menulis permintaan HTTP atau membaca respons HTTP,
504 Gateway Timeout
akan ditampilkan.