Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
  
    Lihat dokumentasi 
    Apigee Edge.
  
  
       
 
  
Contoh ini menunjukkan cara menggunakan Apigee Adapter for Envoy dengan deployment hybrid Apigee.
Prasyarat
| Sebelum memulai: | 
|---|
|  | 
|  | 
|  | 
Ringkasan
Contoh ini menjelaskan cara menggunakan Apigee Adapter for Envoy dengan Apigee Hybrid. Dalam contoh ini, Anda akan men-deploy layanan HTTP sederhana di cluster Kubernetes yang sama tempat Apigee Hybrid di-deploy. Kemudian, Anda akan mengonfigurasi Apigee Adapter for Envoy untuk mengelola panggilan API ke layanan ini dengan Apigee.
Gambar berikut menunjukkan arsitektur dasar untuk integrasi hybrid Apigee:

Proxy Envoy di-deploy dengan layanan HTTP target sebagai sidecar Istio di mesh layanan Istio. File bantuan menangani traffic API ke dan dari layanan target, serta berkomunikasi dengan Layanan Jarak Jauh. Layanan Jarak Jauh juga berkomunikasi dengan bidang pengelolaan hybrid untuk mengambil informasi produk dan proxy API.
Periksa konfigurasi gcloud Anda
- Pastikan konfigurasi gcloudAnda disetel ke project GCP yang terkait dengan organisasi hybrid Anda.Untuk mencantumkan setelan saat ini: gcloud config list Jika perlu, tetapkan project ID GCP yang benar dengan perintah ini: gcloud config set project project-id 
- Anda harus diautentikasi dengan Google Cloud SDK (gcloud) untuk project GCP Anda:
  gcloud auth login 
Menyediakan Apigee Hybrid
  Pada langkah ini, Anda akan menggunakan Remote Service CLI untuk menyediakan hybrid dengan proxy API remote-service. Perintah penyediaan juga menyiapkan sertifikat di
  Apigee, dan membuat kredensial yang akan digunakan layanan jarak jauh untuk terhubung kembali ke Apigee secara aman.
- Buka direktori $CLI_HOME:cd $CLI_HOME 
- Jika Anda bukan pemilik project GCP yang terkait dengan organisasi Apigee Hybrid,
    pastikan akun pengguna GCP Anda memiliki peran Apigee Organization Admin. Lihat Memberikan, mengubah, dan mencabut akses ke resource.
- Jalankan perintah ini untuk mendapatkan token akses:
  TOKEN=$(gcloud auth print-access-token);echo $TOKEN 
- Buat variabel lingkungan berikut. Variabel ini akan digunakan sebagai
    parameter untuk skrip penyediaan:
export ORG=organization_nameexport ENV=environment_nameexport RUNTIME=host_alias_urlexport NAMESPACE=hybrid_runtime_namespaceDengan: Variabel Deskripsi organization_name Nama organisasi Apigee untuk penginstalan Apigee Hybrid Anda. environment_name Nama lingkungan di organisasi Apigee Hybrid Anda. host_alias_url URL yang menyertakan hostAliasuntuk host virtual yang ditentukan dalam konfigurasi hybrid Anda. URL harus diawali denganhttps://. Contoh:https://apitest.apigee-hybrid-docs.nethybrid_runtime_namepace Namespace tempat komponen runtime Hybrid di-deploy. Catatan: Namespace default untuk deployment hybrid adalah apigee.
- Jalankan perintah berikut untuk menyediakan proxy layanan jarak jauh ke Apigee Hybrid:
    
    
    
    Jika Anda tidak melakukan upgrade, gunakan perintah ini untuk menyediakan Apigee: ./apigee-remote-service-cli provision --organization $ORG --environment $ENV \ --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yamlJika Anda melakukan upgrade, gunakan perintah ini dengan flag --force-proxy-installuntuk menyediakan Apigee:./apigee-remote-service-cli provision --force-proxy-install --organization $ORG --environment $ENV \ --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yaml
- Periksa konten file config.yaml. Ini akan terlihat seperti berikut:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-07-06 18:03:58 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://apitest.apigee-hybrid-docs.net/remote-service org_name: hybrid-docs env_name: envoy allow_unverified_ssl_cert: true analytics: collection_interval: 10s fluentd_endpoint: apigee-udca-hybrid-docs-envoy.apigee:20001 tls: ca_file: /opt/apigee/tls/ca.crt key_file: /opt/apigee/tls/tls.key cert_file: /opt/apigee/tls/tls.crt --- apiVersion: v1 kind: Secret metadata: name: hybrid-docs-envoy-policy-secret namespace: apigee type: Opaque data: remote-service.crt: eyJrZXlzIjpbeyJrdHkiOiJSU0EiLCJhbGci... remote-service.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURS... remote-service.properties: a2lkPTIwMjAtMDctMDZ... 
- Terapkan konfigurasi layanan (output file oleh perintah penyediaan) ke cluster:
    kubectl apply -f $CLI_HOME/config.yaml 
- Verifikasi proxy dan sertifikat Anda. Berikut ini akan menampilkan JSON yang valid:
  curl -i $RUNTIME/remote-service/certs Outputnya akan terlihat seperti ini: { "keys": [ { "alg": "RS256", "e": "AQAB", "kid": "2020-05-11T11:32:26-06:00", "kty": "RSA", "n": "0v-nbTQyAmtVZ-wZRP0ZPIbrVaX91YO9JZ9xCQPb4mOdOSS7yKfTDJGg0KM130sGVYBvR76alN8 fhrrSDEG5VXG8YYMqPXarwRC7MRJWocCQ_ECYrjDD0_Q018M2HyXZYSd8fhAogi9mVUYsEmCKqJH53Dh1 jqsHOQzBLKsX0iDO9hEZNFtjbX0UCbSxsUlmBCub7Uj2S-PahA6DEQOMhQjZM7bBMtkTMpFmaJ_RZTmow BHP57qMna17R8wHD4kUsO2u_-3HHs5PSj1NrEYoVU2dwLQw0GlkB__ZWeFgXTqot81vb-PmoM9YxwoZrm TcHdljugWy_s7xROPzTod0uw" } ] }
Membuat contoh file konfigurasi
  Gunakan perintah apigee-remote-service-cli samples create untuk membuat
  file konfigurasi contoh.
Untuk contoh ini, Anda memerlukan file yang dihasilkan berikut:
- httpbin.yaml- Konfigurasi deployment untuk layanan HTTP.
- apigee-envoy-adapter.yaml- Konfigurasi deployment untuk Layanan Jarak Jauh untuk Envoy.
- envoyfilter-sidecar.yaml- Konfigurasi yang menginstal EnvoyFilter. ke namespace default.
Untuk membuat sampel:
- Buka direktori $CLI_HOME.
- Jalankan perintah ini untuk membuat file: - ./apigee-remote-service-cli samples create -c ./config.yaml - File berikut adalah output direktori - ./samples:- ls samples apigee-envoy-adapter.yaml envoyfilter-sidecar.yaml httpbin.yaml request-authentication.yaml 
Untuk mengetahui informasi selengkapnya, lihat Perintah sampel.
Men-deploy layanan pengujian ke cluster
Pada langkah ini, Anda akan men-deploy layanan pengujian permintaan/respons HTTP sederhana ke cluster yang sama tempat Apigee Hybrid di-deploy.
- Aktifkan injeksi Istio di namespace defaultcluster. Pada langkah selanjutnya, Anda akan men-deploy sidecar Envoy ke cluster yang sama ini. Mengaktifkan injeksi Istio memungkinkan deployment sidecar. Contoh ini menggunakan namespacedefault, dan semua petunjuk berikutnya mengasumsikan hal ini.kubectl label namespace default istio-injection=enabled 
- Terapkan layanan httpbinsederhana ke cluster di namespace default:kubectl apply -f $CLI_HOME/samples/httpbin.yaml 
- Sekarang, uji layanan. Mulai layanan curlyang berjalan di cluster dan buka terminal:kubectl run -it curl --image=curlimages/curl --restart=Never -- sh 
- Uji layanan dengan memanggilnya dari dalam cluster:
  curl -i httpbin.default.svc.cluster.local/headers Jika berhasil, Anda akan melihat status 200, dan layanan akan menampilkan daftar header. Contoh: HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:09:01 GMT content-type: application/json content-length: 328 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 7 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-B3-Parentspanid": "69f88bc3e322e157", "X-B3-Sampled": "0", "X-B3-Spanid": "8dd725f30e393d8b", "X-B3-Traceid": "38093cd817ad30a569f88bc3e322e157" } }
Jalankan Layanan Jarak Jauh untuk Envoy
  Pada langkah ini, Anda akan memulai klien Layanan Jarak Jauh untuk Envoy di mesh layanan
  tempat Apigee hybrid diinstal. Layanan ini menyediakan endpoint ke sidecar Istio yang diinstal pada layanan target. Anda juga akan menginstal sidecar
  dengan layanan httpbin.
- Terapkan Apigee Remote Service ke mesh layanan:
  kubectl apply -f $CLI_HOME/samples/apigee-envoy-adapter.yaml 
- Terapkan EnvoyFilterke sidecar Istio di namespace default.EnvoyFiltermemungkinkan sidecarhttpbinberkomunikasi dengan Apigee Remote Service.kubectl apply -f $CLI_HOME/samples/envoyfilter-sidecar.yaml 
Menguji penginstalan
- Sekarang, kembali ke shell curl yang Anda buka di langkah 
    Deploy a test service to the cluster dan panggil layanan httpbin:curl -i httpbin.default.svc.cluster.local/headers Layanan kini dikelola oleh Apigee, dan karena Anda tidak memberikan kunci API, maka akan menampilkan error berikut. curl -i httpbin.default.svc.cluster.local/headers HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11 
- Konfigurasi produk API dan dapatkan kunci API seperti yang dijelaskan dalam Cara mendapatkan kunci API.
- Lakukan panggilan API menggunakan kunci:
export APIKEY=YOUR_API_KEYcurl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: $APIKEY"Panggilan harus berhasil dengan status 200 dan menampilkan daftar header dalam respons. Contoh: curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS", "X-Apigee-Developeremail": "jdoe@example.com", "X-Apigee-Environment": "envoy", "X-Apigee-Organization": "acme-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Langkah berikutnya
  Traffic API ke layanan httpbin kini dikelola oleh Apigee. Berikut beberapa fitur yang dapat Anda jelajahi dan coba:
- Jika Anda mengonfigurasi produk API seperti yang dijelaskan dalam
    Cara mendapatkan kunci API,
    batas kuota ditetapkan ke 5 permintaan per menit. Coba panggil layanan httpbinbeberapa kali lagi untuk memicu kuota. Jika kuota habis, error status HTTP 403 akan ditampilkan.
- Akses Apigee Analytics di UI Apigee. Buka Analyze > API Metrics > API Proxy Performance.
- Buat dan gunakan token JWT untuk mengautentikasi panggilan API.
- Gunakan CLI untuk mengelola, membuat token, dan mengontrol binding. Untuk mengetahui detail CLI, lihat Referensi.