Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Apigee Edge ile çalışan bir geliştirici olarak temel geliştirme faaliyetleriniz, API'ler veya arka uç hizmetleri için proxy görevi gören API proxy'lerini yapılandırmayı içerir. Bu belge, API proxy'leri oluştururken kullanabileceğiniz tüm yapılandırma öğelerinin referansıdır.
API proxy'leri oluşturmayı öğreniyorsanız Basit bir API proxy'si oluşturma konusundan başlamanız önerilir.
Proxy yapılandırmalarını düzenlemenin en yaygın yolları şunlardır:
- Edge kullanıcı arayüzünde XML düzenleyiciyi kullanma
- Yapılandırmayı indirip yerel olarak düzenleyin. Bu işlem, Proxy yapılandırmalarının yerel olarak geliştirilmesi başlıklı makalede açıklanmıştır.
Proxy yapılandırmalarının yerel olarak geliştirilmesi
Proxy yapılandırmalarınızı indirerek yerel bir makinede düzenleyebilirsiniz. İşiniz bittiğinde sonuçları Edge'e yüklersiniz. Bu yaklaşım, proxy yapılandırmalarını kaynak kontrolü, sürüm oluşturma ve diğer paylaşılan iş akışlarınıza entegre etmenize olanak tanır. Ayrıca, proxy yapılandırması üzerinde yerel olarak çalışarak kendi XML düzenleyicinizi ve doğrulama araçlarınızı kullanabilirsiniz.
Bu bölümde, mevcut bir proxy yapılandırmasını indirmek, düzenlemek ve ardından dağıtım için Edge'e geri yüklemek üzere kullanıcı arayüzünün nasıl kullanılacağı açıklanmaktadır. Yeni bir proxy yapılandırmasını indirmek ve dağıtmak için apigeetool'u da kullanabilirsiniz (sırasıyla fetchproxy ve deployproxy komutlarını kullanarak).
Kullanıcı arayüzünü kullanarak bir proxy yapılandırmasını yerel olarak düzenlemek için:
- Edge kullanıcı arayüzünde mevcut proxy yapılandırmasını indirin. (API Proxies (API Proxy'leri) görünümünde Project > Download Revision'ı (Proje > Revizyonu İndir) seçin.)
- Yerel makinenizde yeni bir dizin oluşturun ve indirilen ZIP dosyasını bu dizine genişletin.
ZIP dosyasını genişletmek için aşağıdaki örnekte gösterildiği gibi
unzipgibi bir yardımcı program kullanabilirsiniz:mkdir myappdir
unzip ./my-app_app_rev3_2019_04_20.zip -d myappdirZIP dosyasının genişletilmiş içeriği, API proxy yapısı bölümünde açıklanan yapıya benzer olmalıdır.
- Kaynak dosyaları gerektiği gibi düzenleyin. Bir proxy yapılandırmasındaki kaynak dosyaların açıklaması için API proxy'sinin yapılandırma dosyaları ve dizin yapısı başlıklı makaleyi inceleyin.
Örneğin, API proxy'nizde sağlık izlemeyi etkinleştirmek için
/apiproxy/targets/dizinindeki TargetEndpoint yapılandırma dosyasını düzenleyin. Bu dizindeki varsayılan dosyadefault.xml'dır. Ancak koşullu hedefler kullanıyorsanız farklı adlara sahip dosyalar olabilir.Bu durumda, TargetEndpoint yapılandırma dosyası ve dizini yoksa bunları oluşturun.
- Proxy yapılandırma dosyalarını düzenlemeyi bitirdikten sonra değişikliklerinizi kaydettiğinizden emin olun.
- ZIP dosyalarını genişlettiğinizde oluşturduğunuz yeni dizine (genişletilmiş yapılandırma dosyalarının kökü) geçin.
Örneğin, dosyaları
/myappdirdizinine genişlettiyseniz aşağıdaki örnekte gösterildiği gibi bu dizine geçin:cd myappdir
/myappdirdizininin ZIP dosyasına dahil edilmesini istemediğiniz için, proxy yapılandırma dosyalarınızı yeniden arşivlemeden önce bu dizine geçmelisiniz. ZIP dosyasındaki en üst düzey dizin/apiproxyolmalıdır. - Yeni veya değiştirilmiş dosyalar da dahil olmak üzere proxy yapılandırma dosyalarını yeniden arşivleyin. Aşağıdaki örnekte gösterildiği gibi
zipgibi bir yardımcı program kullanabilirsiniz:zip my-new-proxy.zip -r .
ZIP dosyasındaki en üst düzey dizin
/apiproxyolmalıdır.ZIP dosya adı için özel bir şart yoktur. Örneğin, revizyon numarasını artırmanız veya dosya adında tarihi belirtmeniz gerekmez. Ancak bu işlemler, hata ayıklama veya kaynak kontrolü için yararlı olabilir.
Edge, yeni proxy yapılandırmasını yüklediğinizde revizyon numarasını sizin için artırır.
- Edge kullanıcı arayüzünü kullanarak yeni proxy yapılandırmasını yükleyin. (API Proxies
(API Proxyleri) görünümünde Project > Upload a New Revision'ı (Proje > Yeni Bir Revizyon Yükle) seçin.)
Bundle is invalid. Empty bundle. gibi bir hata alırsanız ZIP dosyanızın üst düzey dizininin
/apiproxyolduğundan emin olun. Aksi takdirde, genişletilmiş dizinin kökünden proxy yapılandırma dosyalarınızı yeniden arşivleyin.Yeni proxy yapılandırmanızı yükledikten sonra Edge, düzeltme numarasını artırır ve Düzeltme Özeti görünümünde gösterir.
Edge, kullanıcı arayüzüyle yüklediğiniz yeni düzeltmeyi sizin için dağıtmaz.
- Yeni düzeltmenizi dağıtın.
Daha fazla bilgi için Apigee Community'deki Eğitim: Kullanıcı arayüzünü ve yönetim API'sini kullanarak proxy indirme başlıklı makaleyi inceleyin.
API proxy'si yapısı
API proxy'si aşağıdaki yapılandırmadan oluşur:
| Temel Yapılandırma | API proxy'si için temel yapılandırma ayarları. Temel Yapılandırma bölümüne bakın. |
| ProxyEndpoint Yapılandırması | Gelen HTTP bağlantısı (istek gönderen uygulamalardan Apigee Edge'e), istek ve yanıt akışları ile politika ekleri için ayarlar. ProxyEndpoint'e bakın. |
| TargetEndpoint Yapılandırması | Giden HTTP bağlantısı (Apigee Edge'den arka uç hizmetine), istek ve yanıt akışları ile politika ekleri için ayarlar. TargetEndpoint'e bakın. |
| Akışlar | Politikaların eklenebileceği ProxyEndpoint ve TargetEndpoint istek ve yanıt işlem hatları. Akışlar başlıklı makaleyi inceleyin. |
| Politikalar | Apigee Edge politika şemalarına uygun, XML biçimli yapılandırma dosyaları. Politikalar'a bakın. |
| Kaynaklar | Özel mantık yürütmek için politikalar tarafından referans verilen komut dosyaları, JAR dosyaları ve XSLT dosyaları. Kaynaklar bölümüne bakın. |
API proxy'si dizin yapısı ve içerikleri
Yukarıdaki tablodaki bileşenler, aşağıdaki dizin yapısındaki yapılandırma dosyalarıyla tanımlanır:

API proxy'sinin yapılandırma dosyaları ve dizin yapısı
Bu bölümde, API proxy'sinin yapılandırma dosyaları ve dizin yapısı açıklanmaktadır.
Temel Yapılandırma
/apiproxy/weatherapi.xml
API proxy'sinin adını tanımlayan temel yapılandırma. Ad, kuruluş içinde benzersiz olmalıdır.
Örnek yapılandırma:
<APIProxy name="weatherapi"> </APIProxy>
Temel Yapılandırma Öğeleri
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
APIProxy |
|||
name |
API proxy'sinin adı. Kuruluş içinde benzersiz olmalıdır. Ad içinde kullanabileceğiniz karakterler şunlarla sınırlıdır:
A-Za-z0-9_- |
Yok | Evet |
revision |
API proxy'si yapılandırmasının düzeltme numarası. Apigee Edge, API proxy'sinin mevcut düzeltmesini otomatik olarak izlediğinden düzeltme numarasını açıkça ayarlamanız gerekmez. | Yok | Hayır |
ConfigurationVersion |
Bu API proxy'sinin uyduğu API proxy'si yapılandırma şemasının sürümü. Şu anda yalnızca majorVersion 4 ve minorVersion 0 değerleri desteklenmektedir. Bu ayar, API proxy biçiminin geliştirilmesini sağlamak için gelecekte kullanılabilir. | 4.0 | Hayır |
Description |
API proxy'sinin metin açıklaması. Sağlanırsa açıklama, Edge yönetim kullanıcı arayüzünde gösterilir. | Yok | Hayır |
DisplayName |
API proxy yapılandırmasının name özelliğinden farklı olabilecek kullanıcı dostu bir ad. |
Yok | Hayır |
Policies |
Bu API proxy'sinin /policies dizinindeki politikaların listesi. Bu öğeyi normalde yalnızca API proxy'si Edge yönetim kullanıcı arayüzü kullanılarak oluşturulduğunda görürsünüz.
Bu, API proxy'sinin içeriğine görünürlük sağlamak için tasarlanmış basit bir "manifest" ayarıdır. |
Yok | Hayır |
ProxyEndpoints |
Bu API proxy'sinin /proxies dizinindeki ProxyEndpoint'lerin listesi. Bu öğeyi normalde yalnızca API proxy'si Edge yönetim kullanıcı arayüzü kullanılarak oluşturulduğunda görürsünüz. Bu, API proxy'sinin içeriğine görünürlük sağlamak için tasarlanmış basit bir "manifest" ayarıdır. |
Yok | Hayır |
Resources |
Bu API proxy'sinin /resources
dizinindeki kaynakların (JavaScript, Python, Java, XSLT) listesi. Bu öğeyi normalde yalnızca API proxy'si Edge yönetim kullanıcı arayüzü kullanılarak oluşturulduğunda görürsünüz. Bu, API proxy'sinin içeriğinin görünürlüğünü sağlamak için tasarlanmış basit bir "manifest" ayarıdır. |
Yok | Hayır |
Spec |
API proxy'siyle ilişkili OpenAPI spesifikasyonunu tanımlar. Değer, bir URL'ye veya spesifikasyon deposundaki bir yola ayarlanır. Not: Spesifikasyon mağazası yalnızca yeni Edge deneyiminde kullanılabilir. Spesifikasyon mağazası hakkında daha fazla bilgi için Spesifikasyonları yönetme ve paylaşma başlıklı makaleyi inceleyin. |
Yok | Hayır |
TargetServers |
Bu API proxy'sinin herhangi bir TargetEndpoint'inde referans verilen TargetServer'ların listesi. Bu öğeyi normalde yalnızca API proxy'si Edge yönetim kullanıcı arayüzü kullanılarak oluşturulduğunda görürsünüz. Bu, API proxy'sinin içeriğine görünürlük sağlamak için tasarlanmış basit bir "manifest" ayarıdır. | Yok | Hayır |
TargetEndpoints |
Bu API proxy'sinin /targets dizinindeki TargetEndpoint'lerin listesi. Bu öğeyi normalde yalnızca API proxy'si Edge yönetim kullanıcı arayüzü kullanılarak oluşturulduğunda görürsünüz. Bu, API proxy'sinin içeriğine görünürlük sağlamak için tasarlanmış basit bir "manifest" ayarıdır. |
Yok | Hayır |
ProxyEndpoint
Aşağıdaki resimde istek/yanıt akışı gösterilmektedir:

/apiproxy/proxies/default.xml
ProxyEndpoint yapılandırması, bir API proxy'sinin gelen (istemciye yönelik) arayüzünü tanımlar. ProxyEndpoint'i yapılandırdığınızda, istemci uygulamalarının ("uygulamalar") proxy'li API'yi nasıl çağıracağını tanımlayan bir ağ yapılandırması oluşturursunuz.
Aşağıdaki örnek ProxyEndpoint yapılandırması,
/apiproxy/proxies altında saklanır:
<ProxyEndpoint name="default">
<PreFlow/>
<Flows/>
<PostFlow/>
<HTTPProxyConnection>
<BasePath>/weather</BasePath>
<VirtualHost>default</VirtualHost>
</HTTPProxyConnection>
<FaultRules/>
<DefaultFaultRule/>
<RouteRule name="default">
<TargetEndpoint>default</TargetEndpoint>
</RouteRule>
</ProxyEndpoint>Temel bir ProxyEndpoint'teki gerekli yapılandırma öğeleri şunlardır:
ProxyEndpoint Yapılandırması Öğeler
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
ProxyEndpoint |
|||
name |
ProxyEndpoint'in adı. (Nadir durumlarda) birden fazla ProxyEndpoint tanımlandığında API proxy yapılandırmasında benzersiz olmalıdır. Ad içinde kullanmanıza izin verilen karakterler şunlarla sınırlıdır: A-Za-z0-9._\-$ %. |
Yok | Evet |
PreFlow |
Bir istek veya yanıtın PreFlow akışındaki politikaları tanımlar. | Yok | Evet |
Flows |
Bir istek veya yanıtın koşullu akışlarındaki politikaları tanımlar.
|
Yok | Evet |
PostFlow |
Bir istek veya yanıtın PostFlow akışındaki politikaları tanımlar.
|
Yok | Evet |
HTTPProxyConnection |
API proxy'siyle ilişkili ağ adresini ve URI yolunu tanımlar. | ||
BasePath |
Apigee Edge'in gelen mesajları uygun API proxy'sine yönlendirmek için kullandığı URI yolunu benzersiz şekilde tanımlayan zorunlu bir dize. BasePath, bir API proxy'sinin (örneğin, Temel yollarda joker karakter kullanma API proxy'si temel yollarında bir veya daha fazla "*" joker karakteri kullanabilirsiniz. Örneğin, Önemli: Apigee, temel yolun ilk öğesi olarak joker karakter "*" kullanımını DESTEKLEMEZ. Örneğin, |
/ | Evet |
VirtualHost |
Bir API proxy'sini bir ortam için belirli temel URL'lerle ilişkilendirir. VirtualHost, bir ortam için bir veya daha fazla URL tanımlayan adlandırılmış bir yapılandırmadır. Bir ProxyEndpoint için tanımlanan adlandırılmış VirtualHost'lar, bir API proxy'sinin kullanıma sunulduğu alanları ve bağlantı noktalarını ve dolayısıyla uygulamaların bir API proxy'sini çağırmak için kullandığı URL'yi belirler. Varsayılan olarak bir ortam için iki adlandırılmış VirtualHost tanımlanır: |
varsayılan | Hayır |
Properties |
Bir dizi isteğe bağlı HTTP yapılandırma ayarı, <ProxyEndpoint> özellikleri olarak tanımlanabilir. |
Yok | Hayır |
FaultRules |
ProxyEndpoint'in bir hataya nasıl tepki vereceğini tanımlar. Hata kuralı iki öğe belirtir:
Hataları işleme bölümüne bakın. |
Yok | Hayır |
DefaultFaultRule |
Başka bir hata kuralı tarafından açıkça işlenmeyen tüm hataları (sistem, aktarım, mesajlaşma veya politika) işler. Hataları işleme bölümüne bakın. |
Yok | Hayır |
RouteRule |
ProxyEndpoint istek ardışık düzeni tarafından işlendikten sonra gelen istek mesajlarının hedefini tanımlar. RouteRule genellikle adlandırılmış bir TargetEndpoint yapılandırmasını işaret eder ancak doğrudan bir URL'yi de işaret edebilir. | ||
Name |
RouteRule için bir ad sağlayan zorunlu özelliktir. Ad içinde kullanmanıza izin verilen karakterler şunlarla sınırlıdır: A-Za-z0-9._\-$ %. Örneğin, Cat2 %_ yasal bir addır. |
Yok | Evet |
Condition |
Çalışma zamanında dinamik yönlendirme için kullanılan isteğe bağlı koşullu ifade. Koşullu RouteRule'lar, örneğin arka uç sürüm oluşturmayı desteklemek için içeriğe dayalı yönlendirmeyi etkinleştirmek amacıyla kullanışlıdır. | Yok | Hayır |
TargetEndpoint |
Adlandırılmış bir TargetEndpoint yapılandırmasını tanımlayan isteğe bağlı bir dize. Adlandırılmış bir TargetEndpoint, aynı API proxy'sinde Bir TargetEndpoint'e ad vererek, ProxyEndpoint istek hattı tarafından işlendikten sonra istek mesajlarının nereye yönlendirilmesi gerektiğini belirtirsiniz. Bu ayarın isteğe bağlı olduğunu unutmayın. ProxyEndpoint, bir URL'yi doğrudan çağırabilir. Örneğin, HTTP istemcisi rolünde çalışan bir JavaScript veya Java kaynağı, istekleri bir arka uç hizmetine yönlendirmek olan TargetEndpoint'in temel görevini yerine getirebilir. |
Yok | Hayır |
| URL | ProxyEndpoint tarafından çağrılan ve /targets altında depolanmış olabilecek tüm TargetEndpoint yapılandırmalarını atlayan, giden bir ağ adresini tanımlayan isteğe bağlı bir dize. |
Yok | Hayır |
RouteRules nasıl yapılandırılır?
Adlandırılmış bir TargetEndpoint, /apiproxy/targets altında bulunan bir yapılandırma dosyasını ifade eder. Bu dosyaya, ProxyEndpoint tarafından işlendikten sonra RouteRule bir isteği yönlendirir.
Örneğin, aşağıdaki RouteRule, /apiproxy/targets/myTarget.xml yapılandırmasını ifade eder:
<RouteRule name="default"> <TargetEndpoint>myTarget</TargetEndpoint> </RouteRule>
Doğrudan URL Çağırma
ProxyEndpoint, arka uç hizmetini doğrudan da çağırabilir. Doğrudan URL çağırma, /apiproxy/targets altındaki tüm adlandırılmış TargetEndpoints yapılandırmalarını atlar. Bu nedenle, TargetEndpoint isteğe bağlı bir API proxy yapılandırmasıdır. Ancak uygulamada ProxyEndpoint'ten doğrudan çağırma önerilmez.
Örneğin, aşağıdaki RouteRule, http://api.mycompany.com/v2 adresine bir HTTP çağrısı yapar.
<RouteRule name="default"> <URL>http://api.mycompany.com/v2</URL> </RouteRule>
Koşullu Rotalar
RouteRules, çalışma zamanında dinamik yönlendirmeyi desteklemek için zincirlenebilir. Gelen istekler, HTTP üstbilgilerine, ileti içeriğine, sorgu parametrelerine veya günün saati, yerel ayar gibi bağlamsal bilgilere göre adlandırılmış TargetEndpoint yapılandırmalarına, doğrudan URL'lere ya da ikisinin bir kombinasyonuna yönlendirilebilir.
Koşullu RouteRule'lar, Apigee Edge'deki diğer koşullu ifadeler gibi çalışır. Koşullar referansı ve Değişkenler referansı'na bakın.
Örneğin, aşağıdaki RouteRule kombinasyonu, bir HTTP başlığının değerini doğrulamak için önce gelen isteği değerlendirir. routeTo HTTP başlığında TargetEndpoint1 değeri varsa istek, TargetEndpoint1 adlı TargetEndpoint'e yönlendirilir. Aksi takdirde gelen istek http://api.mycompany.com/v2 adresine yönlendirilir.
<RouteRule name="MyRoute"> <Condition>request.header.routeTo = "TargetEndpoint1"</Condition> <TargetEndpoint>TargetEndpoint1</TargetEndpoint> </RouteRule> <RouteRule name="default"> <URL>http://api.mycompany.com/v2</URL> </RouteRule>
Null Routes
İstek mesajının TargetEndpoint'e yönlendirilmesi gerekmediği senaryoları desteklemek için boş bir RouteRule tanımlanabilir. Bu, ProxyEndpoint gerekli tüm işlemleri gerçekleştirdiğinde (ör. harici bir hizmeti çağırmak için JavaScript kullanarak veya API hizmetlerinin anahtar/değer deposuna yönelik bir aramadan veri alarak) kullanışlıdır.
Örneğin, aşağıda boş bir rota tanımlanmaktadır:
<RouteRule name="GoNowhere"/>
Koşullu boş rotalar yararlı olabilir. Aşağıdaki örnekte, bir HTTP üst bilgisi request.header.X-DoNothing null dışında bir değere sahip olduğunda yürütülecek şekilde bir boş rota yapılandırılmıştır.
<RouteRule name="DoNothingOnDemand"> <Condition>request.header.X-DoNothing != null</Condition> </RouteRule>
RouteRule'ların zincirlenebileceğini unutmayın. Bu nedenle, koşullu bir null Route genellikle koşullu yönlendirmeyi desteklemek için tasarlanmış bir RouteRule kümesinin bir bileşeni olur.
Koşullu boş rota, önbelleğe almayı desteklemek için pratik bir şekilde kullanılabilir. Önbellek politikası tarafından ayarlanan değişkenin değerini kullanarak, bir giriş önbellekten sunulduğunda API proxy'sini boş rota yürütecek şekilde yapılandırabilirsiniz.
<RouteRule name="DoNothingUnlessTheCacheIsStale"> <Condition>lookupcache.LookupCache-1.cachehit is true</Condition> </RouteRule>
TargetEndpoint

TargetEndpoint, ProxyEndpoint'in giden eşdeğeridir. TargetEndpoint, bir arka uç hizmeti veya API'ye yönelik istemci olarak işlev görür. İstek gönderir ve yanıt alır.
API proxy'sinin TargetEndpoint'i olması gerekmez. ProxyEndpoints, URL'leri doğrudan çağıracak şekilde yapılandırılabilir. TargetEndpoints'i olmayan bir API proxy'si genellikle bir arka uç hizmetini doğrudan çağıran veya Java ya da JavaScript kullanarak bir hizmeti çağıracak şekilde yapılandırılmış bir ProxyEndpoint içerir.
TargetEndpoint Yapılandırması
/targets/default.xml
TargetEndpoint, Apigee Edge'den başka bir hizmete veya kaynağa giden bağlantıyı tanımlar.
Örnek bir TargetEndpoint yapılandırması aşağıda verilmiştir:
<TargetEndpoint name="default">
<PreFlow/>
<Flows/>
<PostFlow/>
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<SSLInfo/>
</HTTPTargetConnection>
<FaultRules/>
<DefaultFaultRule/>
<ScriptTarget/>
<LocalTargetConnection/>
</TargetEndpoint>TargetEndpoint Yapılandırması Öğeler
TargetEndpoint, aşağıdaki yöntemlerden biriyle hedefi çağırabilir:
- HTTP(S) çağrıları için HTTPTargetConnection
- Yerel proxy'den proxy'ye zincirleme için LocalTargetConnection
- Edge'de barındırılan Node.js komut dosyasına yapılan çağrılar için ScriptTarget
TargetEndpoint'te yalnızca bunlardan birini yapılandırın.
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
TargetEndpoint |
|||
name |
API proxy'si yapılandırmasında benzersiz olması gereken TargetEndpoint'in adı. TargetEndpoint'in adı, giden işleme yönelik istekleri yönlendirmek için ProxyEndpoint RouteRule'da kullanılır. Ad içinde kullanmanıza izin verilen karakterler şunlarla sınırlıdır: A-Za-z0-9._\-$ %. |
Yok | Evet |
PreFlow |
Bir istek veya yanıtın PreFlow akışındaki politikaları tanımlar. | Yok | Evet |
Flows |
Bir istek veya yanıtın koşullu akışlarındaki politikaları tanımlar.
|
Yok | Evet |
PostFlow |
Bir istek veya yanıtın PostFlow akışındaki politikaları tanımlar.
|
Yok | Evet |
HTTPTargetConnection |
Alt öğeleriyle birlikte, HTTP üzerinden bir arka uç kaynağına erişimi belirtir. HTTPTargetConnection kullanıyorsanız başka hedef bağlantı türleri (ScriptTarget veya LocalTargetConnection) yapılandırmayın. |
||
URL |
TargetEndpoint'in istek mesajlarını yönlendirdiği arka uç hizmetinin ağ adresini tanımlar. | Yok | Hayır |
LoadBalancer |
Adlandırılmış bir veya daha fazla TargetServer yapılandırması tanımlar. Adlandırılmış TargetServer yapılandırmaları, 2 veya daha fazla uç nokta yapılandırma bağlantısı tanımlayan yük dengeleme için kullanılabilir. Ayrıca, API proxy yapılandırmalarını somut arka uç hizmeti uç noktası URL'lerinden ayırmak için TargetServer'ları da kullanabilirsiniz. Arka uç sunucularında yük dengeleme bölümüne bakın. |
Yok | Hayır |
Properties |
Bir dizi isteğe bağlı HTTP yapılandırma ayarı, <TargetEndpoint> özellikleri olarak tanımlanabilir. |
Yok | Hayır |
SSLInfo |
İsteğe bağlı olarak, API proxy'si ile hedef hizmet arasındaki TLS/SSL bağlantısını kontrol etmek için bir TargetEndpoint'te TLS/SSL ayarlarını tanımlayın. TLS/SSL TargetEndpoint Yapılandırması bölümüne bakın. | Yok | Hayır |
LocalTargetConnection |
Alt öğeleriyle birlikte, yük dengeleme ve mesaj işlemcileri gibi ağ özelliklerini atlayarak yerel olarak erişilecek bir kaynağı belirtir.
Hedef kaynağı belirtmek için APIProxy alt öğesini (ProxyEndpoint öğesiyle birlikte) veya Path alt öğesini ekleyin. Daha fazla bilgi için API proxy'lerini birbirine bağlama başlıklı makaleyi inceleyin. LocalTargetConnection kullanıyorsanız diğer hedef bağlantı türlerini (HTTPTargetConnection veya ScriptTarget) yapılandırmayın. |
||
APIProxy |
İstekler için hedef olarak kullanılacak bir API proxy'sinin adını belirtir. Hedef proxy, istek gönderen proxy ile aynı kuruluşta ve ortamda olmalıdır. Bu, Yol öğesini kullanmaya alternatiftir. | Yok | Hayır |
ProxyEndpoint |
Hedef proxy'nin ProxyEndpoint'inin adını belirtmek için APIProxy ile birlikte kullanılır. | Yok | Hayır |
Path |
İstekler için hedef olarak kullanılacak bir API proxy'sinin uç nokta yolunu belirtir. Hedef proxy, istek gönderen proxy ile aynı kuruluşta ve ortamda olmalıdır. Bu, APIProxy'yi kullanmaya alternatif bir yöntemdir. | Yok | Hayır |
FaultRules |
Hedef uç noktanın bir hataya nasıl tepki vereceğini tanımlar. Hata kuralı iki öğe belirtir:
Hataları işleme bölümüne bakın. |
Yok | Hayır |
DefaultFaultRule |
Başka bir FaultRule tarafından açıkça işlenmeyen tüm hataları (sistem, aktarım, mesajlaşma veya politika) işler. Hataları işleme bölümüne bakın. |
Yok | Hayır |
ScriptTarget |
|||
ResourceURL |
Kaynak türünü (düğüm) ve TargetEndpoint işlevselliğini uygulayan ana Node.js komut dosyasının adını tanımlar.
Komut dosyası, API proxy'nizin kaynak dosyalarıyla birlikte gönderilmelidir. Mevcut bir API proxy'sine Node.js ekleme başlıklı makaleyi inceleyin. ScriptTarget kullanıyorsanız diğer hedef bağlantı türlerini (HTTPTargetConnection veya LocalTargetConnection) yapılandırmayın. |
Yok | Evet |
EnvironmentVariable |
İsteğe bağlı olarak, ortam değişkenlerini ana Node.js komut dosyasına iletin. Node.js modülleri için Edge desteğini anlama başlıklı makaleyi inceleyin. |
Yok | Hayır |
Arguments |
İsteğe bağlı olarak ana Node.js komut dosyasına bağımsız değişkenler iletin. Node.js modülleri için Edge desteğini anlama başlıklı makaleyi inceleyin. |
Yok | Hayır |
TLS/SSL TargetEndpoint Yapılandırması
TargetEndpoints'in genellikle heterojen arka uç altyapısıyla HTTPS bağlantılarını yönetmesi gerekir. Bu nedenle, çeşitli TLS/SSL yapılandırma ayarları desteklenir.
TLS/SSL TargetEndpoint Yapılandırma Öğeleri
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
SSLInfo |
|||
Enabled |
Uç nokta için TLS/SSL'nin etkin olup olmadığını gösterir.
<URL>, HTTPS protokolünü belirtiyorsa varsayılan değer true, HTTP'yi belirtiyorsa false olur.<URL> |
<URL>, HTTPS'yi belirtiyorsa doğru |
Hayır |
TrustStore |
Güvenilen sunucu sertifikalarını içeren bir anahtar deposu. | Yok | Hayır |
ClientAuthEnabled |
Giden istemci kimlik doğrulamasını (2 yönlü TLS/SSL) etkinleştiren bir ayar | yanlış | Hayır |
KeyStore |
Giden istemci kimlik doğrulaması için kullanılan özel anahtarları içeren bir anahtar deposu | Yok | Evet (ClientAuthEnabled doğruysa) |
KeyAlias |
Giden istemci kimlik doğrulaması için kullanılan özel anahtarın anahtar takma adı | Yok | Evet (ClientAuthEnabled doğruysa) |
Ciphers |
Giden TLS/SSL için desteklenen şifreler. Şifre belirtilmezse JVM için kullanılabilen tüm şifrelere izin verilir. Şifreleri kısıtlamak için desteklenen şifrelerin listelendiği aşağıdaki öğeleri ekleyin: <Ciphers> <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher> <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher> </Ciphers> |
Yok | Hayır |
Protocols |
Giden TLS/SSL için desteklenen protokoller. Protokol belirtilmezse JVM için kullanılabilen tüm protokollere izin verilir. Protokolleri kısıtlamak için desteklenen protokolleri listeleyen aşağıdaki öğeleri ekleyin: <Protocols> <Protocol>TLSv1.1</Protocol> <Protocol>TLSv1.2</Protocol> </Protocols> |
Yok | Hayır |
CommonName |
Belirtilirse hedef sertifikanın ortak adının doğrulandığı bir değer. Bu değer yalnızca TargetEndpoint ve TargetServer yapılandırmaları için geçerlidir. VirtualHost yapılandırmaları için geçerli değildir. Varsayılan olarak, belirtilen değer hedef sertifikanın ortak adıyla tam olarak eşleştirilir.
Örneğin, <CommonName> için değer olarak İsteğe bağlı olarak Apigee, Örneğin, hedef sertifikada <CommonName wildcardMatch="true">*.myhost.com</CommonName> |
Yok | Hayır |
Giden istemci kimlik doğrulamasının etkin olduğu örnek TargetEndpoint
<TargetEndpoint name="default">
<HttpTargetConnection>
<URL>https://myservice.com</URL>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>true</ClientAuthEnabled>
<KeyStore>myKeystore</KeyStore>
<KeyAlias>myKey</KeyAlias>
<TrustStore>myTruststore</TrustStore>
</SSLInfo>
</HttpTargetConnection>
</TargetEndpoint>Ayrıntılı talimatlar için TLS'yi Edge'den arka uca (Cloud ve Private Cloud) yapılandırma başlıklı makaleyi inceleyin.
TLS/SSL değerlerini dinamik olarak ayarlamak için akış değişkenlerini kullanma
Ayrıca, esnek çalışma zamanı gereksinimlerini desteklemek için TLS/SSL ayrıntılarını dinamik olarak ayarlayabilirsiniz. Örneğin, proxy'niz iki farklı hedefle (bir test hedefi ve bir üretim hedefi) bağlantı kuruyorsa API proxy'nizin hangi ortamı çağırdığını programatik olarak algılamasını ve uygun anahtar deposu ile güven deposuna referansları dinamik olarak ayarlamasını sağlayabilirsiniz. Aşağıdaki Apigee Topluluğu makalesinde bu senaryo daha ayrıntılı olarak açıklanmakta ve dağıtılabilir API proxy'si örnekleri verilmektedir: Değişken referansı kullanarak TargetEndpoint için dinamik SSLInfo.
<SSLInfo> etiketinin bir TargetEndpoint yapılandırmasında nasıl ayarlanacağına dair aşağıdaki örnekte, değerler çalışma zamanında (ör. Java Callout, JavaScript politikası veya Assign Message politikası tarafından) sağlanabilir. Ayarlamak istediğiniz değerleri içeren mesaj değişkenlerini kullanın.
Yalnızca aşağıdaki öğelerde değişkenlere izin verilir.
<SSLInfo> <Enabled>{myvars.ssl.enabled}</Enabled> <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled> <KeyStore>{myvars.ssl.keystore}</KeyStore> <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias> <TrustStore>{myvars.ssl.trustStore}</TrustStore> </SSLInfo>
TLS/SSL değerlerini dinamik olarak ayarlamak için referansları kullanma
HTTPS kullanan bir TargetEndpoint yapılandırırken TLS/SSL sertifikasının süresinin dolduğu veya sistem yapılandırmasında yapılan bir değişiklik nedeniyle sertifikayı güncellemeniz gerektiği durumları göz önünde bulundurmanız gerekir. Private Cloud için Edge kurulumunda, TLS/SSL'yi statik değerler veya akış değişkenleri kullanarak yapılandırırken ileti işlemcilerini yeniden başlatmanız gerekebilir.
Daha fazla bilgi için TLS sertifikasını güncelleme başlıklı makaleyi inceleyin.
Ancak, TargetEndpoint'i isteğe bağlı olarak anahtar deposu veya güven deposu için referans kullanacak şekilde yapılandırabilirsiniz. Referans kullanmanın avantajı, TLS/SSL sertifikasını güncellemek için referansı farklı bir anahtar deposuna veya güven deposuna yönlendirecek şekilde güncelleyebilmenizdir. Bu işlem için ileti işlemcilerini yeniden başlatmanız gerekmez.
Örneğin, aşağıda anahtar deposuna referans veren bir TargetEndpoint gösterilmektedir:
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://keystoreref</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>keystoreref adlı referansı oluşturmak için aşağıdaki POST API çağrısını kullanın:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
<Refers>myTestKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:passwordReferans, anahtar deposunun adını ve türünü belirtir.
Referansı görüntülemek için aşağıdaki GET API çağrısını kullanın:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:passwordDaha sonra referansı farklı bir anahtar deposuna yönlendirecek şekilde değiştirmek için (takma adın aynı ada sahip olduğundan emin olarak) aşağıdaki PUT çağrısını kullanın:
curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
<Refers>myNewKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:passwordHedef yük dengeleme ile TargetEndpoint
TargetEndpoints, üç yük dengeleme algoritması kullanarak birden fazla adlandırılmış TargetServer arasında yük dengelemeyi destekler.
Ayrıntılı talimatlar için Arka uç sunucularında yük dengeleme başlıklı makaleyi inceleyin.
Politikalar
API proxy'sindeki /policies dizini, API proxy'sindeki akışlara eklenebilecek tüm politikaları içerir.
Politika Yapılandırma Öğeleri
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
Policy |
|||
name |
Politikanın dahili adı. Adda kullanabileceğiniz karakterler İsteğe bağlı olarak, yönetim kullanıcı arayüzü proxy düzenleyicisindeki politikayı farklı ve doğal dilde bir adla etiketlemek için |
Yok | Evet |
enabled |
Politikayı zorunlu kılmak için Politikayı "kapatmak" için |
doğru | Hayır |
continueOnError |
Bir politika başarısız olduğunda hata döndürmek için Bir politika başarısız olsa bile akış yürütmenin devam etmesi için |
yanlış | Hayır |
async |
Not: Bu özellik, politikanın eşzamansız olarak yürütülmesini sağlamaz.
Çoğu durumda bu alanı
API proxy'lerinde eşzamansız davranış kullanmak için JavaScript nesne modeline bakın. |
yanlış | Hayır |
Politika Eki
Aşağıdaki resimde, API proxy'si akışlarının yürütme sırası gösterilmektedir:

Yukarıda gösterildiği gibi:
Politikalar, akışlara işleme adımları olarak eklenir. Politikanın adı, işleme adımı olarak uygulanacak politikaya referans vermek için kullanılır. Politika eklerinin biçimi aşağıdaki gibidir:
<Step><Name>MyPolicy</Name></Step>
Politikalar, bir akışa eklendikleri sırayla zorunlu kılınır. Örneğin:
<Step><Name>FirstPolicy</Name></Step> <Step><Name>SecondPolicy</Name></Step>
Politika Ekleme Yapılandırması Öğeleri
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
Step |
|||
Name |
Bu Ad tanımı tarafından yürütülecek politikanın adı. | Yok | Evet |
Condition |
Politikanın uygulanıp uygulanmayacağını belirleyen koşullu ifade. Bir politikayla ilişkili koşul varsa politika yalnızca koşullu ifade doğru olarak değerlendirilirse yürütülür. | Yok | Hayır |
Akışlar
ProxyEndpoint ve TargetEndpoint, istek ve yanıt mesajı işleme için bir işlem hattı tanımlar. İşleme ardışık düzeni, istek akışı ve yanıt akışından oluşur. Her istek akışı ve yanıt akışı; PreFlow, bir veya daha fazla isteğe bağlı "koşullu" ya da "adlandırılmış" akış ve PostFlow olarak alt bölümlere ayrılır.
- PreFlow: Her zaman yürütülür. Koşullu akışlardan önce yürütülür.
- PostFlow: Her zaman yürütülür. Koşullu akışlardan sonra yürütülür.
Ayrıca, ProxyEndpoint'e bir PostClientFlow ekleyebilirsiniz. Bu akış, yanıt istemde bulunan istemci uygulamasına döndürüldükten sonra yürütülür. Bu akışa yalnızca MessageLogging politikası ve Google Stackdriver Logging Extension eklenebilir. PostClientFlow, API proxy gecikmesini azaltır ve yanıt istemciye döndürülene kadar hesaplanmayan, günlük kaydına alınabilecek bilgileri (ör. client.sent.start.timestamp ve client.sent.end.timestamp) kullanılabilir hale getirir. Bu akış, öncelikli olarak yanıt mesajının başlangıç ve bitiş zaman damgaları arasındaki zaman aralığını ölçmek için kullanılır.
Kısa bir nasıl yapılır videosu izleyin
Video: PostClientFlow'da Message Logging'i kullanmayla ilgili bu kısa videoya göz atın.
Aşağıda, ileti günlüğü politikası eklenmiş bir PostClientFlow örneği verilmiştir.
...
<PostFlow name="PostFlow">
<Request/>
<Response/>
</PostFlow>
<PostClientFlow>
<Request/>
<Response>
<Step>
<Name>Message-Logging-1</Name>
</Step>
</Response>
</PostClientFlow>
...API proxy işleme ardışık düzeni, akışları aşağıdaki sırayla yürütür:
İstek Ardışık Düzeni:
- Proxy İsteği Ön Akışı
- Proxy isteği koşullu akışları (isteğe bağlı)
- Proxy İsteği PostFlow
- Hedef İstek Ön Akışı
- Hedef İstek Koşullu Akışları (İsteğe bağlı)
- Hedef İstek Sonrası Akışı
Yanıt Ardışık Düzeni:
- Hedef Yanıt Ön Akışı
- Hedef Yanıt Koşullu Akışları (İsteğe Bağlı)
- Hedef Yanıt PostFlow'u
- Proxy Yanıtı Ön Akışı
- Proxy yanıtı koşullu akışları (isteğe bağlı)
- Proxy Yanıtı PostFlow
- PostClientFlow yanıtı (isteğe bağlı)
Yalnızca politika ekleri olan akışların ProxyEndpoint veya TargetEndpoint yapılandırmalarında yapılandırılması gerekir. PreFlow ve PostFlow yalnızca PreFlow veya PostFlow işleme sırasında bir politikanın uygulanması gerektiğinde ProxyEndpoint veya TargetEndpoint yapılandırmasında belirtilmelidir.
Koşullu akışların aksine, PreFlow ve PostFlow öğelerinin sırası önemli değildir. API proxy'si, Endpoint yapılandırmasında nerede göründüklerine bakılmaksızın her zaman her birini işlem hattında uygun noktada yürütür.
Koşullu akışlar
ProxyEndpoints ve TargetEndpoints, sınırsız sayıda koşullu akışı (aynı zamanda "adlandırılmış akışlar" olarak da bilinir) destekler.
API proxy, koşullu akışta belirtilen koşulu test eder ve koşul karşılanırsa koşullu akıştaki işleme adımları API proxy tarafından yürütülür. Koşul karşılanmazsa koşullu akıştaki işleme adımları atlanır. Koşullu akışlar, API proxy'sinde tanımlanan sırayla değerlendirilir ve koşulu karşılanan ilk akış yürütülür.
Koşullu akışlar tanımlayarak bir API proxy'sinde işleme adımlarını aşağıdaki ölçütlere göre uygulayabilirsiniz:
- İstek URI'si
- HTTP fiili (GET/PUT/POST/DELETE)
- Sorgu parametresinin, başlığın ve form parametresinin değeri
- Diğer birçok koşul türü
Örneğin, aşağıdaki koşullu akış yalnızca istek kaynağı yolu /accesstoken olduğunda yürütüleceğini belirtir. /accesstoken yoluyla gelen tüm istekler, akışa eklenen tüm politikalarla birlikte bu akışın yürütülmesine neden olur. İstek yolunda /accesstoken soneki yoksa akış yürütülmez (başka bir koşullu akış yürütülebilir).
<Flows>
<Flow name="TokenEndpoint">
<Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
<Request>
<Step>
<Name>GenerateAccessToken</Name>
</Step>
</Request>
</Flow>
</Flows>Akış Yapılandırma Öğeleri
| Ad | Açıklama | Varsayılan | Zorunlu mu? |
|---|---|---|---|
Flow |
ProxyEndpoint veya TargetEndpoint tarafından tanımlanan bir istek ya da yanıt işleme hattı | ||
Name |
Akışın benzersiz adı. | Yok | Evet |
Condition |
Bir veya daha fazla değişkeni doğru ya da yanlış olarak değerlendiren koşullu ifade. Önceden tanımlanmış PreFlow ve PostFlow türleri dışındaki tüm Akışlar, yürütülmeleri için bir koşul tanımlamalıdır. | Yok | Evet |
Request |
İstek mesajı işleme ile ilişkili ardışık düzen | Yok | Hayır |
Response |
Yanıt mesajı işleme ile ilişkili işlem hattı | Yok | Hayır |
Adım işleme
Koşullu akışların sıralı olarak düzenlenmesi Apigee Edge tarafından zorunlu kılınır. Koşullu akışlar yukarıdan aşağıya doğru yürütülür. Koşulu true olarak değerlendirilen ilk koşullu akış yürütülür ve yalnızca bir koşullu akış yürütülür.
Örneğin, aşağıdaki akış yapılandırmasında, /first veya /second yol sonekini içermeyen tüm gelen istekler ThirdFlow'nin yürütülmesine neden olarak Return404 adlı politikayı zorunlu kılar.
<Flows>
<Flow name="FirstFlow">
<Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
<Request>
<Step><Name>FirstPolicy</Name></Step>
</Request>
</Flow>
<Flow name="SecondFlow">
<Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
<Request>
<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>
</Request>
</Flow>
<Flow name="ThirdFlow">
<Request>
<Step><Name>Return404</Name></Step>
</Request>
</Flow>
</Flows>Kaynaklar
"Kaynaklar" (API proxy'lerinde kullanılacak kaynak dosyaları), politikalar kullanılarak Akışlara eklenebilen komut dosyaları, kod ve XSL dönüşümleridir. Bunlar, yönetim kullanıcı arayüzündeki API proxy düzenleyicisinin "Komut dosyaları" bölümünde görünür.
Desteklenen kaynak türleri için Kaynak dosyaları bölümüne bakın.
Kaynaklar bir API proxy'sinde, ortamda veya kuruluşta saklanabilir. Her durumda, bir kaynak politikada adıyla referans verilir. API Hizmetleri, API proxy'sinden ortama ve kuruluş düzeyine geçerek adı çözer.
Kuruluş düzeyinde depolanan bir kaynağa herhangi bir ortamdaki politikalar tarafından referans verilebilir. Ortam düzeyinde depolanan bir kaynağa, söz konusu ortamdaki politikalar tarafından başvurulabilir. API proxy düzeyinde depolanan bir kaynak yalnızca söz konusu API proxy'sindeki politikalar tarafından referans alınabilir.