Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
API anahtarı nasıl alınır?
Aşağıdaki örnekte, doğrulama işlemi için kullanabileceğiniz bir API anahtarını nasıl edineceğiniz açıklanmaktadır. Apigee Adapter for Envoy üzerinden proxy aracılığıyla bir hedef hizmete API çağrıları.
1. Apigee'ye giriş yapın
- Bir tarayıcıda Apigee kullanıcı arayüzünü açın.
- Kullanıcı arayüzüne girdikten sonra, Envoy için Apigee Adapter'ı yapılandırırken 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:
- Yayınla > Geliştiriciler'i tıklayın.
- + 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. Şu kaynakları da inceleyin API ürün yapılandırması.
- Yayınla > API Ürünleri'ni tıklayın.
- + API Ürünü'nü tıklayın.
- Ürün ayrıntıları sayfasını aşağıdaki gibi doldurun.
- Apigee uzaktan hizmet hedefleri bölümünde Apigee uzaktan hizmet hedefi ekle'yi tıklayın.
- Apigee uzak hizmet hedefi iletişim kutusunda aşağıdaki değerleri ekleyin:
Özellik Değer Açıklama Hedef ad hedef hizmet. Örneğin: httpbin.org
Envoy proxy'sinin önündeki hedef uç nokta. Yol Eşleştirmek için hizmette bir kaynak yolu girin. Örneğin, örnek: /headers
.Hedef uç noktasında eşleştirilecek istek yolu. Bu yola API proxy çağrıları bu API ürünüyle eşleşecek. - Kaydet'i tıklayın.
Alan | Değer |
---|---|
Ad | httpbin-product
|
Görünen Ad | httpbin product
|
Ortam | your_environment
Bunu, Apigee Adapter for Envoy'u 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
- Yayınla > Uygulamalar'ı tıklayın.
- + Uygulama'yı tıklayın.
- Geliştirici Uygulaması sayfasını aşağıdaki gibi doldurun. Talimat verene kadar Kaydetme.
- Ardından, API ürününü uygulamaya ekleyin:
- Kimlik bilgileri bölümünde + Ürün ekle'yi tıklayın ve istediğiniz ürünü seçin. httpbin-product gibi bir yapılandırma kullanabilirsiniz.
- Oluştur'u tıklayın.
- Kimlik Bilgileri'nin altında, Anahtar'ın yanındaki Göster seçeneğini tıklayın.
- Tüketici anahtarının değerini kopyalayın. Bu değer API anahtarıdır
httpbin
hizmetine API çağrıları yapmak için kullanacağınız reklam öğesi listesini temsil eder.
API ürünleri hakkında
API Ürünleri, birincil denetim noktasıdır bir e-posta yazacaksınız. Bir API Ürünü oluşturup bunu bir bir politika oluşturuyorsunuz. Apigee Adapter for Envoy'u yapılandırdığınız isteklere uygulanır. pek çok yolu vardır.
API Ürün tanımı
Apigee'de bir API Ürünü tanımlarken, her şeyin istekleri değerlendirmek için kullanılır:
- Hedef
- Yol iste
- Kota
- OAuth kapsamları
Uzak Hizmet Hedefleri
İstek hem hedefle hem de bağlama (örneğin,
httpbin.org
) ve istek yolunu (örneğin,/httpbin
) ekleyin. Potansiyel hedeflerin listesi, API Ürünü.Apigee Uzaktan Hizmeti, Envoy'un özel
:authority (host)
başlığını varsayılan olarak hedef listesini içerir ancak diğer başlıkları 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 (
/
) herhangi bir yolla eşleşir. *
her yerde geçerlidir ve bir segment içerisinde (eğik çizgilerin arasında) eşleşir.**
sonda geçerlidir ve her şeyi satırın sonuyla eşleştirir.
Kota
Kota, bir uygulamanın bir Bir saat, bir gün, bir hafta veya bir ay boyunca API. 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ürede bir hizmete yapabileceği istek sayısını süre tahminidir. Kotalar genellikle geliştiriciler ve iş ortakları için ödeme yapmanızı sağlar. Örneğin, kota, ücretsiz bir hizmet için trafiği sınırlandırmak ve tam erişime izin vermek amacıyla kullanılabilir. ödeme yapan müşteriler için geçerlidir.
Bir API ürününde kota tanımlıKota parametreleri, API Ürünlerinde yapılandırılır. Örneğin, Google Analytics 4'te Ürün için isteğe bağlı olarak izin verilen kota sınırını, zaman birimini ve aralığı ayarlayabilirsiniz.
API anahtarları API Ürünleri ile tekrar eşlendiğinden, bir API anahtarı her doğrulandığında uygun kota sayacı azaltılabilir (ilişkilendirilmiş Üründe bir Kota tanımlanmışsa).
Apigee çalışma zamanının aksine, ürün tanımına girilen Kotalar Apigee Remote Service tarafından otomatik olarak zorunlu kılındı. İstek yetkilendirilmişse istek, izin verilen kotaya dahil edilir.
Kotaların korunduğu yerlerKotalar, Uzak Hizmet süreci tarafından yerel olarak ve eşzamansız olarak yönetilip kontrol edilir. Apigee Çalışma Zamanı ile korunuyor. Bu da kotaların kesin olmadığı ve büyük olasılıkla kotayı koruyan birden fazla Uzak Hizmet'iniz varsa bir miktar aşınır. Öğe Apigee Çalışma Zamanı ile bağlantı kesildiyse yerel kota bağımsız olarak devam edecek kota kalana kadar kullanılabilir.
OAuth Kapsamları
JWT jetonları kullanıyorsanız jetonları izin verilen OAuth kapsamlarının alt kümeleriyle kısıtlayabilirsiniz. Yayınlanmış JWT jetonunuza atanan kapsamlar, API ürününün kapsamlarına göre kontrol edilir.
Geliştirici uygulamaları hakkında
API Ürünlerinizi yapılandırdıktan sonra, Geliştirici ile ilişkilendirilmiş bir Uygulama oluşturursunuz. Uygulama istemcinin bir API Anahtarı veya JWT Jetonu ile ilişkilendirilmiş API Ürünleri'ne erişmesine izin verir.
JWT tabanlı kimlik doğrulama kullanma
Kimliği doğrulanmış API proxy çağrıları yapmak için API anahtarı kullanmak yerine JWT jetonu kullanabilirsiniz. Bu bölümünde, komut dosyası oluşturmak için
apigee-remote-service-cli token
komutunun JWT jetonlarını oluşturma, inceleme ve döndürme.Genel Bakış
JWT doğrulaması ve kimlik doğrulaması, Envoy tarafından JWT Kimlik Doğrulama Filtresi bölümüne bakın.
Kimlik doğrulamasından sonra Envoy
ext-authz
filtresi, istek başlıklarını ve JWT'yiapigee-remote-service-envoy
. JWT'ninapi_product_list
vescope
talepleriyle eşleşiyor Apigee API Ürünleri'ne karşı yetki vermeyi kabul etmiş olursunuz.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ı 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
Jetonu aldıktan sonra Yetkilendirme başlığından 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ünün envoy tarafından erişilebilir olduğunu ve Apigee proxy'sini yüklediğinizde sertifikaları ayarlamanız gerekir. Şunları yapabilmeniz gerekir: kullanarak 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 şu şekilde görünebilir:
- "Jwt'deki kitlelere izin verilmiyor"
- "Jwt kuruluşu yapılandırılmamış"
Bunlar, Envoy yapılandırmanızdaki değiştirmeniz gerekebilecek gereksinimlerdendir.
Jetonu inceleme
Jetonunuzu incelemek için CLI'yı 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 oldu bölümünü inceleyin.Günlük Kaydı
Günlük kaydı 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 Zorunlu Açıklama -l, --log-level Geçerli düzeyler: hata ayıklama, bilgi, uyar, hata. Günlük kaydı düzeyini ayarlar. Varsayılan: bilgi -j, --json-log Günlük çıkışını JSON kayıtları olarak yayınlar. Envoy, günlük kaydı sağlar. Daha fazla bilgi için aşağıdaki Envoy dokümanlarının bağlantılarına göz atın:
Ağ proxy'si kullanma
HTTP_PROXY ve HTTPS_PROXY ortam değişkenleri kullanılarak HTTP proxy eklenebilir ( Apigee-remote-service-envoy ikili programı ortamında kullanılabilir. Bunları kullanırken, NO_PROXY ortam değişkeni, belirli ana makinelerin proxy üzerinden gönderilmesini engellemek için 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 bir Prometheus metrikleri uç noktası bulabilirsiniz. Chrome Web Mağazası'ndaki bu bağlantı noktası numarasıdır. Yapılandırma dosyası bölümüne bakın.Envoy Analytics
Aşağıdaki bağlantılar Envoy proxy analizlerini alma hakkında bilgi sağlar veri:
Istio analizleri
Aşağıdaki bağlantılar Envoy proxy analizlerini alma hakkında bilgi sağlar veri:
Apigee analizi
Envoy için Apigee Remote Service, analiz işleme amacıyla istek istatistiklerini Apigee'ye gönderir. Apigee, bu istekleri ilişkili API ürün adı altında bildirir.
Apigee Analytics hakkında bilgi için: Analytics hizmetlerine genel bakış başlıklı makaleyi inceleyin.
Çoklu kiracılı ortam desteği
Artık bağdaştırıcıyı birden fazla yöntemle hizmet verecek şekilde etkinleştirebilirsiniz ortamları için de geçerlidir. Bu özellik sayesinde tek bir Apigee Birden fazla ortama hizmet vermek için tek bir Apigee kuruluşuyla ilişkilendirilmiş Envoy Adaptörü. Şu tarihten önce: Bu değişiklik sonucunda bir bağdaştırıcı her zaman bir Apigee ortamına bağlıydı.
Birden fazla ortam desteğini yapılandırmak için
config.yaml
içindetenant:env_name
ile*
arasında dosyası olarak kaydedebilirsiniz. Ö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, Envoy'u uygun bir ortam değerini bağdaştırıcıya aşağıdaki meta verileri
envoy-config.yaml
dosyasınınvirtual_hosts:routes
bölümü. Örneğin:- KSA'yı 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ı (
envoy-config.yaml
adlı) açın. - Aşağıdaki meta verileri
virtual_host
veya Dosyanınroutes
bölümü: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 çok rotaya sahip bir
virtual_host
için yapılandırma gösterilmektedir her rota, belirli bir ortama trafik gönderdiğinden emin olun: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ı ve Apigee çalışma zamanı arasında mTLS'yi yapılandırma
İstemci tarafı TLS sertifikalarını
tenant
bağdaştırıcınınconfig.yaml
dosyasını kullanarak bağdaştırıcı ile Apigee çalışma zamanı arasında mTLS'yi kullanın. Bu Değişiklik, desteklenen tüm Apigee platformları için geçerlidir. Ayrıca analizler için mTLS'yi de etkinleştirir. özel bulut platformu için Apigee Edge'e yönelik bir dizi proje kullanıma sunuldu. Ö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. |