Uç nokta özellikleri referansı

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu konuda, mesajlaşma ve bağlantı davranışını kontrol etmek için TargetEndpoint ve ProxyEndpoint yapılandırmalarında ayarlanabilen aktarım özellikleri açıklanmaktadır. TargetEndpoint ve ProxyEndpoint yapılandırmasının tam kapsamı için API proxy yapılandırması referansı bölümüne bakın.

TargetEndpoint aktarım özellikleri

TargetEndpoint yapılandırmalarındaki HTTPTargetConnection öğesi bir grup HTTP taşıma özelliğini tanımlar. Taşıma düzeyinde yapılandırmaları ayarlamak için bu özellikleri kullanabilirsiniz.

Özellikler, TargetEndpoint HTTPTargetConnection öğeleri için aşağıda gösterildiği gibi ayarlanır:

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
    <CommonName>COMMON_NAME_HERE</CommonName>
  </HTTPTargetConnection>
</TargetEndpoint>

TargetEndpoint aktarım mülkü spesifikasyonu

Mülk Adı Varsayılan Değer Açıklama
keepalive.timeout.millis 60000 Bağlantı havuzunda hedef bağlantı için bağlantı boşta kalma zaman aşımı. Havuzdaki bağlantı boşta olarak belirtilen sınırın üzerindeyse bağlantı kapatılır.
connect.timeout.millis

3000

Hedef bağlantı zaman aşımı. Bağlantı zaman aşımı oluşursa Edge, HTTP 503 durum kodu döndürür.

io.timeout.millis 55000

Belirtilen milisaniye süresince okunacak veri yoksa veya yuva, belirtilen milisaniye süresince veri yazmaya hazır değilse işlem zaman aşımı olarak değerlendirilir.

  • HTTP isteği yazılırken zaman aşımı olursa 408, Request Timeout döndürülür.
  • HTTP yanıtı okunurken zaman aşımı olursa 504, Gateway Timeout döndürülür.

Bu değer her zaman sanal ana makinenin proxy_read_timeout özelliğinin değerinden küçük olmalıdır.

Bu değer, Yönlendirici tarafından Mesaj İşleyici ile iletişim kurmak için kullanılan zaman aşımından kısa olmalıdır. Daha fazla bilgi için Yönlendirici zaman aşımını yapılandırma bölümüne bakın.

Daha fazla bilgi için Edge için io.timeout.millis ve api.timeout'u ayarlama bölümüne bakın.

supports.http10 true Bu true ise ve istemci bir 1.0 isteği gönderirse hedefe de bir 1.0 isteği gönderilir. Aksi takdirde 1.1 isteği hedefe gönderilir.
supports.http11 true Bu true ise ve istemci bir 1.1 isteği gönderirse hedefe de bir 1.1 isteği gönderilir. Aksi takdirde, hedefe 1.0 isteği gönderilir.
use.proxy true true olarak ayarlanırsa ve http.properties politikasında proxy yapılandırmaları belirtilirse (yalnızca şirket içi dağıtımlar) hedef bağlantılar belirtilen proxy'yi kullanacak şekilde ayarlanır.
use.proxy.tunneling true Bu değer true olarak ayarlanırsa ve proxy yapılandırmaları http.properties politikasında belirtilirse (yalnızca şirket içi dağıtımlar) hedef bağlantılar belirtilen tüneli kullanacak şekilde ayarlanır. Hedef TLS/SSL kullanıyorsa bu özellik yoksayılır ve mesaj her zaman bir tünel aracılığıyla gönderilir.
enable.method.override false Belirtilen HTTP yöntemi için, hedef hizmete giden istekte bir X-HTTP-Method-Override üst bilgisi ayarlar. Örneğin, <Property name="GET.override.method">POST</Property>
*.override.method Yok Belirtilen HTTP yöntemi için giden istekte bir X-HTTP-Method-Override üst bilgisi ayarlar. Örneğin, <Property name="GET.override.method">POST</Property>
request.streaming.enabled false

Varsayılan olarak (false), HTTP istek yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) daha büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP istek yükleri bir arabelleğe okunmaz, olduğu gibi hedef uç noktaya aktarılır. Bu durumda TargetEndpoint istek akışındaki yük üzerinde çalışan tüm politikalar atlanır. Ayrıca, İstek ve yanıtları akış şeklinde gösterme konusuna da göz atın.

response.streaming.enabled false

Varsayılan olarak (false), HTTP yanıt yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) daha büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true kullanıldığında HTTP yanıt yükleri bir arabelleğe okunmaz, olduğu gibi ProxyEndpoint yanıt akışına aktarılır. Bu durumda TargetEndpoint yanıt akışındaki yük üzerinde çalışan tüm politikalar atlanır. Ayrıca, İstek ve yanıtları akış şeklinde gösterme konusuna da göz atın.

success.codes Yok

Varsayılan olarak Apigee Edge, 4XX veya 5XX HTTP kodunu hata, 1XX, 2XX ve 3XX HTTP kodunu başarılı olarak değerlendirir. Bu özellik, başarı kodlarının açık bir şekilde tanımlanmasını sağlar. Örneğin, 2XX, 1XX, 505; 100, 200 ve 505 HTTP yanıt kodlarını başarılı olarak değerlendirir.

Bu özellik ayarlandığında, varsayılan değerlerin üzerine yazılır. Bu nedenle, 400 HTTP kodunu varsayılan başarı kodları listesine eklemek isterseniz bu özelliği şu şekilde ayarlayın:

<Mülk name="success.codes">1XX,2XX,3XX,400</Mülk>

Yalnızca 400 HTTP kodunun başarılı kod olarak işlenmesini istiyorsanız özelliği şu şekilde ayarlayın:

<property name="success.codes">400</Mülk>

400 HTTP kodu tek başarı kodu olarak ayarlandığında 1XX, 2XX ve 3XX kodları hata olarak değerlendirilir.

compression.algorithm Yok Varsayılan olarak Apigee Edge, istemci isteğiyle aynı sıkıştırma türünü kullanarak istekleri hedefe yönlendirir. İstek, istemciden gzip sıkıştırma gibi bir yöntemle alınırsa, Apigee Edge gzip sıkıştırması kullanarak bu isteği hedeflemeye yönlendirir. Hedeften alınan yanıt "deflate" kullanırsa Apigee Edge deflate'i kullanarak yanıtı istemciye yönlendirir. Desteklenen değerler:
  • gzip: her zaman gzip sıkıştırma kullanarak ileti gönder
  • deflate: her zaman sıkıştırma sıkıştırmayı kullanarak ileti gönder
  • none: İletileri her zaman sıkıştırma olmadan gönder

Şu makaleyi de inceleyebilirsiniz: Apigee, GZIP/deflate sıkıştırmayı kullanarak sıkıştırmayı/sıkıştırmayı açar mı?

request.retain.headers.
enabled
true Varsayılan olarak Apigee Edge, giden iletilerdeki tüm HTTP üstbilgilerini saklar. true olarak ayarlandığında, gelen istekte mevcut olan tüm HTTP üstbilgileri, giden istekte ayarlanır.
request.retain.headers Yok Hedef hizmete giden istekte ayarlanması gereken istekteki belirli HTTP üst bilgilerini tanımlar. Örneğin, User-Agent üstbilgisinde posta geçişini yapmak için request.retain.headers değerini User-Agent olarak ayarlayın. Birden fazla HTTP üst bilgisi virgülle ayrılmış liste olarak belirtilir, örneğin User-Agent,Referer,Accept-Language. Bu özellik request.retain.headers.enabled özelliğini geçersiz kılar. request.retain.headers.enabled değeri false olarak ayarlanırsa request.retain.headers özelliğinde belirtilen tüm üst bilgiler giden mesajda da ayarlanmış olur.
response.retain.headers.
enabled
true Varsayılan olarak Apigee Edge, giden iletilerdeki tüm HTTP üstbilgilerini saklar. true olarak ayarlandığında, hedef hizmetten gelen yanıtta bulunan tüm HTTP üstbilgileri, ProxyEndpoint'e iletilmeden önce giden yanıtta ayarlanır.
response.retain.headers Yok ProxyEndpoint'e iletilmeden önce giden yanıtta ayarlanması gereken yanıttaki belirli HTTP üst bilgilerini tanımlar. Örneğin, Expires üstbilgisinde geçişi yapmak için response.retain.headers değerini Expires olarak ayarlayın. Birden çok HTTP üst bilgisi virgülle ayrılmış liste olarak belirtilir, örneğin Expires,Set-Cookie. Bu özellik response.retain.headers.enabled özelliğini geçersiz kılar. response.retain.headers.enabled, false değerine ayarlanırsa response.retain.headers özelliğinde belirtilen tüm üst bilgiler giden mesajda da ayarlanmış olur.
retain.queryparams.
enabled
true Varsayılan olarak Apigee Edge, giden isteklerdeki tüm sorgu parametrelerini her zaman saklar. true olarak ayarlandığında, gelen istekte bulunan tüm sorgu parametreleri hedef hizmete giden istekte ayarlanır.
retain.queryparams Yok Giden istekte ayarlanacak belirli sorgu parametrelerini tanımlar. Örneğin, istek mesajından apikey sorgu parametresini eklemek için retain.queryparams değerini apikey olarak ayarlayın. Birden fazla sorgu parametresi, virgülle ayrılmış liste olarak belirtilir (örneğin, apikey,environment). Bu özellik, retain.queryparams.enabled özelliğini geçersiz kılar.

ProxyEndpoint aktarım özellikleri

ProxyEndpoint HTTPTargetConnection öğeleri bir grup HTTP aktarım özelliğini tanımlar. Bu özellikler, taşıma düzeyinde yapılandırmaları ayarlamak için kullanılabilir.

Özellikler, ProxyEndpoint HTTPProxyConnection öğelerinde aşağıdaki gibi ayarlanır:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
</ProxyEndpoint>

Sanal ana makineler hakkında daha fazla bilgi için Sanal ana makineler hakkında başlıklı makaleyi inceleyin.

ProxyEndpoint aktarım mülkü özellikleri

Mülk Adı Varsayılan Değer Açıklama
X-Forwarded-For false true olarak ayarlandığında, sanal ana makinenin IP adresi, giden isteğe HTTP X-Forwarded-For üst bilgisinin değeri olarak eklenir.
request.streaming.
enabled
false Varsayılan olarak (false), HTTP istek yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) daha büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP istek yükleri bir arabelleğe okunmaz; TargetEndpoint istek akışına olduğu gibi aktarılır. Bu durumda ProxyEndpoint istek akışındaki yük üzerinde çalışan tüm politikalar atlanır. Ayrıca, İstek ve yanıtları akış şeklinde gösterme konusuna da göz atın.
response.streaming.
enabled
false Varsayılan olarak (false), HTTP yanıt yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) daha büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true kullanıldığında HTTP yanıt yükleri bir arabelleğe okunmaz, istemciye olduğu gibi aktarılır. Bu durumda ProxyEndpoint yanıt akışındaki yük üzerinde çalışan tüm politikalar atlanır. Ayrıca, İstek ve yanıtları akış şeklinde gösterme konusuna da göz atın.
compression.algorithm Yok

Varsayılan olarak Apigee Edge, alınan herhangi bir mesaj için ayarlanan sıkıştırma türünü kullanır. Örneğin, bir istemci gzip sıkıştırma kullanan bir istek gönderdiğinde Apigee Edge, bu isteği gzip sıkıştırma yöntemini kullanarak hedeflemeye yönlendirir. Bu özelliği TargetEndpoint veya ProxyEndpoint'te ayarlayarak sıkıştırma algoritmalarını açıkça uygulanacak şekilde yapılandırabilirsiniz. Desteklenen değerler:

  • gzip: her zaman gzip sıkıştırma kullanarak ileti gönder
  • deflate: her zaman sıkıştırma sıkıştırmayı kullanarak ileti gönder
  • none: İletileri her zaman sıkıştırma olmadan gönder

Şu makaleyi de inceleyebilirsiniz: Apigee, GZIP/deflate sıkıştırmayı kullanarak sıkıştırmayı/sıkıştırmayı açar mı?

api.timeout Yok

Bağımsız API proxy'leri için zaman aşımını yapılandırma

Akış etkinleştirilmiş olsa bile, API proxy'lerini yapılandırarak belirli bir süre geçtikten sonra 504 Gateway Timeout durumunda zaman aşımına uğrayabilirsiniz. Birincil kullanım alanı, yürütülmesi daha uzun süren API proxy'lerine sahip müşteriler içindir. Örneğin, 3 dakikada zaman aşımına uğratmak için belirli proxy'lere ihtiyacınız olduğunu varsayalım. api.timeout ürününü aşağıdaki şekilde kullanırsınız.

  1. Öncelikle yük dengeleyiciyi, yönlendiriciyi ve mesaj işlemcisini, üç dakika sonra zaman aşımına uğrayacak şekilde yapılandırdığınızdan emin olun.
  2. Ardından, ilgili proxy'leri üç dakikada zaman aşımına uğrayacak şekilde yapılandırın. Değeri milisaniye cinsinden belirtin. Örneğin: <Property name="api.timeout">180000</Property>
  3. Bununla birlikte, api.timeout ayarı olmayan tüm proxy'ler yeni ve daha yüksek yük dengeleyici, yönlendirici ve mesaj işlemci zaman aşımlarını kullandığından sistem zaman aşımlarının yükseltilmesinin performans sorunlarına neden olabileceğini unutmayın. Bu nedenle, daha düşük zaman aşımları kullanmak için daha uzun zaman aşımı gerektirmeyen diğer API proxy'lerini yapılandırın. Örneğin, aşağıda bir API proxy'si 1 dakika sonra zaman aşımına uğrayacak şekilde ayarlanır:
    <Property name="api.timeout">60000</Property>

Bu özelliği bir değişkenle ayarlayamazsınız.

Edge zaman aşımlarını değiştiremeyen müşteriler, zaman aşımı süresi 57 saniyelik standart Edge mesaj işlemci zaman aşımından daha kısa olduğu sürece API proxy zaman aşımı süresi de yapılandırabilir.

Daha fazla bilgi için Edge için io.timeout.millis ve api.timeout'u ayarlama bölümüne bakın.

Edge için io.timeout.millis ve api.timeout'u ayarlama

Edge'de io.timeout.millis ve api.timeout işlemleri birbiriyle ilişkilidir. Bir API proxy'sine yapılan her istekte:

  1. Yönlendirici, zaman aşımı değerini Mesaj İşleyici'ye gönderir. Yönlendirici zaman aşımı değeri, isteği işleyen sanal ana makine tarafından ayarlanan proxy_read_timeout değeri veya 57 saniye olan varsayılan zaman aşımı değeridir.
  2. Mesaj İşleyici daha sonra api.timeout özelliğini ayarlar:
    1. api.timeout, proxy düzeyinde ayarlanmadıysa bunu, Yönlendirici zaman aşımı olarak ayarlayın.
    2. api.timeout, proxy düzeyinde ayarlanırsa Mesaj İşleyici'de bunu, Yönlendirici zaman aşımı süresinden daha kısa bir süreye veya api.timeout değerine ayarlayın.
  3. api.timeout değeri, bir API proxy'sinin API isteğinden yanıta kadar yürütmesi gereken maksimum süreyi belirtir.

    API proxy'sindeki her politika yürütüldükten sonra veya Mesaj İşleyici, isteği hedef uç noktaya göndermeden önce Mesaj İşleyici şunları hesaplar (api.timeout, isteğin başlangıcından itibaren geçen süre). Değer sıfırdan küçükse isteği işlemek için maksimum süre sona ermiş ve Mesaj İşleyici 504 değerini döndürür.

  4. io.timeout.millis değeri, hedef uç noktanın yanıt vermesi için gereken maksimum süreyi belirtir.

    Mesaj İşleyici, bir hedef uç noktaya bağlanmadan önce (api.timeout - isteğin başlangıcından itibaren geçen süre) ve io.timeout.millis değerinden düşük olanı belirler. Daha sonra io.timeout.millis öğesini bu değere ayarlar.

    • HTTP isteği yazılırken zaman aşımı olursa 408, Request Timeout döndürülür.
    • HTTP yanıtı okunurken zaman aşımı olursa 504, Gateway Timeout döndürülür.

Node.js uygulamaları için ScriptTarget hakkında

ScriptTarget öğesi, proxy'nize Node.js uygulamasını entegre etmek için kullanılır. Node.js ve ScriptTarget kullanımı hakkında bilgi için bkz.

BarındırılanTarget uç noktaları hakkında

Boş bir <HostedTarget/> etiketi, Edge'e, Barındırılan Hedefler ortamına dağıtılan bir Node.js uygulamasını hedef olarak kullanmasını bildirir. Ayrıntılar için Barındırılan Hedeflere genel bakış sayfasını inceleyin.