Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Topik ini menjelaskan properti transportasi yang dapat ditetapkan dalam konfigurasi TargetEndpoint dan ProxyEndpoint untuk mengontrol perilaku pesan dan koneksi. Untuk cakupan lengkap konfigurasi TargetEndpoint dan ProxyEndpoint, lihat Referensi konfigurasi proxy API.
Properti transportasi TargetEndpoint
Elemen HTTPTargetConnection dalam konfigurasi TargetEndpoint menentukan serangkaian properti transport HTTP. Anda dapat menggunakan properti ini untuk menyetel konfigurasi tingkat transportasi.
Properti ditetapkan pada elemen HTTPTargetConnection TargetEndpoint seperti yang ditunjukkan di bawah:
<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<Properties>
<Property name="supports.http10">true</Property>
<Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
<Property name="retain.queryparams">apikey</Property>
</Properties>
<CommonName>COMMON_NAME_HERE</CommonName>
</HTTPTargetConnection>
</TargetEndpoint>Properti transportasi TargetEndpoint Spesifikasi
| Nama Properti | Nilai Default | Deskripsi |
|---|---|---|
keepalive.timeout.millis |
60000 |
Waktu tunggu koneksi tidak aktif untuk koneksi target di kumpulan koneksi. Jika koneksi dalam pool tidak ada aktivitas di luar batas yang ditentukan, maka koneksi akan ditutup. |
connect.timeout.millis |
|
Waktu tunggu koneksi target habis. Edge menampilkan kode status HTTP |
io.timeout.millis |
55000 |
Jika tidak ada data yang akan dibaca untuk jumlah milidetik yang ditentukan, atau jika soket tidak siap untuk menulis data selama jumlah milidetik yang ditentukan, transaksi akan diperlakukan sebagai waktu tunggu habis.
Nilai ini harus selalu lebih kecil daripada nilai properti proxy_read_timeout host virtual. Nilai ini harus kurang dari waktu tunggu yang digunakan oleh Router untuk berkomunikasi dengan Message Processor. Lihat Mengonfigurasi waktu tunggu Router untuk mengetahui informasi selengkapnya. Lihat Menetapkan io.timeout.millis dan api.timeout untuk Edge untuk mengetahui informasi selengkapnya. |
supports.http10 |
true |
Jika ini adalah true dan klien mengirim permintaan 1.0, target juga akan mengirim permintaan 1.0. Jika tidak, permintaan 1.1 akan dikirim ke target. |
supports.http11 |
true |
Jika ini adalah true dan klien mengirim permintaan 1.1, target juga akan dikirimi permintaan 1.1, jika tidak, permintaan 1.0 akan dikirim ke target. |
use.proxy |
true |
Jika disetel ke true, dan konfigurasi proxy ditentukan di
http.properties (hanya deployment lokal), maka koneksi target
disetel untuk menggunakan proxy yang ditentukan. |
use.proxy.tunneling |
true |
Jika setelan ini ditetapkan ke true, dan konfigurasi proxy ditentukan di
http.properties (hanya deployment lokal), maka koneksi
target akan disetel untuk menggunakan tunnel yang ditentukan. Jika target menggunakan TLS/SSL, properti ini akan diabaikan, dan pesan akan selalu dikirim melalui tunnel. |
enable.method.override |
false |
Untuk metode HTTP yang ditentukan, menetapkan header X-HTTP-Method-Override pada
permintaan keluar ke layanan target. Misalnya, <Property
name="GET.override.method">POST</Property> |
*.override.method |
T/A | Untuk metode HTTP yang ditentukan, menetapkan header X-HTTP-Method-Override pada
permintaan keluar. Misalnya, <Property
name="GET.override.method">POST</Property> |
request.streaming.enabled |
false |
Secara default ( |
response.streaming.enabled |
false |
Secara default ( |
success.codes |
T/A |
Secara default, Apigee Edge memperlakukan kode HTTP Menetapkan properti ini akan menggantikan nilai default. Oleh karena itu, jika Anda ingin menambahkan
kode HTTP <Property name="success.codes">1XX,2XX,3XX,400</Property> Jika Anda hanya ingin kode HTTP <Property name="success.codes">400</Property> Dengan menetapkan kode HTTP |
compression.algorithm |
T/A |
Secara default, Apigee Edge meneruskan permintaan ke target menggunakan jenis kompresi yang sama
dengan permintaan klien. Jika permintaan diterima dari klien menggunakan, misalnya, kompresi gzip, maka Apigee Edge akan meneruskan permintaan ke target menggunakan kompresi gzip. Jika
respons yang diterima dari target menggunakan deflate, Apigee Edge 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. |
true |
Secara default, Apigee Edge selalu mempertahankan semua header HTTP pada pesan keluar. Jika disetel
ke true, semua header HTTP yang ada pada permintaan masuk akan disetel 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 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
disetel ke false, semua header yang ditentukan dalam
properti request.retain.headers tetap disetel pada pesan keluar. |
response.retain.headers. |
true |
Secara default, Apigee Edge selalu mempertahankan semua header HTTP pada pesan keluar. Jika disetel
ke true, semua header HTTP yang ada pada respons masuk dari layanan
target akan disetel 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 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 disetel ke false, semua header
yang ditentukan dalam properti response.retain.headers tetap disetel pada
pesan keluar. |
retain.queryparams. |
true |
Secara default, Apigee Edge selalu mempertahankan semua parameter kueri pada permintaan keluar. Jika
ditetapkan ke true, semua parameter kueri yang ada pada permintaan masuk akan ditetapkan pada
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 transportasi ProxyEndpoint
Elemen ProxyEndpoint HTTPTargetConnection menentukan serangkaian properti transportasi HTTP. Properti ini dapat digunakan untuk menetapkan konfigurasi tingkat transportasi.
Properti ditetapkan pada elemen ProxyEndpoint HTTPProxyConnection sebagai berikut:
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/v1/weather</BasePath>
<Properties>
<Property name="request.streaming.enabled">true</Property>
</Properties>
<VirtualHost>default</VirtualHost>
<VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>
</ProxyEndpoint>Untuk mengetahui informasi selengkapnya tentang host virtual, lihat Tentang host virtual.
Properti transportasi ProxyEndpoint Spesifikasi
| Nama Properti | Nilai Default | Deskripsi |
|---|---|---|
X-Forwarded-For |
false |
Jika disetel 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 berfungsi seperti yang diharapkan. Jika payload lebih besar dari ukuran buffer (10 MB), Anda dapat menetapkan atribut ini ke true. Jika true, payload permintaan HTTP tidak dibaca ke dalam buffer; 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 dilewati. Lihat juga Permintaan dan respons streaming. |
response.streaming. |
false |
Secara default (false), muatan respons HTTP dibaca ke dalam buffer, dan kebijakan yang
dapat beroperasi pada muatan berfungsi seperti yang diharapkan. Jika payload lebih besar dari ukuran buffer (10 MB), Anda dapat menetapkan atribut ini ke true. Saat true, muatan respons HTTP tidak dibaca ke dalam buffer; muatan tersebut
di-streaming apa adanya ke klien. Dalam hal ini, kebijakan apa pun yang beroperasi pada payload dalam alur respons ProxyEndpoint akan dilewati. Lihat juga Permintaan dan respons streaming. |
compression.algorithm |
T/A |
Secara default, Apigee Edge mematuhi jenis kompresi yang ditetapkan untuk setiap pesan yang diterima. Misalnya, jika klien mengirimkan permintaan yang menggunakan kompresi gzip, Apigee Edge akan meneruskan permintaan ke target menggunakan kompresi gzip. Anda dapat mengonfigurasi algoritma kompresi agar diterapkan secara eksplisit dengan menetapkan properti ini di TargetEndpoint atau ProxyEndpoint. Nilai yang didukung adalah:
Lihat juga: Apakah Apigee mendukung kompresi/dekompresi dengan kompresi GZIP/deflate? |
api.timeout |
T/A |
Mengonfigurasi waktu tunggu untuk setiap proxy API Anda dapat mengonfigurasi proxy API, bahkan yang mengaktifkan
streaming,
agar waktu tunggu habis setelah waktu yang ditentukan dengan status
Anda tidak dapat menetapkan properti ini dengan variabel. Pelanggan yang tidak dapat mengubah waktu tunggu Edge juga dapat mengonfigurasi waktu tunggu proxy API, asalkan waktu tunggu tersebut lebih singkat daripada waktu tunggu pemroses pesan Edge standar, yaitu 57 detik. Lihat Menetapkan io.timeout.millis dan api.timeout untuk Edge untuk mengetahui informasi selengkapnya. |
Menyetel io.timeout.millis dan api.timeout untuk Edge
Di Edge, pengoperasian io.timeout.millis dan api.timeout
terkait.
Pada setiap permintaan ke proxy API:
- Router mengirimkan nilai waktu tunggu ke Message Processor. Nilai waktu tunggu Router adalah
nilai
proxy_read_timeoutyang ditetapkan oleh host virtual yang menangani permintaan, atau nilai waktu tunggu default 57 detik. - Message Processor kemudian menetapkan
api.timeout:- Jika
api.timeouttidak ditetapkan di tingkat proxy, tetapkan ke waktu tunggu Router. - Jika
api.timeoutditetapkan di tingkat proxy, tetapkan di Message Processor ke nilai yang lebih kecil dari waktu tunggu Router atau nilaiapi.timeout.
- Jika
Nilai
api.timeoutmenentukan jumlah waktu maksimum yang dimiliki proxy API untuk dieksekusi dari permintaan API hingga respons.Setelah setiap kebijakan di proxy API dieksekusi, atau sebelum Pemroses Pesan mengirim permintaan ke endpoint target, Pemroses Pesan menghitung (
api.timeout- waktu yang berlalu sejak awal permintaan). Jika nilainya kurang dari nol, waktu maksimum untuk menangani permintaan telah habis dan Message Processor akan menampilkan504.Nilai
io.timeout.millismenentukan jumlah waktu maksimum yang harus dimiliki endpoint target untuk merespons.Sebelum terhubung ke endpoint target, Message Processor menentukan yang lebih kecil antara (
api.timeout- waktu yang berlalu sejak awal permintaan) danio.timeout.millis. Kemudian, kode ini akan menetapkanio.timeout.milliske nilai tersebut.- Jika terjadi waktu tunggu saat menulis permintaan HTTP,
408, Request Timeoutakan ditampilkan. - Jika terjadi waktu tunggu habis saat membaca respons HTTP,
504, Gateway Timeoutakan ditampilkan.
- Jika terjadi waktu tunggu saat menulis permintaan HTTP,
Tentang ScriptTarget untuk aplikasi Node.js
Elemen ScriptTarget digunakan untuk mengintegrasikan aplikasi Node.js ke dalam proxy Anda. Untuk informasi tentang penggunaan Node.js dan ScriptTarget, lihat:
Tentang endpoint HostedTarget
Tag <HostedTarget/> kosong memberi tahu Edge untuk menggunakan aplikasi Node.js yang di-deploy ke lingkungan Target yang Dihosting sebagai targetnya. Untuk mengetahui detailnya, lihat
Ringkasan Target yang Dihosting.