Referensi properti endpoint

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Topik ini menjelaskan properti transpor yang dapat ditetapkan di TargetEndpoint dan ProxyEndpoint untuk mengontrol perilaku pesan dan koneksi. Untuk cakupan lengkap TargetEndpoint dan konfigurasi ProxyEndpoint, lihat referensi konfigurasi proxy API.

Properti transpor TargetEndpoint

Elemen HTTPTargetConnection di konfigurasi TargetEndpoint menentukan kumpulan properti transpor. Anda dapat menggunakan properti ini untuk menetapkan konfigurasi tingkat transportasi.

Properti ditetapkan pada elemen HTTPTargetConnection TargetEndpoint seperti yang ditampilkan 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 transpor TargetEndpoint Spesifikasi

Nama Properti Nilai Default Deskripsi
keepalive.timeout.millis 60000 Waktu tunggu tidak ada aktivitas koneksi untuk koneksi target di kumpulan koneksi. Jika jika koneksi dalam kumpulan tidak ada aktivitas di luar batas yang ditentukan, berarti koneksi tutup.
connect.timeout.millis

3000

Waktu tunggu koneksi target habis. Edge menampilkan kode status 503 HTTP jika koneksi waktu tunggu habis. Dalam beberapa kasus, kode status HTTP 504 mungkin ditampilkan saat LoadBalancer digunakan dalam definisi TargetServer dan waktu tunggu habis.

io.timeout.millis 55000

Jika tidak ada data yang akan dibaca untuk jumlah milidetik yang ditentukan, atau jika soket tidak siap menulis data untuk jumlah milidetik tertentu, maka transaksinya dianggap sebagai waktu tunggu.

  • Jika waktu tunggu habis saat menulis permintaan HTTP, 408, Request Timeout akan dikembalikan.
  • Jika waktu tunggu habis saat membaca respons HTTP, 504, Gateway Timeout akan dikembalikan.

Nilai ini harus selalu lebih kecil dari nilai properti proxy_read_timeout milik host virtual.

Nilai ini harus lebih kecil daripada waktu tunggu yang digunakan oleh {i>Router<i} untuk berkomunikasi dengan Pemroses Pesan. Lihat Mengonfigurasi Waktu tunggu router untuk banyak lagi.

Lihat Menyetel io.timeout.millis dan api.timeout untuk Edge untuk lebih banyak.

supports.http10 true Jika ini adalah true dan klien mengirimkan permintaan 1.0, target juga akan mengirim permintaan 1.0 permintaan. 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 mengirim permintaan 1.1 , jika tidak, permintaan 1,0 akan dikirim ke target.
use.proxy true Jika ditetapkan ke true, dan konfigurasi proxy akan ditentukan di http.properties (khusus deployment lokal), lalu target koneksi diatur untuk menggunakan proxy yang ditetapkan.
use.proxy.tunneling true Jika ini disetel ke true, dan konfigurasi proxy akan ditetapkan di http.properties (khusus deployment lokal), lalu targetkan koneksi diatur untuk menggunakan tunnel yang ditentukan. Jika target menggunakan TLS/SSL, metode ini diabaikan, dan pesan akan selalu dikirim melalui tunnel.
enable.method.override false Untuk metode HTTP yang ditentukan, menyetel header X-HTTP-Method-Override di permintaan keluar ke layanan target. Misalnya, <Property name="GET.override.method">POST</Property>
*.override.method T/A Untuk metode HTTP yang ditentukan, menyetel header X-HTTP-Method-Override di permintaan keluar. Misalnya, <Property name="GET.override.method">POST</Property>
request.streaming.enabled false

Secara default (false), payload permintaan HTTP dibaca ke dalam buffer, dan kebijakan yang dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus di mana payload lebih besar dari ukuran buffer (10 MB), Anda dapat mengatur ke true. Saat true, payload permintaan HTTP tidak dibaca ke buffer; mereka di-streaming apa adanya ke endpoint target. Dalam hal ini, setiap kebijakan yang beroperasi berdasarkan payload dalam alur permintaan TargetEndpoint diabaikan. Lihat juga Permintaan dan respons streaming.

response.streaming.enabled false

Secara default (false), payload respons HTTP dibaca ke buffer, dan kebijakan yang dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus di mana payload lebih besar dari ukuran buffer (10 MB), Anda dapat mengatur ke true. Saat true, payload respons HTTP tidak dibaca ke buffer; mereka yang di-streaming apa adanya ke alur respons ProxyEndpoint. Dalam hal ini, setiap kebijakan yang dan beroperasi pada payload di alur respons TargetEndpoint. Lihat juga Permintaan streaming dan respons tersebut.

success.codes T/A

Secara default, Apigee Edge memperlakukan kode HTTP 4XX atau 5XX sebagai error, dan Apigee memperlakukan kode HTTP 1XX, 2XX, 3XX sebagai berhasil. Properti ini memungkinkan definisi yang jelas mengenai kode sukses, untuk contoh, 2XX, 1XX, 505 memperlakukan kode respons HTTP 100, 200, dan 505 sebagai kesuksesan.

Menyetel properti ini akan menimpa nilai default. Oleh karena itu, jika Anda ingin menambahkan Kode HTTP 400 ke daftar kode sukses default, tetapkan properti ini sebagai:

&lt;Property name="Success.codes">1XX,2XX,3XX,400</Property>

Jika Anda hanya ingin kode HTTP 400 yang diperlakukan sebagai kode berhasil, tetapkan properti sebagai:

&lt;Property name="Success.codes">400</Property>

Dengan menyetel kode HTTP 400 sebagai satu-satunya kode yang berhasil, kode 1XX, 2XX, dan 3XX adalah dan dianggap gagal.

compression.algorithm T/A Secara default, Apigee Edge meneruskan permintaan ke target menggunakan jenis kompresi yang sama sebagai permintaan klien. Jika permintaan diterima dari klien menggunakan, misalnya, gzip baru, kemudian Apigee Edge meneruskan permintaan untuk ditargetkan menggunakan kompresi gzip. Jika respons yang diterima dari target menggunakan deflate, kemudian Apigee Edge meneruskan respons ke klien menggunakan {i>deflate<i}. Nilai yang didukung adalah:
  • gzip: selalu kirim pesan menggunakan kompresi gzip
  • deflate: selalu mengirim pesan menggunakan kompresi deflate
  • none: selalu mengirim pesan tanpa kompresi apa pun

Lihat juga: Apakah Apigee mendukung kompresi/dekompresi dengan kompresi GZIP/deflate?

request.retain.headers.
enabled
true Secara default, Apigee Edge selalu mempertahankan semua header HTTP pada pesan keluar. Setelah ditetapkan ke true, semua header HTTP yang ada di permintaan masuk akan ditetapkan di permintaan keluar.
request.retain.headers T/A Menentukan header HTTP spesifik dari permintaan yang harus ditetapkan saat pengalihan permintaan ke layanan target. Misalnya, untuk passthrough User-Agent , setel 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 disetel ke false, header apa pun yang ditentukan dalam Properti request.retain.headers masih ditetapkan pada pesan keluar.
response.retain.headers.
enabled
true Secara default, Apigee Edge selalu mempertahankan semua header HTTP pada pesan keluar. Setelah ditetapkan ke true, semua header HTTP yang ada pada respons masuk dari target ditetapkan pada respons keluar sebelum diteruskan ke ProxyEndpoint.
response.retain.headers T/A Menentukan header HTTP spesifik dari respons yang harus ditetapkan saat panggilan keluar sebelum diteruskan ke ProxyEndpoint. Misalnya, untuk passthrough Header Expires, tetapkan nilai response.retain.headers ke Expires. Beberapa {i>header <i}HTTP ditetapkan sebagai daftar yang dipisahkan koma, untuk contoh, Expires,Set-Cookie. Properti ini mengganti response.retain.headers.enabled. Jika response.retain.headers.enabled ditetapkan ke false, header apa pun yang ditentukan di properti response.retain.headers masih ditetapkan di pesan keluar.
retain.queryparams.
enabled
true Secara default, Apigee Edge selalu mempertahankan semua parameter kueri pada permintaan keluar. Kapan ditetapkan ke true, semua parameter kueri yang ada pada 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 sertakan parameter kueri apikey dari pesan permintaan, tetapkan retain.queryparams untuk apikey. Beberapa parameter kueri ditetapkan sebagai daftar yang dipisahkan koma, misalnya, apikey,environment. Ini mengganti retain.queryparams.enabled.

Properti transpor ProxyEndpoint

Elemen HTTPTargetConnection ProxyEndpoint menentukan kumpulan properti transpor HTTP. Ini dapat digunakan untuk menetapkan konfigurasi tingkat transport.

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 informasi selengkapnya tentang host virtual, lihat Tentang host virtual.

Properti transpor ProxyEndpoint Spesifikasi

Nama Properti Nilai Default Deskripsi
X-Forwarded-For false Jika ditetapkan ke true, alamat IP host virtual akan ditambahkan ke permintaan keluar sebagai dari header HTTP X-Forwarded-For.
request.streaming.
enabled
false Secara default (false), payload permintaan HTTP dibaca ke dalam buffer, dan kebijakan yang dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus saat payload lebih besar dari (10 MB), Anda dapat menyetel ke true. Saat true, payload permintaan HTTP tidak dibaca ke buffer; mereka di-streaming apa adanya ke alur permintaan TargetEndpoint. Dalam hal ini, setiap kebijakan yang beroperasi pada payload dalam alur permintaan ProxyEndpoint. Lihat juga Permintaan dan respons streaming.
response.streaming.
enabled
false Secara default (false), payload respons HTTP dibaca ke buffer, dan kebijakan yang dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus di mana payload lebih besar dari ukuran buffer (10 MB), Anda dapat mengatur ke true. Saat true, payload respons HTTP tidak dibaca ke buffer; mereka yang di-streaming apa adanya ke klien. Dalam hal ini, setiap kebijakan yang beroperasi pada {i>payload<i} di dalam Alur respons ProxyEndpoint diabaikan. Lihat juga Permintaan dan respons streaming.
compression.algorithm T/A

Secara default, Apigee Edge mengikuti jenis kompresi yang ditetapkan untuk setiap pesan yang diterima. Sebagai misalnya saat klien mengirimkan permintaan yang menggunakan kompresi gzip, Apigee Edge meneruskan permintaan untuk ditargetkan menggunakan kompresi gzip. Anda dapat mengonfigurasi kompresi diterapkan secara eksplisit dengan menetapkan properti ini pada TargetEndpoint atau ProxyEndpoint. Nilai yang didukung adalah:

  • gzip: selalu kirim pesan menggunakan kompresi gzip
  • deflate: selalu mengirim pesan menggunakan kompresi deflate
  • none: selalu mengirim pesan tanpa kompresi apa pun

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 proxy dengan streaming aktif, ke waktu tunggu setelah waktu tertentu dengan status 504 Gateway Timeout. Kasus penggunaan utama adalah untuk pelanggan yang memiliki proxy API yang membutuhkan waktu lebih lama untuk dijalankan. Misalnya, Anda memerlukan proxy tertentu untuk waktu tunggu pukul 3 menit. Berikut adalah cara menggunakan api.timeout.

  1. Pertama, pastikan untuk mengonfigurasi load balancer, router, dan pemroses pesan untuk waktu tunggu setelah tiga menit.
  2. Kemudian, konfigurasi proxy yang relevan agar waktu habis pada tiga menit. Tentukan nilai di dalam milidetik. Contoh: <Property name="api.timeout">180000</Property>
  3. Namun, perhatikan bahwa menaikkan waktu tunggu sistem dapat menyebabkan masalah performa, karena semua proxy tanpa setelan api.timeout menggunakan pemuatan baru yang lebih tinggi waktu tunggu penyeimbang, router, dan pemroses pesan. Jadi, konfigurasikan proxy API lain yang tidak memerlukan waktu tunggu yang lebih lama untuk menggunakan waktu tunggu yang lebih rendah. Misalnya, yang berikut ini menetapkan Waktu tunggu proxy API habis setelah 1 menit:
    <Property name="api.timeout">60000</Property>

Anda tidak dapat menetapkan properti ini dengan variabel.

Pelanggan yang tidak dapat mengubah waktu tunggu Edge juga dapat mengonfigurasi proxy API waktu tunggu, selama waktu tunggu lebih singkat dari pemroses pesan Edge standar waktu tunggu 57 detik.

Lihat Menyetel io.timeout.millis dan api.timeout untuk Edge untuk lebih banyak.

Menyetel io.timeout.millis dan api.timeout untuk Edge

Di Edge, operasi io.timeout.millis dan api.timeout saling berhubungan. Pada setiap permintaan ke proxy API:

  1. Router mengirimkan nilai waktu tunggunya ke Pemroses Pesan. Nilai waktu tunggu Router adalah nilai proxy_read_timeout yang ditetapkan oleh host virtual yang menangani permintaan, atau nilai waktu tunggu default 57 detik.
  2. Pemroses Pesan kemudian menetapkan api.timeout:
    1. Jika api.timeout tidak ditetapkan di tingkat proxy, tetapkan ke waktu tunggu Router.
    2. Jika api.timeout disetel di tingkat proxy, setel pada Pemroses Pesan ke lebih sedikit waktu tunggu Router atau nilai api.timeout.
  3. Nilai api.timeout menentukan jumlah waktu maksimum yang dimiliki proxy API dieksekusi dari permintaan API ke respons.

    Setelah setiap kebijakan di proxy API dieksekusi, atau sebelum Pemroses Pesan mengirimkan permintaan ke titik akhir 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 akan menampilkan 504.

  4. Nilai io.timeout.millis menentukan jumlah waktu maksimum endpoint target harus merespons.

    Sebelum terhubung ke endpoint target, Pemroses Pesan menentukan nilai (api.timeout - waktu yang berlalu dari awal permintaan) dan io.timeout.millis. Kemudian, io.timeout.millis akan ditetapkan ke nilai tersebut.

    • Jika waktu tunggu habis saat menulis permintaan HTTP, 408, Request Timeout akan dikembalikan.
    • Jika waktu tunggu habis saat membaca respons HTTP, 504, Gateway Timeout akan dikembalikan.

Tentang ScriptTarget untuk aplikasi Node.js

Elemen ScriptTarget digunakan untuk mengintegrasikan aplikasi Node.js ke proxy Anda. Sebagai informasi tentang cara menggunakan Node.js dan ScriptTarget, lihat:

Tentang endpoint HostedTarget

Tag <HostedTarget/> kosong memberi tahu Edge untuk menggunakan Node.js sebagai targetnya yang di-deploy ke lingkungan Hosted Targets. Untuk mengetahui detailnya, lihat Ringkasan Target yang Dihosting.