Mengaitkan proxy API

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

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, sehingga meningkatkan keseluruhan performa.

Dengan proxy chaining, 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 pendek 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 menggunakan HTTPTargetConnection dan LocalTargetConnection (penggabungan proxy):

Anda menghubungkan proxy dengan menentukan bahwa salah satunya adalah endpoint target lokal dari yang lain. 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 menurut nama proxy

Anda dapat menentukan proxy target berdasarkan nama. Anda mungkin merasa bahwa hal 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 menurut 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 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>

Menghubungkan proxy dengan konsol pengelolaan

Anda dapat membuat koneksi proxy chaining menggunakan konsol pengelolaan Edge.

  1. Buka proxy yang akan menggunakan proxy target.
  2. Di Navigator, klik tanda plus di samping Target Endpoints.
  3. Dalam dialog New Target Endpoint, masukkan nama endpoint target.
  4. Di bawah kotak Target Endpoint Name, pilih salah satu opsi berikut:
    • Proxy Chaining untuk memilih dari daftar proxy yang sudah ada di organisasi dan lingkungan.
      1. Di dropdown Nama Proxy, pilih proxy target.
      2. Di kotak Proxy Endpoint, masukkan jalur endpoint proxy target yang ingin Anda hubungkan.
    • Path Chaining untuk memasukkan jalur dasar proxy target, seperti /mypath/myproxy/myendpoint.
  5. Klik Tambahkan.

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 melalui penggabungan, alamat IP akan bersifat lokal. Kode Anda dapat memvalidasi bahwa kode tersebut bersifat lokal sebelum mengizinkan pemrosesan untuk dilanjutkan. Lihat kebijakan Kontrol Akses untuk mengetahui salah satu cara melakukannya.