Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Bu örnekte, Apigee Edge ile Envoy için Apigee bağdaştırıcını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ı, Edge'in yerel bir uygulama olarak çalıştığı Envoy üzerinden akar. Edge, Envoy için Apigee Remote Service üzerinden API yönetim hizmetleri sağlar.
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 gelen ve hedef hizmetten giden API trafiğini yönetir ve uzak hizmetle 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, Apigee Edge'e Envoy öğeleri için Apigee Bağdaştırıcısı sağlamak üzere Uzak Hizmet KSA'sını kullanacaksınız. Hazırlama komutu, Apigee Edge'e bir API proxy'si dağıtır ve Apigee'de bir sertifika oluşturur. Ayrıca, uzak hizmetin sisteminizden Apigee'ye güvenli bir şekilde bağlanmak için kullanacağı kimlik bilgilerini oluşturur.
$CLI_HOME
dizinine gidin:cd $CLI_HOME
- Aşağıdaki ortam değişkenlerini oluşturun. Bu değişkenler, temel hazırlama komut dosyasının parametreleri olarak kullanılır:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
Burada:
Değişken Açıklama organization_name Apigee kuruluşunuzun adı. environment_name Kuruluşunuzda bir ortamın adı. your_apigee_username Apigee hesabınızın kullanıcı adı. 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.yaml
dosyasının içeriğini kontrol edin. Şuna benzer bir görünüme sahip olmalıdı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 gönderilen isteklerin doğrulanması için kullanılır.
Envoy hizmeti için Apigee Remote Service'i çalıştırma
Uzak Hizmeti yerel bir ikili dosya olarak veya Docker'da çalıştırabilirsiniz.
Hizmeti yerel olarak çalıştırma
Hizmet ikilisini, temel hazırlama 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, sürüm etiketleriyle yayınlanır. Bu yükleme için en son sürümü kullanın. Üç resim varyantı arasından seçim yapabilirsiniz:
Çeşitlilik | Resim |
---|---|
Google dağıtımsız | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
BoringCrypto ile Ubuntu | google/apigee-envoy-adapter:v1.1.0-boring |
Örneğin, bir birim ekleme aracılığıyla /config.yaml
olarak kullanılabilen yerel config.yaml
ile sıfırdan resmi ç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şturulmuş ş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_HOME
dizinine 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
./samples
dizininden çıktı:ls samples envoy-config.yaml
Daha fazla bilgi için Samples komutu başlıklı makaleyi inceleyin.
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, bu dosyayı derleyin ya da Docker'ı kullanın.
httpbin.org
hizmeti 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
httpbin
hizmetini çağırın:curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
Bu hizmet artık Apigee tarafından yönetiliyor. 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 -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
- API anahtarı edinme bölümünde açıklandığı şekilde bir API ürünü yapılandırın ve API anahtarı alın.
- Aşağıdaki anahtarı kullanarak API çağrısı yapın:
export APIKEY=YOUR_API_KEY
curl -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. Keşfedip deneyebileceğiniz bazı özellikler:
- API ürününüzü API anahtarı edinme bölümünde açıklandığı şekilde yapılandırdıysanız kota sınırı dakikada 5 istek olarak ayarlanmıştır. Kotayı tetiklemek için
httpbin
hizmetini birkaç kez daha çağırmayı deneyin. Kota tükendiğinde bir HTTP durumu 403 hatası döndürülür. - Edge kullanıcı arayüzünde Apigee Analytics'e erişin. Analizin > API Metrikleri > API Proxy Performansı'na 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'yi kullanın. CLI ayrıntıları için Referans bölümüne bakın.