Membuat rantai proxy API bersama

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

Anda dapat menentukan bahwa satu proxy adalah endpoint target lainnya, yang secara efektif menghubungkan dua proxy dalam rantai proxy. Membuat rantai proxy dengan cara ini dapat membantu Anda menghindari hop jaringan, sehingga meningkatkan performa secara keseluruhan.

Dengan perantaian proxy, Anda menentukan bahwa satu proxy merupakan endpoint target lokal dari proxy lainnya. Daripada menggunakan elemen HTTPTargetConnection untuk melakukan panggilan ke proxy kedua, Anda sebaiknya menggunakan elemen LocalTargetConnection.

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

Perantaian proxy mungkin berguna jika Anda memiliki proxy yang menawarkan beberapa fungsionalitas tingkat rendah terpisah 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 perantaian proxy API.

Cara kerja perantaian proxy

Proxy chain menggunakan koneksi lokal untuk meminimalkan overhead jaringan saat memanggil satu proxy dari proxy lainnya. Koneksi lokal ini lebih efisien karena mengabaikan fitur jaringan seperti load balancer, router, dan pemroses pesan.

Berikut ini ilustrasi perbedaan antara menghubungkan proxy menggunakan HTTPTargetConnection dan LocalTargetConnection (rantai proxy):

Anda menghubungkan proxy dengan menentukan bahwa salah satunya merupakan endpoint target lokal dari lainnya. Anda dapat membuat koneksi lokal antar-proxy melalui 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 ini.

Menghubungkan proxy melalui nama proxy

Anda dapat menentukan proxy target berdasarkan nama. Cara ini paling berguna saat Anda membuat koneksi dari awal dan mengembangkan proxy bersama-sama. Jika Anda tidak tahu nama tersebut (atau namanya mungkin berubah), pertimbangkan untuk menghubungkan dengan jalur endpoint proxy target, seperti yang dijelaskan di bawah ini.

Saat terhubung ke proxy target berdasarkan nama, Anda harus menentukan nama proxy dan nama ProxyEndpoint-nya.

Contoh berikut menetapkan proxy target yang disebut 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 perlu melakukannya dengan cara ini saat tidak mengetahui nama proxy, atau ketika nama tersebut mungkin berubah.

Jika proxy Anda hanya menjadi konsumen proxy target—seperti saat Anda tidak mengembangkan keduanya—jalur tersebut mungkin menjadi cara yang paling andal untuk terhubung. Misalnya, jika proxy yang Anda hubungkan dikembangkan dan dikelola oleh tim lain, sebaiknya hubungkan menggunakan jalur endpoint yang andal.

Contoh berikut menetapkan proxy target di /v1/streetcarts/foodcarts/data-manager, dengan host dianggap 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 perantaian proxy menggunakan konsol pengelolaan Edge.

  1. Buka proxy yang akan memakai proxy target.
  2. Di Navigator, klik tanda plus di samping Target Endpoints.
  3. Pada 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.
    • Rantai Jalur untuk memasukkan jalur dasar proxy target, seperti /mypath/myproxy/myendpoint.
  5. Klik Tambahkan.

Proxy berantai, produk API, dan keamanan

Perantaian proxy sangat cocok untuk kasus-kasus ketika kedua proxy berada di produk API yang sama. Secara default, keduanya tersedia untuk klien. Apigee saat ini tidak mendukung pemaketan proxy kedua dalam produk API terpisah yang tidak dapat diakses klien.

Jika proxy kedua Anda harus diamankan dari permintaan klien langsung, pertimbangkan untuk menambahkan logika agar proxy kedua memeriksa alamat IP klien. Dalam kasus panggilan yang dilakukan melalui perantaian, 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 satu cara melakukannya.