Topik ini membahas perutean jalur dasar. Perutean jalur dasar memungkinkan Anda mengonfigurasi dan mengelola cara Apigee Hybrid routes API panggilan proxy ke lingkungan yang benar.
Menggunakan perutean jalur dasar untuk mengelola deployment proxy
Karena Anda dapat memetakan satu {i>host<i} virtual ke beberapa lingkungan secara hybrid, Anda perlu cara untuk menentukan jalur dasar {i>proxy<i} yang dipetakan ke lingkungan tertentu.
Misalnya, Anda ingin memetakan dua lingkungan ke alias host yang sama:
apitest.mydomain.net
. Di file penggantian, Anda dapat membuat kode berikut
konfigurasi dengan lingkungan dev1 dan dev2
dipetakan ke {i>host<i} ini. Contoh:
envs: - name: dev1 hostAlias: "apitest.mydomain.net" ... - name: dev2 hostAlias: "apitest.mydomain.net" ...
Sekarang, katakanlah Anda men-deploy proxy ke lingkungan ini. Anda men-deploy:
- Proxy foo1 dengan jalur dasar /foo1 ke dev1
- Proxy foo2 dengan jalur dasar /foo2 ke dev2
Misalkan klien memanggil API ini: https://apitest.mydomain.net/foo1
. Perlu diperhatikan bahwa tidak ada
di jalur ini (atau di header host yang dihasilkan untuk permintaan) yang memberi tahu hybrid
lingkungan mana yang menjadi
tujuan pemilihan rute panggilan. Apakah proxy foo1 di-deploy
ke dev1 atau dev2?
Berdasarkan URL permintaan saja, tidak ada cara untuk mengetahuinya. Anda harus secara eksplisit memetakan setiap
jalur dasar ini ke satu atau beberapa lingkungan.
Untuk menentukan ke lingkungan mana panggilan proxy harus dirutekan, tambahkan
paths.uri.prefixes
ke properti envs
dalam file penggantian,
seperti yang ditunjukkan dalam contoh berikut:
gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev1 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo1 - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 ...
Sekarang, saat panggilan API masuk seperti: https://apitest.mydomain.net/foo1
, traffic masuk
{i>router<i} tahu ke mana
mengirimnya. Aturan ini mengetahui bahwa proxy /foo1
di-deploy ke dev1
dan panggilan dirutekan ke pemroses pesan dev1.
Jika Anda mengirim panggilan ini, https://apitest.mydomain.net/foo2
, panggilan tersebut juga akan dirutekan ke
MP lingkungan dev2
, dan seterusnya.
Singkatnya, konfigurasi paths.uri.prefixes
memungkinkan Anda mengelola deployment proxy
di antara beberapa lingkungan yang
menggunakan alias {i>host<i} yang sama.
Praktik Terbaik: Gunakan perutean jalur dasar jika Anda ingin beberapa lingkungan berbagi alias {i>host<i} yang sama. Perutean jalur dasar memungkinkan Anda membatasi jumlah proxy yang di-deploy ke lingkungan tunggal. Untuk informasi selengkapnya, lihat Batasi jumlah deployment proxy.
Menambahkan lingkungan baru ke domain yang sama
Bagian ini menjelaskan cara menambahkan lingkungan baru ke domain.
Dalam skenario ini, asumsikan bahwa Anda memiliki lingkungan dev1
yang sudah di-deploy ke
gugus ini. Dalam contoh konfigurasi ini, hanya proxy dengan awalan basepath
/foo1
diizinkan:
gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev1 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo1 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
Untuk menambahkan lingkungan lain yang memiliki domain yang sama, ikuti langkah-langkah berikut:
- Buat file penggantian baru dengan konfigurasi lingkungan baru. Misalnya,
akan membuat lingkungan yang disebut
dev2
. Dalam lingkungan ini, hanya proxy dengan akhiran jalur/foo2
diizinkan:gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
- Jalankan perintah berikut dalam urutan apa pun:
apigeectl apply -f overrides/overrides-dev2.yaml -c udca
apigeectl apply -f overrides/overrides-dev2.yaml -c synchronizer
apigeectl apply -f overrides/overrides-dev2.yaml -c runtime
- Deploy proxy foo2 ke lingkungan dev2.
- Panggil proxy untuk menguji penyiapan.
curl https://apitest.mydomain.net/foo2
Menambahkan jalur dasar proxy baru ke lingkungan yang ada
Untuk menambahkan jalur dasar baru ke lingkungan yang ada, cukup tambahkan prefixes
entri untuk setiap jalur dasar baru. Misalnya, jika Anda membuat proxy baru dengan jalur dasar
/foo4, dan Anda ingin men-deploy
ke lingkungan yang disebut dev2, ikuti langkah-langkah berikut:
- Buka file pengganti yang berisi definisi lingkungan dev2.
- Tambahkan jalur dasar
/foo4
ke elemenpaths.uri.prefixes
:gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 - /foo4 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
- Terapkan komponen
runtime
ke cluster:apigeectl apply -f overrides/overrides-dev2.yaml -c runtime
- Panggil proxy untuk menguji penyiapan.
curl https://apitest.mydomain.net/foo4
Jika panggilan API masuk untuk
https://apitest.mydomain.net/foo4
, hybrid tahu untuk merutekannya ke lingkungandev2
.