Topik ini membahas perutean jalur dasar. Perutean jalur dasar memungkinkan Anda mengonfigurasi dan mengelola cara Apigee Hybrid merutekan panggilan proxy API ke lingkungan yang benar.
Menggunakan perutean jalur dasar untuk mengelola deployment proxy
Karena Anda dapat memetakan satu host virtual ke beberapa lingkungan dalam hybrid, Anda memerlukan cara untuk menentukan jalur dasar proxy mana yang dipetakan ke lingkungan mana.
Misalnya, Anda ingin memetakan dua lingkungan ke alias host yang sama:
apitest.mydomain.net. Dalam file penggantian, Anda dapat membuat konfigurasi berikut di mana lingkungan dev1 dan dev2 dipetakan ke host ini. Contoh:
envs:
- name: dev1
hostAlias: "apitest.mydomain.net"
...
- name: dev2
hostAlias: "apitest.mydomain.net"
...
Sekarang, misalkan 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. Perhatikan bahwa tidak ada
di jalur ini (atau di header host yang dibuat untuk permintaan) yang memberi tahu hybrid
lingkungan mana yang harus dituju untuk merutekan panggilan. Apakah proxy foo1 di-deploy
ke dev1 atau dev2?
Hanya berdasarkan URL permintaan, tidak ada cara untuk mengetahuinya. Anda harus memetakan setiap
jalur dasar ini secara eksplisit ke satu atau beberapa lingkungan.
Untuk menentukan lingkungan tempat panggilan proxy harus dirutekan, tambahkan
properti paths.uri.prefixes ke properti envs dalam file penggantian Anda,
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, router ingress tahu ke mana harus mengirimkannya. Proxy /foo1 diketahui di-deploy ke lingkungan dev1, dan panggilan akan 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 beberapa lingkungan yang berbagi alias host yang sama.
Praktik Terbaik: Gunakan perutean jalur dasar jika Anda ingin beberapa lingkungan berbagi alias host yang sama. Perutean jalur dasar memungkinkan Anda membatasi jumlah proxy yang di-deploy ke satu lingkungan. Untuk mengetahui informasi selengkapnya, lihat Membatasi 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 telah men-deploy lingkungan dev1 ke cluster. Dalam konfigurasi contoh ini, hanya proxy dengan awalan basepath
/foo1 yang 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 menggunakan domain yang sama, ikuti langkah-langkah berikut:
- Buat file penggantian baru dengan konfigurasi lingkungan baru. Misalnya, konfigurasi
ini membuat lingkungan bernama
dev2. Di lingkungan ini, hanya proxy dengan akhiran jalur/foo2yang 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 entri prefixes
untuk setiap jalur dasar baru. Misalnya, jika Anda membuat proxy baru dengan jalur dasar
/foo4, dan Anda ingin men-deploy-nya
ke lingkungan yang disebut dev2, ikuti langkah-langkah berikut:
- Buka file penggantian yang memiliki definisi lingkungan dev2.
- Tambahkan jalur dasar
/foo4ke 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
runtimeke 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.