Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Bu örnekte, Apigee Edge ile Envoy için Apigee Adapter'ın nasıl kullanılacağı gösterilmektedir.
Ön koşullar
| Başlamadan önce: |
|---|
|
|
Genel Bakış
Bu örnekte, Genel Cloud için Apigee Edge ile Envoy için Apigee Adapter'ın nasıl kullanılacağı açıklanmaktadır. API proxy çağrılarının, Edge'in API sağlayan yerel bir uygulama olarak Envoy üzerinden akışı yönetim hizmetlerini kullanıma sunuyoruz.
Aşağıdaki şekilde, Apigee Edge entegrasyonunun temel mimarisi gösterilmektedir:

Bir Envoy proxy'si ve Uzak Hizmet yerel olarak çalışıyor. Envoy, hedef hizmete giden ve hedef hizmetten giden API trafiğini yönetir ve Uzak Hizmet. Uzak Hizmet ayrıca, Apigee Edge Cloud ile birlikte çalışarak API ürün ve proxy bilgilerini alabilir.
Apigee Edge'in temel hazırlığını yapın
Bu adımda, Envoy varlıkları için Apigee Adapter'ı sağlamak amacıyla Uzak Hizmet KSA'sını kullanacaksınız. kullanıma sunduk. Temel hazırlık komutu Apigee Edge'e bir API proxy'si dağıtır. ve ayrıca, yeni bir projede Apigee'ye gönderir ve Uzak Hizmet'in güvenli bir şekilde kullandığı kimlik bilgilerini oluşturur. sisteminizden Apigee'ye bağlayabilirsiniz.
$CLI_HOMEdizinine gidin:cd $CLI_HOME
- Aşağıdaki ortam değişkenlerini oluşturun. Bu değişkenler,
parametrelerini temel hazırlık komut dosyasına ekleyin:
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 uzak hizmet proxy'sini sağlamak 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 anahtar değerleri Uzak Hizmet Proxy'sinden gelen istekleri doğrulamak için kullanılır kullanıma sunduk.
Envoy hizmeti için Apigee Remote Service'i çalıştırma
Uzak Hizmet'i yerel ikili program olarak çalıştırabilirsiniz veya Docker'da kullanabilirsiniz.
Hizmeti yerel olarak çalıştırma
Temel hazırlık komutu tarafından oluşturulan yapılandırma dosyasını kullanarak hizmet ikili programını yürütün:
$REMOTE_SERVICE_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. Orada üç resim varyasyonu vardır:
| Çeşitlilik | Resim |
|---|---|
| Google dağıtımsız | 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, sıfırdan görseli /config.yaml olarak mevcut olan yerel config.yaml ile çalıştırmak için
ses birimi ekleme yoluyla ş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
apigee-remote-service-cli samples create komutunu kullanarak
örnek yapılandırma dosyalarını da kullanabilirsiniz.
Bu örnekte, oluşturulan şu dosyalara ihtiyacınız vardır:
envoy-config.yaml: Bir HTTP hizmeti için dağıtım yapılandırmasıdır.
Örnek oluşturmak için:
$CLI_HOMEdizinine gidin.Dosyaları oluşturmak için şu komutu yürütün:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
Aşağıdaki dosyaların çıkışları
./samplesdizinidir:ls samples envoy-config.yaml
Daha fazla bilgi için Sana Özel komutu bölümüne bakın.
Envoy proxy'sini yükleme ve çalıştırma
Envoy proxy'sini yüklemek ve çalıştırmak için şu adımları uygulayın:
- Envoy ikili dosyasını indirin veya inşa etmek isterseniz veya Docker'ı kullanın.
httpbin.orghizmeti için daha önce oluşturduğunuz örnek bir yapılandırma dosyasını kullanarak Envoy'u çalıştırın:envoy -c $CLI_HOME/samples/envoy-config.yaml
Yüklemeyi test etme
httpbinhattını arayın hizmet:curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
Bu hizmet şu anda Apigee tarafından yönetiliyor. API anahtarı sağlamadığınız için çağrı aşağıdaki hatayı döndürür.
curl -i http://localhost:8080/httpbin/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
- Bir API ürününü yapılandırma ve API anahtarı alma API anahtarı nasıl alınır?
- Anahtarı kullanarak bir API çağrısı yapın:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers \ -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"Çağrı, 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 giden API trafiği artık Apigee tarafından yönetiliyor. İşte
keşfedip deneyebileceğiniz bazı özellikler:
- API ürününüzü
API anahtarı nasıl alınır?
kota sınırı dakikada 5 istek olarak ayarlandı.
httpbinhizmetini aramayı deneyin birkaç kez daha ekleyebilirsiniz. Kota tükendiğinde bir HTTP durum 403 hatası geri döndü. - Edge kullanıcı arayüzünden Apigee Analytics'e erişin. Analiz > API Metrikleri > API Proxy Performansı.
- API çağrılarının kimliğini doğrulamak için JWT jetonları oluşturup kullanma
- Jetonları yönetmek, oluşturmak ve bağlantıları kontrol etmek için KSA'yı kullanın. CLI ayrıntıları için Referans bölümüne bakın.