Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Bu örnekte, Apigee Edge ile Envoy için Apigee Adaptörü'nün nasıl kullanılacağı gösterilmektedir.
Ön koşullar
| Başlamadan önce: |
|---|
|
|
Genel Bakış
Bu örnekte, Apigee Edge Public Cloud için Apigee Adapter for Envoy'un nasıl kullanılacağı açıklanmaktadır. API proxy çağrıları, Envoy için Apigee Remote Service aracılığıyla API yönetim hizmetleri sağlayan Edge ile yerel uygulama olarak çalışan Envoy üzerinden akar.
Aşağıdaki şekilde, Apigee Edge entegrasyonunun temel mimarisi gösterilmektedir:

Envoy proxy'si ve uzak hizmet yerel olarak çalışıyor. Envoy, hedef hizmete ve hedef hizmetten gelen API trafiğini işler ve Uzak Hizmet ile iletişim kurar. Uzak Hizmet, API ürünü ve proxy bilgilerini almak için Apigee Edge Cloud ile de iletişim kurar.
Apigee Edge'i sağlama
Bu adımda, Envoy için Apigee Adaptörü varlıklarını Apigee Edge'e sağlama amacıyla Uzak Hizmet CLI'sını kullanacaksınız. Sağlama komutu, Apigee Edge'e bir API proxy'si dağıtır ve Apigee'de bir sertifika ayarlar. Ayrıca, Uzak Hizmet'in sisteminizden Apigee'ye güvenli bir şekilde bağlanmak için kullanacağı kimlik bilgilerini oluşturur.
$CLI_HOMEdizinine gidin:cd $CLI_HOME
- Aşağıdaki ortam değişkenlerini oluşturun. Bu değişkenler, sağlama komut dosyasında parametre olarak kullanılır:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordBurada:
Değişken Açıklama organization_name Apigee kuruluşunuzun adı. environment_name Kuruluşunuzdaki bir ortamın adı. your_apigee_username Apigee hesabı kullanıcı adınız. Kullanıcı adı genellikle bir e-posta adresidir. your_apigee_password Apigee şifreniz. - Apigee Edge'de uzaktan hizmet proxy'sini sağlama için aşağıdaki komutu yürütün:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml config.yamldosyasının içeriğini kontrol edin. Şuna benzer bir görünümde olacaktır:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75
Anahtar ve gizli değerler, Uzak Hizmet Proxy'sinden Apigee Edge'e yapılan istekleri doğrulamak için kullanılır.
Envoy için Apigee Remote Service hizmetini çalıştırma
Uzak Hizmet'i yerel bir ikili dosya olarak veya Docker'da çalıştırabilirsiniz.
Hizmeti yerel olarak çalıştırma
Hizmet ikili programını, temel hazırlık komutu tarafından oluşturulan yapılandırma dosyasıyla yürütün:
$CLI_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Hizmeti Docker'da çalıştırma
Docker görüntüleri, yayın etiketleriyle yayınlanır. Bu yükleme için en son sürümü kullanın. Aralarından seçim yapabileceğiniz üç resim varyasyonu vardır:
| Çeşitlilik | Resim |
|---|---|
| Google distroless | gcr.io/distroless/base |
| Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
| Boring Crypto ile Ubuntu | google/apigee-envoy-adapter:v1.1.0-boring |
Örneğin, scratch görüntüsünü bir birim bağlama yoluyla config.yaml yereliniz /config.yaml olarak kullanılabilir şekilde çalıştırmak için şu komutu kullanın:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0
Örnek yapılandırma dosyaları oluşturma
Örnek yapılandırma dosyaları oluşturmak için apigee-remote-service-cli samples create komutunu kullanın.
Bu örnek için oluşturulan şu dosyalara ihtiyacınız vardır:
envoy-config.yaml- HTTP hizmeti için dağıtım yapılandırması.
Örnekleri oluşturmak için:
$CLI_HOMEdizinine gidin.Dosyaları oluşturmak için bu komutu yürütün:
işaretini belirtin../apigee-remote-service-cli samples create --template native -c ./config.yaml
Aşağıdaki dosyalar
./samplesdizinine çıkarılır:ls samples envoy-config.yaml
Daha fazla bilgi için Samples komutu konusuna bakın.
Envoy proxy'yi yükleyip çalıştırma
Envoy proxy'yi yüklemek ve çalıştırmak için aşağıdaki adımları uygulayın:
- Bir Envoy ikilisi indirin veya derleyin ya da Docker'ı kullanın.
httpbin.orghizmeti için daha önce oluşturduğunuz örnek yapılandırma dosyasını kullanarak Envoy'u çalıştırın:envoy -c $CLI_HOME/samples/envoy-config.yaml
Yüklemeyi test etme
httpbinservisini arayın:curl -i http://localhost:8080/httpbin/headers
Hizmet artık Apigee tarafından yönetiliyor ve API anahtarı sağlamadığınız için çağrı aşağıdaki hatayı döndürüyor.
curl -i http://localhost:8080/httpbin/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
- API anahtarı edinme başlıklı makalede açıklandığı şekilde bir API ürünü yapılandırın ve API anahtarı alın.
- Anahtarı kullanarak bir API çağrısı yapın:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"Arama, 200 durumuyla başarılı olmalı ve yanıtta bir üstbilgi listesi döndürmelidir. Örneğin:
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@example.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" } }
Sonraki adımlar
httpbin hizmetine yönelik API trafiği artık Apigee tarafından yönetiliyor. Keşfedip deneyebileceğiniz bazı özellikler:
- API ürününüzü API anahtarı edinme başlıklı makalede açıklandığı şekilde yapılandırdıysanız kota sınırı dakikada 5 istek olarak ayarlanmıştır. Kotayı tetiklemek için
httpbinhizmetini birkaç kez daha aramayı deneyin. Kota tükendiğinde HTTP durum kodu 403 hatası döndürülür. - Edge kullanıcı arayüzünde Apigee Analytics'e erişin. Analyze > API Metrics > API Proxy Performance'a (Analiz > API Metrikleri > API Proxy Performansı) gidin.
- API çağrılarının kimliğini doğrulamak için JWT jetonları oluşturun ve kullanın.
- Bağlamaları yönetmek, jeton oluşturmak ve kontrol etmek için CLI'yı kullanın. CLI ayrıntıları için Referans bölümüne bakın.