Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Contoh ini menunjukkan cara menggunakan Apigee Adapter for Envoy dengan menginstal dan menjalankan Envoy secara lokal, bukan di dalam cluster Kubernetes. Anda dapat mengikuti contoh dalam dokumen ini untuk penginstalan Apigee dan Apigee Hybrid.
Panggilan proxy API dilakukan melalui Envoy yang berjalan sebagai aplikasi native. Apigee menyediakan layanan pengelolaan API, seperti pembuatan produk API dan aplikasi developer. Envoy berkomunikasi dengan bidang pengelolaan Apigee melalui layanan jarak jauh adaptor. Adaptor juga mengirimkan data analisis ke Apigee tempat Anda dapat melihatnya di Apigee Analytics.
Prasyarat
Sebelum memulai: |
---|
|
|
|
Periksa konfigurasi gcloud Anda
- Pastikan konfigurasi
gcloud
Anda disetel ke project Google Cloud yang terkait dengan organisasi Apigee Anda.Untuk mencantumkan setelan saat ini. Lihat juga gcloud config.
gcloud config list
Jika perlu, tetapkan ID project Google Cloud yang benar dengan perintah ini:
gcloud config set project project-id
- Anda harus diautentikasi dengan Google Cloud SDK (gcloud) untuk project Google Cloud Anda. Lihat juga
gcloud auth login.
gcloud auth login
Menyediakan Apigee
Pada langkah ini, Anda akan menggunakan Remote Service CLI untuk menyediakan aset Apigee Adapter for Envoy ke Apigee. Perintah penyediaan men-deploy proxy API yang digunakan untuk operasi adaptor Apigee, menyiapkan sertifikat di Apigee, dan membuat kredensial yang akan digunakan layanan jarak jauh untuk terhubung secara aman dari sistem Anda ke Apigee.
- Buka direktori
$CLI_HOME
:cd $CLI_HOME
- (Opsional) Secara default, adapter mencari kredensial akun layanan default di project Google Cloud Anda untuk mendapatkan izin mengirim data analisis ke Apigee. Jika tidak ingin menggunakan
kredensial akun layanan
default, Anda dapat membuat akun layanan dan mereferensikan kuncinya dalam
perintah penyediaan. Akun layanan harus memiliki peran
apigee.analyticsAgent
. Untuk mengetahui petunjuknya, lihat Membuat dan mengelola akun layanan. - Buat variabel lingkungan berikut. Variabel ini akan digunakan sebagai
parameter untuk skrip penyediaan:
export ORG=organization_name
export ENV=environment_name
export RUNTIME=host_alias_url
export NAMESPACE=hybrid_runtime_namespace
## Apigee hybrid onlyexport AX_SERVICE_ACCOUNT=analytics_service_account
## OptionalDengan:
Variabel Deskripsi organization_name Nama organisasi Apigee Anda. environment_name Nama lingkungan di organisasi Anda. host_alias_url - Untuk Apigee hybrid, URL yang menyertakan
hostAlias
untuk host virtual yang ditentukan dalam konfigurasi hybrid Anda. - Untuk Apigee, nama host dari grup lingkungan yang mencakup lingkungan. Anda dapat menemukan grup lingkungan di UI Apigee di bagian Admin > Environments > Groups.
Catatan: URL harus diawali dengan
https://
. Contoh:https://apitest.mydomain.net
hybrid_runtime_namepace (Khusus Apigee Hybrid) Namespace tempat komponen runtime Hybrid di-deploy. Catatan: Namespace default untuk deployment hybrid adalah
apigee
.analytics_service_account (Opsional) Jalur ke file JSON kunci akun layanan Google Cloud yang memiliki peran Apigee Analytics Agent
. Untuk mengetahui deskripsi mendetail tentang parameter ini, lihat Perintah penyediaan. - Untuk Apigee hybrid, URL yang menyertakan
- Jika Anda bukan pemilik project Google Cloud yang terkait dengan organisasi Apigee, pastikan akun pengguna Google Cloud Anda memiliki peran Apigee Organization Admin, atau peran API Creator dan Deployer. Lihat Memberikan, mengubah, dan mencabut akses ke resource.
- Mendapatkan token akses:
TOKEN=$(gcloud auth print-access-token);echo $TOKEN
- Sediakan proxy layanan jarak jauh ke Apigee. Output perintah dialihkan ke file konfigurasi
yang akan Anda gunakan di langkah selanjutnya.
Jika Anda tidak melakukan upgrade, gunakan perintah ini untuk menyediakan Apigee. Jika Anda menyediakan Apigee Hybrid, pastikan untuk menambahkan parameter
--namespace $NAMESPACE
:./apigee-remote-service-cli provision --organization $ORG --environment $ENV \ --runtime $RUNTIME --analytics-sa $AX_SERVICE_ACCOUNT --token $TOKEN > config.yaml
Jika Anda melakukan upgrade, gunakan perintah ini dengan flag
--force-proxy-install
untuk menyediakan Apigee. Jika Anda menyediakan Apigee Hybrid, pastikan untuk menambahkan parameter--namespace $NAMESPACE
:./apigee-remote-service-cli provision --force-proxy-install --organization $ORG --environment $ENV \ --runtime $RUNTIME --analytics-sa $AX_SERVICE_ACCOUNT --token $TOKEN > config.yaml
- Periksa konten file
config.yaml
. Ini akan terlihat seperti berikut:# Configuration for apigee-remote-service-envoy (platform: Google Cloud) # generated by apigee-remote-service-cli provision on 2020-11-20 02:49:28 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://apitest.mydomain.com/remote-service org_name: my-org env_name: test analytics: collection_interval: 10s auth: jwt_provider_key: https://apitest.mydomain.com/remote-service/token --- apiVersion: v1 kind: Secret metadata: name: my-org-new-test-policy-secret namespace: apigee type: Opaque data: remote-service.crt: eyJrZXlzIjpbeyJrdHkiOiJSU0EiLCJhbGci... remote-service.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURS... remote-service.properties: a2lkPTIwMjAtMDctMDZ... --- apiVersion: v1 kind: Secret metadata: name: my-org-new-test-analytics-secret namespace: apigee type: Opaque data: client_secret.json: ewogICJ0eXBlIjogInNlcnZ... --- apiVersion: v1 kind: ServiceAccount metadata: name: apigee-remote-service-envoy namespace: apigee
- Jika Anda menggunakan Apigee hybrid, terapkan konfigurasi layanan (output file oleh perintah penyediaan) ke cluster tempat Apigee hybrid diinstal pada Langkah 1: Buat cluster.
Jalankan apigee-remote-service-envoy
Anda dapat menjalankan Layanan Jarak Jauh sebagai biner native atau di Docker.
Menjalankan layanan secara native
Jalankan biner layanan dengan file konfigurasi yang dihasilkan oleh perintah penyediaan:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Menjalankan layanan di Docker
Image Docker dipublikasikan dengan tag rilis. Untuk penginstalan ini, gunakan versi terbaru. Ada tiga variasi gambar yang dapat dipilih:
Variasi | Gambar |
---|---|
Tanpa distro Google | google/apigee-envoy-adapter:v2.0.3 |
Ubuntu | google/apigee-envoy-adapter:v2.0.3-ubuntu |
Ubuntu dengan Boring Crypto | google/apigee-envoy-adapter:v2.0.3-boring |
Misalnya, untuk menjalankan image sementara dengan config.yaml
lokal yang tersedia sebagai /config.yaml
melalui pemasangan volume, gunakan perintah ini:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.3
Buat contoh file konfigurasi Envoy
Buat contoh file konfigurasi Envoy menggunakan CLI:
- Pastikan Anda berada di direktori
$ENVOY_HOME
. - Mencantumkan template konfigurasi yang tersedia:
$CLI_HOME/apigee-remote-service-cli samples templates
Jalankan perintah sampel. Untuk TEMPLATE, ganti dengan salah satu template Envoy yang didukung:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
Perintah ini akan membuat file
./samples/envoy-config.yaml
.
Untuk mengetahui informasi selengkapnya, lihat Perintah sampel.
Menginstal dan menjalankan proxy Envoy
Ikuti langkah-langkah berikut untuk menginstal dan menjalankan proxy Envoy:
- Download biner Envoy atau bangun biner tersebut.
- Jalankan Envoy menggunakan contoh file konfigurasi yang Anda buat sebelumnya untuk layanan
httpbin.org
:envoy -c ./samples/envoy-config.yaml
Menguji penginstalan
- Konfigurasi produk API dan dapatkan kunci API seperti yang dijelaskan dalam Cara mendapatkan kunci API.
- Panggil layanan
httpbin
tanpa kunci API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Layanan kini dikelola oleh Apigee, dan karena Anda tidak memberikan kunci API, panggilan akan menampilkan error berikut.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" 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
- Lakukan panggilan API menggunakan kunci:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" -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": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "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": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@mydomain.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Meng-uninstal adaptor Apigee Envoy
Untuk menghapus penginstalan adaptor Apigee Envoy:
- Di mana pun Anda memilih untuk menjalankan adaptor envoy (secara native atau di Docker), hapus adaptor tersebut.
- Hapus proxy remote-service dan remote-token dari lingkungan Apigee Anda. Lihat Menghapus proxy API.
- Hapus semua produk API atau operasi yang tidak digunakan oleh kasus penggunaan adaptor Envoy. Lihat Menghapus produk API.
Langkah berikutnya
Traffic API ke layanan httpbin
kini dikelola oleh Apigee. Berikut beberapa fitur yang dapat Anda jelajahi dan coba:
- Akses Apigee Analytics di UI Edge. Buka Analyze > API Metrics > API Proxy Performance.
- Jelajahi opsi CLI di Referensi.