Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
API anahtarı alma
Aşağıdaki örnekte, Apigee Adapter for Envoy aracılığıyla proxy kullanan bir hedef hizmete yapılan API çağrılarını doğrulamak için kullanabileceğiniz bir API anahtarının nasıl edinileceği açıklanmaktadır.
1. Apigee'ye giriş yapın
- Bir tarayıcıda Apigee kullanıcı arayüzünü açın.
- Kullanıcı arayüzüne geldiğinizde, Apigee Adapter for Envoy'u yapılandırmak için kullandığınız kuruluşu seçin.
2. Geliştirici Oluşturma
Test için mevcut bir geliştiriciyi kullanabilir veya aşağıdaki şekilde yeni bir geliştirici oluşturabilirsiniz:
- Yan gezinme menüsünde Yayınla > Geliştiriciler'i seçin.
- + Geliştirici'yi tıklayın.
- Yeni bir geliştirici oluşturmak için iletişim kutusunu doldurun. İstediğiniz herhangi bir geliştirici adını/e-posta adresini kullanabilirsiniz.
3. API Ürünü Oluşturma
Aşağıda verilen ürün oluşturma örneğini uygulayın. API ürün yapılandırması hakkında bölümüne de göz atın.
- Yan gezinme menüsünde Yayınla > API Ürünleri'ni seçin.
- + API Ürünü'nü tıklayın.
- Ürün ayrıntıları sayfasını aşağıdaki gibi doldurun.
- Apigee uzak hizmet hedefleri bölümünde Apigee uzak hizmet hedefi ekle'yi tıklayın.
- Apigee uzak hizmet hedefi iletişim kutusuna aşağıdaki değerleri ekleyin:
Özellik Değer Açıklama Target name (Hedef adı) Hedef hizmetin adını girin. Örneğin: httpbin.org
Envoy proxy'nin önündeki hedef uç nokta. Yol Hizmette eşleşecek bir kaynak yolu girin. Örneğin: /headers
.Hedef uç noktasında eşleşecek istek yolu. Bu yola yapılan API proxy çağrıları, bu API ürünüyle eşleşir. - Kaydet'i tıklayın.
Alan | Değer |
---|---|
Ad | httpbin-product
|
Görünen Ad | httpbin product
|
Ortam | your_environment
Bunu, Envoy için Apigee Adapter'ı sağlarken kullandığınız ortama ayarlayın. |
Erişim | Private
|
Kota | Her 1 dakikada 5 istek
Ayrıca bkz. Kota. |
4. Geliştirici Uygulaması Oluşturma
- Yan gezinme menüsünde Yayınla > Uygulamalar'ı seçin.
- + Uygulama'yı tıklayın.
- Geliştirici Uygulaması sayfasını aşağıdaki gibi doldurun. Yapmanız istenene kadar Kaydetmeyin.
- Sonra API ürününü uygulamaya ekleyin:
- Kimlik bilgileri bölümünde, + Ürün ekle'yi tıklayın ve yeni yapılandırdığınız ürünü seçin: httpbin-product.
- Oluştur'u tıklayın.
- Kimlik bilgileri bölümünde, Anahtar'ın yanındaki Göster seçeneğini tıklayın.
- Tüketici Anahtarı'nın değerini kopyalayın. Bu değer,
httpbin
hizmetine API çağrıları yapmak için kullanacağınız API anahtarıdır.
API ürünleri hakkında
API Ürünleri, Apigee Remote Service'in birincil denetim noktasıdır. API Ürünü oluşturup bunu bir hedef hizmete bağladığınızda, Apigee Adapter for Envoy'u işlemesi için yapılandırdığınız tüm isteklere uygulanacak bir politika oluşturmuş olursunuz.
API Ürün tanımı
Apigee'de API Ürünü tanımlarken, istekleri değerlendirmek için kullanılacak çeşitli parametreleri belirleyebilirsiniz:
- Hedef
- Yol iste
- Kota
- OAuth kapsamları
Uzak Hizmet Hedefleri
Bir istek hem hedef bağlamayla (örneğin,
httpbin.org
) hem de istek yoluyla (örneğin/httpbin
) eşleşiyorsa API Ürünü tanımı, istek için geçerli olur. Potansiyel hedeflerin listesi, API Ürününde özellik olarak depolanır.Apigee Remote Service, Envoy'un özel
:authority (host)
üst bilgisini hedef listesiyle karşılaştırarak varsayılan olarak kontrol eder ancak başka üst bilgileri kullanacak şekilde yapılandırılabilir.API Kaynak Yolu
Girilen Yol, aşağıdaki kurallara göre eşleşiyor:
- Tek bir eğik çizgi (
/
) tek başına herhangi bir yolla eşleşir. *
her yerde geçerlidir ve bir segment içinde (eğik çizgi arasında) eşleşir.**
sonda geçerlidir ve satırın sonundaki her şeyle eşleşir.
Kota
Kota, bir uygulamanın saat, gün, hafta veya ay boyunca bir API'ye göndermesine izin verilen istek mesajı sayısını belirtir. Bir uygulama kota sınırına ulaştığında sonraki API çağrıları reddedilir.
Kota kullanım alanlarıKotalar, bir istemcinin belirli bir süre içinde bir hizmete gönderebileceği istek sayısını zorunlu kılmanıza olanak tanır. Kotalar genellikle operasyonel trafik yönetimi yerine geliştiriciler ve iş ortaklarıyla iş sözleşmeleri veya HDS'ler uygulamak için kullanılır. Örneğin kota, ödeme yapan müşterilere tam erişime izin verirken ücretsiz bir hizmet için trafiği sınırlamak amacıyla kullanılabilir.
Kota bir API ürününde tanımlıdırKota parametreleri, API Ürünlerinde yapılandırılır. Örneğin, bir API Ürünü oluşturduğunuzda isteğe bağlı olarak izin verilen kota sınırını, zaman birimini ve aralığı ayarlayabilirsiniz.
API anahtarları API Ürünleri ile eşleştirilir. Bu nedenle, bir API anahtarı her doğrulandığında ilgili kota sayacı azaltılabilir (ilişkili Ürün'de bir Kota tanımlanmışsa).
Apigee çalışma zamanından farklı olarak, Ürün tanımına girilen Kotalar Apigee Remote Service tarafından otomatik olarak uygulanır. Yetkilendirilmişse istek, izin verilen kotaya dahil edilir.
Kotaların korunduğu yerlerKotalar, Remote Hizmet işlemiyle yerel olarak ve Apigee Çalışma Zamanı ile eşzamansız olarak korunur ve kontrol edilir. Yani kotalar kesin değildir ve kotayı koruyan birden fazla Remote Service'iniz varsa kotaların biraz aşılması mümkündür. Apigee Çalışma Zamanı ile bağlantı kesilirse yerel kota, Apigee Çalışma Zamanı'na yeniden bağlanabilene kadar bağımsız kota olarak devam eder.
OAuth Kapsamları
JWT jetonları kullanıyorsanız jetonları izin verilen OAuth kapsamlarının alt kümeleriyle kısıtlayabilirsiniz. Yayınladığınız JWT jetonuna atanan kapsamlar, API ürününün kapsamlarına göre kontrol edilecektir.
Geliştirici uygulamaları hakkında
API Ürünlerinizi yapılandırdıktan sonra, bir Geliştirici ile ilişkilendirilmiş bir Uygulama oluşturacaksınız. Uygulama, istemcinin API Anahtarı veya JWT Jetonu ile ilişkili API Ürünlerine erişmesine olanak tanır.
JWT tabanlı kimlik doğrulamayı kullanma
Kimliği doğrulanmış API proxy çağrıları yapmak için API anahtarı kullanmak yerine JWT jetonu kullanabilirsiniz. Bu bölümde, JWT jetonları oluşturmak, incelemek ve döndürmek için
apigee-remote-service-cli token
komutunun nasıl kullanılacağı açıklanmaktadır.Genel bakış
JWT doğrulaması ve kimlik doğrulaması, Envoy tarafından JWT Kimlik Doğrulama Filtresi kullanılarak gerçekleştirilir.
Kimlik doğrulaması yapıldıktan sonra Envoy
ext-authz
filtresi, istek üst bilgilerini ve JWT'yiapigee-remote-service-envoy
adresine gönderir. JWT'nin Apigee API Ürünleri'ne yönelikapi_product_list
vescope
hak talepleriyle eşleşir.Apigee JWT jetonları oluşturma
Apigee JWT Jetonları CLI kullanılarak oluşturulabilir:
$CLI_HOME/apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Alternatif olarak standart OAuth jetonu uç noktasını da kullanabilirsiniz. Curl örneği:
curl https://org-env.apigee.net/remote-token/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"
JWT jetonunu kullanma
Aldığınız jetonu Yetkilendirme başlığında Envoy'a iletmeniz yeterlidir. Örnek:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
JWT jetonu hatası
Envoy reddi
Envoy jetonu reddederse aşağıdaki gibi bir mesaj görebilirsiniz:
Jwks remote fetch is failed
Öyleyse Envoy yapılandırmanızın
remote_jwks
bölümünde geçerli bir URI içerdiğinden, Envoy'un URL'ye eriştiğinden ve Apigee proxy'sini yüklerken sertifikaları düzgün bir şekilde ayarladığınızdan emin olun. URI'yı doğrudan bir GET çağrısıyla çağırabilir ve geçerli bir JSON yanıtı alabilirsiniz.Örnek:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Envoy'dan gelen diğer mesajlar aşağıdaki gibi görünebilir:
- "Jwt'deki kitlelere izin verilmez"
- "Jwt veren kuruluş yapılandırılmamış"
Bunlar, Envoy yapılandırmanızda değiştirmeniz gerekebilecek gereksinimlerdir.
Jetonu inceleme
Jetonunuzu incelemek için CLI'ı kullanabilirsiniz. Örnek
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
veya
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Hata ayıklama
Geçerli API anahtarı başarısız olur bölümüne bakın.Günlük Kaydı
Günlük düzeyini $REMOTE_SERVICE_HOME/Apigee-remote-service-envoy hizmetinde ayarlayabilirsiniz. Tüm günlük kayıtları stdout ve stderr'e gönderilir.
Öğe Gerekli Açıklama -l, --log-level Geçerli seviyeler: hata ayıklama, bilgi, uyarı, hata. Günlük kaydı düzeyini ayarlar. Varsayılan: bilgi -j, --json-log JSON kaydı olarak günlük çıkışını kullanır. Envoy, günlük kaydı hizmeti sunar. Daha fazla bilgi için aşağıdaki Envoy dokümanlarının bağlantılarına bakın:
Ağ proxy'si kullanma
Apigee-remote-service-envoy ikili ortamındaki HTTP_PROXY ve HTTPS_PROXY ortam değişkenleri kullanılarak HTTP proxy eklenebilir. Bunları kullanırken, belirli ana makinelerin proxy üzerinden gönderilmesini engellemek için NO_PROXY ortam değişkeni de kullanılabilir.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
Proxy'nin Apigee-remote-service-envoy adresinden erişilebilir olması gerektiğini unutmayın.
Metrikler ve analizler hakkında
:5001/metrics
adresinde Prometheus metrikleri uç noktası mevcut. Bu bağlantı noktası numarasını yapılandırabilirsiniz. Yapılandırma dosyası bölümüne bakın.Envoy analizi
Aşağıdaki bağlantılar Envoy proxy analiz verilerinin alınması hakkında bilgi sağlar:
ISRC analizleri
Aşağıdaki bağlantılar Envoy proxy analiz verilerinin alınması hakkında bilgi sağlar:
Apigee analizi
Apigee Remote Service for Envoy, analiz işlemi için istek istatistiklerini Apigee'ye gönderir. Apigee, bu istekleri ilişkili API ürün adı altında raporlar.
Apigee Analytics hakkında bilgi edinmek için Analytics hizmetlerine genel bakış sayfasını inceleyin.
Çok kiracılı ortam desteği
Artık bağdaştırıcıyı Apigee kuruluşunda birden fazla ortama hizmet verecek şekilde etkinleştirebilirsiniz. Bu özellik sayesinde, birden fazla ortamda hizmet vermek için tek bir Apigee kuruluşuyla ilişkili Envoy Apigee Adaptörü kullanabilirsiniz. Bu değişiklikten önce tek bir bağdaştırıcı daima tek bir Apigee ortamına bağlıydı.
Çoklu ortam desteği yapılandırmak için
config.yaml
dosyasındatenant:env_name
değerini*
olarak değiştirin. Örneğin:config.yaml
dosyasını bir düzenleyicide açın.tenant.env_name
değerini*
olarak değiştirin. Örneğin:apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://myorg-myenv.apigee.net/remote-service org_name: apigee-docs-hybrid-a env_name: * allow_unverified_ssl_cert: true analytics: collection_interval: 10s auth: jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
- Dosyayı kaydedin.
- Dosyayı uygulayın:
kubectl apply -f $CLI_HOME/config.yaml
Çoklu ortam modunu yapılandırdığınızda, aşağıdaki meta verileri
envoy-config.yaml
dosyasınınvirtual_hosts:routes
bölümüne ekleyerek Envoy'u bağdaştırıcıya uygun bir ortam değeri gönderecek şekilde yapılandırmanız gerekir. Örneğin:- CLI kullanarak
envoy-config.yaml
dosyasını oluşturun. Örneğin:$CLI_HOME/apigee-remote-service-cli samples create \ -t envoy-1.16 -c ./config.yaml --out myconfigs
- Oluşturulan dosyayı açın (dosyanın adı
envoy-config.yaml
). - Aşağıdaki meta verileri dosyanın
virtual_host
veyaroutes
bölümüne ekleyin:typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test
Aşağıdaki örnekte, birden fazla rota tanımlanmış ve her rotanın trafiği belirli bir ortama gönderdiği bir
virtual_host
için yapılandırma gösterilmektedir:filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http route_config: virtual_hosts: - name: default domains: "*" routes: - match: { prefix: /test } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test - match: { prefix: /prod } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: prod
- Gerektiğinde başka ortamlar eklemek için son adımı tekrarlayın.
- Dosyayı kaydedin ve uygulayın.
Bağdaştırıcı ile Apigee çalışma zamanı arasında mTLS'yi yapılandırma
Bağdaştırıcı ile Apigee çalışma zamanı arasında mTLS'yi kullanmak için bağdaştırıcının
config.yaml
dosyasınıntenant
bölümünde istemci tarafı TLS sertifikalarını sağlayabilirsiniz. Bu değişiklik, desteklenen tüm Apigee platformları için geçerlidir. Ayrıca Apigee Edge for Private Cloud platformunda analizler için mTLS'yi etkinleştirir. Örneğin:tenant: tls: ca_file: path/ca.pem cert_file: path/cert.pem key_file: path/key.pem allow_unverified_ssl_cert: false
Ad | httpbin-app
|
Görünen Ad | httpbin app
|
Developer | Daha önce oluşturduğunuz geliştiriciyi veya listeden istediğiniz geliştiriciyi seçin. |