Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Anda dapat menentukan bahwa satu proxy adalah endpoint target proxy lain, sehingga menghubungkan dua proxy dalam rantai proxy. Menggabungkan proxy dengan cara ini dapat membantu Anda menghindari lompatan jaringan, dan sehingga meningkatkan keseluruhan performa.
Dengan penggabungan proxy, Anda menentukan bahwa satu proxy adalah endpoint target lokal dari proxy lainnya.
Daripada menggunakan elemen HTTPTargetConnection
untuk melakukan panggilan ke proxy kedua, Anda menggunakan elemen LocalTargetConnection
.
<LocalTargetConnection> <APIProxy>myproxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Anda mungkin merasa bahwa penggabungan proxy berguna saat Anda memiliki proxy yang menawarkan beberapa fungsi tingkat rendah yang berbeda yang akan digunakan oleh proxy lain. Misalnya, proxy yang mengekspos operasi buat/baca/perbarui/hapus dengan penyimpanan data backend dapat menjadi proxy target untuk beberapa proxy lain yang mengekspos data ke klien.
Video: Tonton video singkat untuk mempelajari lebih lanjut rangkaian proxy API.
Cara kerja penggabungan proxy
Penggabungan proxy menggunakan koneksi lokal untuk meminimalkan overhead jaringan saat memanggil satu proxy dari proxy lain. Koneksi lokal ini lebih efisien karena melewati fitur jaringan seperti load balancer, router, dan pemroses pesan.
Berikut ini perbedaan antara menghubungkan proxy dengan
HTTPTargetConnection
dan LocalTargetConnection
(penggabungan proxy):
Anda menghubungkan proxy dengan menentukan bahwa salah satunya adalah endpoint target lokal dari proxy lainnya. Untuk konfigurasi dalam diagram di atas (Panggilan proxy-ke-proxy dengan penggabungan proxy), Anda akan menentukan bahwa ProxyB (/proxyB) adalah endpoint target lokal ProxyA (/proxyA). Hal ini menyebabkan permintaan yang tiba di ProxyA diteruskan ke ProxyB.
Anda dapat membuat koneksi lokal antara proxy dengan dua cara:
- Dengan menentukan nama proxy target dan nama ProxyEndpoint
- Dengan menentukan jalur ke endpoint proxy target
Anda menghubungkan proxy target dalam konfigurasi TargetEndpoint
, menggunakan
elemen LocalTargetConnection
, seperti yang dijelaskan di bawah.
Menghubungkan proxy berdasarkan nama proxy
Anda dapat menentukan proxy target berdasarkan nama. Anda mungkin merasa bahwa cara ini paling berguna saat Anda membuat koneksi dari awal dan mengembangkan proxy secara bersamaan. Jika Anda tidak mengetahui nama (atau nama dapat berubah), pertimbangkan untuk terhubung dengan jalur endpoint proxy target, seperti yang dijelaskan di bawah.
Saat Anda terhubung ke proxy target berdasarkan nama, Anda menentukan nama proxy dan nama
ProxyEndpoint
.
Contoh berikut menentukan proxy target bernama data-manager
, beserta
nama ProxyEndpoint
yang diekspos oleh data-manager
. Untuk informasi
referensi, lihat Referensi konfigurasi proxy API.
<TargetEndpoint name="datamanager"> <PreFlow name="PreFlow"> <!-- PreFlow policies --> </PreFlow> <PostFlow name="PostFlow"> <!-- PostFlow policies --> </PostFlow> <LocalTargetConnection> <APIProxy>data-manager</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection> </TargetEndpoint>
Menghubungkan proxy berdasarkan jalur
Anda dapat menentukan proxy target berdasarkan jalur endpoint-nya. Anda mungkin ingin melakukannya dengan cara ini jika Anda tidak mengetahui nama proxy, atau jika nama tersebut mungkin berubah.
Jika proxy Anda hanyalah konsumen dari proxy target—seperti saat Anda tidak mengembangkan keduanya—jalur mungkin merupakan cara paling andal untuk terhubung. Misalnya, jika proxy yang Anda hubungkan dikembangkan dan dikelola oleh tim lain, Anda mungkin ingin terhubung menggunakan jalur endpoint yang andal.
Contoh berikut menentukan proxy target di
/v1/streetcarts/foodcarts/data-manager
, dengan host diasumsikan sama dengan
proxy saat ini. Untuk informasi referensi, lihat Referensi konfigurasi proxy API.
<TargetEndpoint name="datamanager"> <PreFlow name="PreFlow"> <!-- PreFlow policies --> </PreFlow> <PostFlow name="PostFlow"> <!-- PostFlow policies --> </PostFlow> <LocalTargetConnection> <Path>/v1/streetcarts/foodcarts/data-manager</Path> </LocalTargetConnection> </TargetEndpoint>
Elemen <Path>
di bawah <LocalTargetConnection>
dapat berupa string, atau Anda dapat menggunakan template pesan untuk menetapkan nilai secara dinamis.
Menghubungkan proxy menggunakan UI Apigee
Anda juga dapat menghubungkan proxy, baik berdasarkan nama atau jalur proxy, menggunakan UI Apigee. Dalam contoh berikut, ada dua proxy, ProxyA dan ProxyB, dan Anda ingin ProxyB menjadi endpoint target ProxyA. Untuk menghubungkan proxy menurut nama proxy, lakukan langkah-langkah berikut:
- Buka daftar proxy.
- Login ke UI Apigee.
- Pilih Develop > Proxies di panel kiri.
- Dalam daftar proxy, pilih ProxyA.
- Klik tab Mengembangkan.
- Di panel Code, ganti bagian
<TargetEndpoint>
dari XML dengan kode berikut:<TargetEndpoint> <LocalTargetConnection> <APIProxy>ProxyB</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection> </TargetEndpoint>
- Klik Simpan.
Apigee di Konsol Cloud
Di konsol Google Cloud , buka halaman Proxy development > API proxies.
UI Apigee Klasik
Proxy berantai, produk API, dan keamanan
Rantai proxy paling cocok untuk kasus ketika kedua proxy berada dalam produk API yang sama. Secara default, keduanya tersedia untuk klien. Saat ini, Apigee tidak mendukung penggabungan proxy kedua dalam produk API terpisah yang tidak boleh diakses oleh klien.
Jika proxy kedua Anda harus diamankan dari permintaan klien langsung, pertimbangkan untuk menambahkan logika agar proxy kedua Anda memeriksa alamat IP klien. Dalam kasus panggilan yang dilakukan dengan penggabungan, alamat IP akan bersifat lokal. Kode Anda dapat memvalidasi bahwa kode tersebut bersifat lokal sebelum mengizinkan pemrosesan untuk dilanjutkan. Lihat kebijakan AccessControl untuk mengetahui salah satu cara melakukannya.