Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Topik ini menjelaskan properti transpor yang dapat ditetapkan di konfigurasi TargetEndpoint dan ProxyEndpoint untuk mengontrol perilaku pesan dan koneksi. Untuk mengetahui cakupan lengkap konfigurasi TargetEndpoint dan ProxyEndpoint, lihat Referensi konfigurasi proxy API.
Properti transpor TargetEndpoint
Elemen HTTPTargetConnection dalam konfigurasi TargetEndpoint menentukan sekumpulan properti transpor HTTP. Anda dapat menggunakan properti ini untuk menetapkan konfigurasi tingkat transport.
Properti ditetapkan pada elemen HTTPTargetConnection TargetEndpoint seperti yang ditunjukkan di bawah ini:
<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>
Spesifikasi properti transportasi TargetEndpoint
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
keepalive.timeout.millis |
60000 |
Waktu tunggu tidak ada aktivitas koneksi untuk koneksi target di kumpulan koneksi. Jika koneksi dalam kumpulan tidak ada aktivitas melebihi batas yang ditentukan, 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 belum siap menulis data untuk jumlah milidetik tertentu, transaksi akan diperlakukan sebagai waktu tunggu.
Nilai ini harus selalu lebih kecil dari nilai properti proxy_read_timeout host virtual. Nilai ini harus lebih kecil dari waktu tunggu yang digunakan oleh Router untuk berkomunikasi dengan Pemroses Pesan. Lihat Mengonfigurasi waktu tunggu Router untuk mengetahui informasi selengkapnya. Lihat Menyetel 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 dikirimi permintaan 1.0. Jika tidak, permintaan 1.1 akan dikirim ke target. |
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 |
Jika ditetapkan ke true , dan konfigurasi proxy ditentukan di http.properties (khusus deployment lokal), koneksi target akan disetel untuk menggunakan proxy yang ditetapkan. |
use.proxy.tunneling |
true |
Jika parameter ini disetel ke true , dan konfigurasi proxy ditentukan di http.properties (khusus deployment lokal), 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, tetapkan header X-HTTP-Method-Override pada permintaan keluar ke layanan target. Contoh, <Property
name="GET.override.method">POST</Property> . |
*.override.method |
T/A | Untuk metode HTTP yang ditentukan, tetapkan header X-HTTP-Method-Override pada permintaan keluar. Contoh, <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 Menyetel properti ini akan menimpa 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, Apigee Edge akan meneruskan permintaan tersebut 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/de-kompresi dengan kompresi GZIP/deflate? |
request.retain.headers. |
true |
Secara default, Apigee Edge 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 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 di
properti request.retain.headers tetap ditetapkan pada pesan keluar. |
response.retain.headers. |
true |
Secara default, Apigee Edge 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 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 , semua header yang ditentukan di properti response.retain.headers tetap ditetapkan 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 di 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 transpor ProxyEndpoint
Elemen HTTPTargetConnection ProxyEndpoint menentukan kumpulan properti transpor HTTP. Properti ini dapat digunakan untuk menetapkan konfigurasi tingkat transport.
Properti disetel 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.
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 buffering, 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 . Saat true , payload permintaan HTTP tidak dibaca ke buffering; payload akan di-streaming apa adanya ke alur permintaan TargetEndpoint. Dalam hal ini, setiap kebijakan yang beroperasi pada payload dalam alur permintaan ProxyEndpoint akan dilewati. Lihat juga Permintaan dan respons streaming. |
response.streaming. |
false |
Secara default (false ), payload respons HTTP dibaca ke dalam buffering, 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 . Saat true , payload respons HTTP tidak dibaca ke dalam buffering; payload akan di-streaming apa adanya ke klien. Dalam hal ini, semua kebijakan yang beroperasi pada payload dalam alur respons ProxyEndpoint akan dilewati. Lihat juga Permintaan dan respons streaming. |
compression.algorithm |
T/A |
Secara default, Apigee Edge mengikuti jenis kompresi yang ditetapkan untuk setiap pesan yang diterima. Misalnya, jika klien mengirimkan permintaan yang menggunakan kompresi gzip, Apigee Edge akan meneruskan permintaan tersebut untuk ditargetkan menggunakan kompresi gzip. Anda dapat mengonfigurasi algoritma kompresi untuk diterapkan secara eksplisit dengan menetapkan properti ini pada TargetEndpoint atau ProxyEndpoint. Nilai yang didukung adalah:
Lihat juga: Apakah Apigee mendukung kompresi/de-kompresi dengan kompresi GZIP/deflate? |
api.timeout |
T/A |
Mengonfigurasi waktu tunggu untuk masing-masing proxy API Anda dapat mengonfigurasi proxy API, bahkan proxy yang mengaktifkan
streaming,
agar waktu habis setelah waktu tertentu 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, selama waktu tunggunya lebih singkat daripada waktu tunggu pemroses pesan Edge standar, yaitu 57 detik. Lihat Menyetel io.timeout.millis dan api.timeout untuk Edge untuk mengetahui informasi selengkapnya. |
Menyetel io.timeout.millis dan api.timeout untuk Edge
Di Edge, operasi io.timeout.millis
dan api.timeout
saling terkait.
Pada setiap permintaan ke proxy API:
- {i>Router<i} mengirimkan nilai waktu tunggunya ke {i>Message Processor<i}. Nilai waktu tunggu Router adalah
nilai
proxy_read_timeout
yang ditetapkan oleh host virtual yang menangani permintaan, atau nilai waktu tunggu default 57 detik. - Pemroses Pesan kemudian menetapkan
api.timeout
:- Jika
api.timeout
tidak disetel di tingkat proxy, setel ke Waktu tunggu router. - Jika
api.timeout
disetel pada tingkat proxy, setel proxy pada Pemroses Pesan ke nilai waktu tunggu Router yang lebih rendah atau nilaiapi.timeout
.
- Jika
Nilai
api.timeout
menentukan jumlah waktu maksimum proxy API harus dieksekusi dari permintaan API ke respons.Setelah setiap kebijakan dalam proxy API dieksekusi, atau sebelum Pemroses Pesan mengirimkan permintaan ke endpoint target, Pemroses Pesan akan menghitung (
api.timeout
- waktu yang berlalu sejak awal permintaan). Jika nilainya kurang dari nol, maka jumlah waktu maksimum untuk menangani permintaan telah berakhir dan Pemroses Pesan menampilkan504
.Nilai
io.timeout.millis
menentukan jumlah waktu maksimum yang harus direspons oleh endpoint target.Sebelum terhubung ke endpoint target, Pemroses Pesan menentukan nilai yang lebih kecil (
api.timeout
- waktu berlalu dari awal permintaan) danio.timeout.millis
. Selanjutnya,io.timeout.millis
akan ditetapkan ke nilai tersebut.- Jika waktu tunggu habis saat menulis permintaan HTTP,
408, Request Timeout
akan ditampilkan. - Jika waktu tunggu terjadi saat membaca respons HTTP,
504, Gateway Timeout
akan ditampilkan.
- Jika waktu tunggu habis saat menulis permintaan HTTP,
Tentang ScriptTarget untuk aplikasi Node.js
Elemen ScriptTarget digunakan untuk mengintegrasikan aplikasi Node.js ke 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.