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ıyla ilgili tüm bilgiler için API proxy'si yapılandırma referansı başlıklı makaleyi inceleyin.

TargetEndpoint transport özellikleri

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

Özellikler, aşağıda gösterildiği gibi TargetEndpoint HTTPTargetConnection öğelerinde 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 transport özelliği Spesifikasyonu

Mülk Adı Varsayılan değer Açıklama
keepalive.timeout.millis 60000 Bağlantı havuzundaki hedef bağlantı için bağlantı boşta kalma zaman aşımı. Havuzdaki bağlantı belirtilen sınırın ötesinde boşta kalırsa 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. Bazı durumlarda, LoadBalancer TargetServer tanımında kullanıldığında ve zaman aşımı oluştuğunda HTTP 504 durum kodu döndürülebilir.

io.timeout.millis 55000

Belirtilen milisaniye sayısı boyunca okunacak veri yoksa veya belirtilen milisaniye sayısı boyunca soket veri yazmaya hazır değilse işlem zaman aşımına uğramış olarak kabul edilir.

  • 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ı gerçekleşirse 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önlendiricinin mesaj işlemcisiyle iletişim kurmak için kullandığı zaman aşımı değerinden küçük olmalıdır. Daha fazla bilgi için Yönlendirici zaman aşımını yapılandırma başlıklı makaleyi inceleyin.

Daha fazla bilgi için Setting io.timeout.millis and api.timeout for Edge başlıklı makaleyi inceleyin.

supports.http10 true Bu true ise ve istemci 1.0 isteği gönderirse hedefe de 1.0 isteği gönderilir. Aksi takdirde, hedefe 1.1 isteği gönderilir.
supports.http11 true Bu true ise ve istemci 1.1 isteği gönderirse hedefe de 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'de (yalnızca şirket içi dağıtımlar) proxy yapılandırmaları belirtilirse hedef bağlantılar belirtilen proxy'yi kullanacak şekilde ayarlanır.
use.proxy.tunneling true Bu ayar true olarak ayarlanırsa ve proxy yapılandırmaları http.properties içinde 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 ileti her zaman tünel üzerinden gönderilir.
enable.method.override false Belirtilen HTTP yöntemi için hedef hizmete giden isteğe bir X-HTTP-Method-Override üstbilgisi ayarlar. Örneğin, <Property name="GET.override.method">POST</Property>
*.override.method Yok Belirtilen HTTP yöntemi için giden isteğe bir X-HTTP-Method-Override başlığı ayarlar. Örneğin, <Property name="GET.override.method">POST</Property>
request.streaming.enabled false

Varsayılan olarak (false), HTTP isteği yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP isteği yükleri arabelleğe okunmaz. Bunlar, hedef uç noktaya olduğu gibi aktarılır. Bu durumda, TargetEndpoint istek akışındaki yük üzerinde çalışan tüm politikalar atlanır. Ayrıca İstek ve yanıt akışı başlıklı makaleye de bakı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) büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP yanıt yükleri bir arabelleğe okunmaz; bunlar ProxyEndpoint yanıt akışına olduğu gibi 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ıt akışı başlıklı makaleye de göz atın.

success.codes Yok

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

Bu özelliği ayarlamak varsayılan değerlerin üzerine yazar. Bu nedenle, varsayılan başarı kodları listesine HTTP kodu 400 eklemek istiyorsanız bu özelliği şu şekilde ayarlayın:

<Property name="success.codes">1XX,2XX,3XX,400</Property>

Yalnızca HTTP kodu 400'nın başarı kodu olarak kabul edilmesini istiyorsanız özelliği şu şekilde ayarlayın:

<Property name="success.codes">400</Property>

HTTP kodu 400 tek başarı kodu olarak ayarlandığında 1XX, 2XX ve 3XX kodları başarısızlık olarak kabul edilir.

compression.algorithm Yok Apigee Edge, varsayılan olarak istekleri hedef cihaza istemci isteğiyle aynı sıkıştırma türünü kullanarak yönlendirir. İstek, örneğin gzip sıkıştırması kullanan bir istemciden alınırsa Apigee Edge, isteği gzip sıkıştırması kullanarak hedefe yönlendirir. Hedeflerden alınan yanıt deflate kullanıyorsa Apigee Edge, yanıtı deflate kullanarak istemciye iletir. Desteklenen değerler:
  • gzip: İletiyi her zaman gzip sıkıştırması kullanarak gönderin.
  • deflate: İletiyi her zaman deflate sıkıştırması kullanarak gönderir.
  • Yok: Mesaj her zaman sıkıştırılmadan gönderilir.

Ayrıca: Apigee, GZIP/deflate sıkıştırmasıyla sıkıştırma/sıkıştırmayı açma işlemlerini destekliyor mu?

request.retain.headers.
enabled
true Apigee Edge, varsayılan olarak giden mesajlardaki tüm HTTP üstbilgilerini her zaman saklar. true olarak ayarlandığında, gelen istekte bulunan tüm HTTP üstbilgileri giden istekte ayarlanır.
request.retain.headers Yok İstekten, hedef hizmete giden istekte ayarlanması gereken belirli HTTP başlıklarını tanımlar. Örneğin, User-Agent başlığını geçirmek 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 false olarak ayarlanırsa request.retain.headers özelliğinde belirtilen üstbilgiler giden iletide ayarlanmaya devam eder.
response.retain.headers.
enabled
true Apigee Edge, varsayılan olarak giden mesajlardaki tüm HTTP üstbilgilerini her zaman saklar. true olarak ayarlandığında, hedef hizmetten gelen yanıttaki tüm HTTP başlıkları, ProxyEndpoint'e iletilmeden önce giden yanıta ayarlanır.
response.retain.headers Yok Yanıtın, ProxyEndpoint'e iletilmeden önce giden yanıtta ayarlanması gereken belirli HTTP üstbilgilerini tanımlar. Örneğin, Expires başlığını geçirmek için response.retain.headers değerini Expires olarak ayarlayın. Birden fazla HTTP üst bilgisi virgülle ayrılmış liste olarak belirtilir (ör. Expires,Set-Cookie). Bu özellik, response.retain.headers.enabled özelliğini geçersiz kılar. response.retain.headers.enabled, false olarak ayarlanırsa response.retain.headers özelliğinde belirtilen tüm üstbilgiler giden iletide ayarlanmaya devam eder.
retain.queryparams.
enabled
true Varsayılan olarak Apigee Edge, giden isteklerdeki tüm sorgu parametrelerini her zaman korur. 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ındaki apikey sorgu parametresini dahil etmek için retain.queryparams değerini apikey olarak ayarlayın. Birden çok sorgu parametresi, virgülle ayrılmış bir 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 dizi HTTP aktarım özelliği tanımlar. Bu özellikler, aktarım 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 transport özelliği Spesifikasyon

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 isteği yükleri bir arabelleğe okunur ve yük üzerinde çalışabilen politikalar beklendiği gibi çalışır. Yüklerin arabellek boyutundan (10 MB) büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP isteği yükleri arabelleğe okunmaz. Bunlar, 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ıt akışı başlıklı makaleye de bakı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) büyük olduğu durumlarda bu özelliği true olarak ayarlayabilirsiniz. true olduğunda HTTP yanıt yükleri arabelleğe okunmaz. Bunlar, olduğu gibi istemciye 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ıt akışı başlıklı makaleye de bakın.
compression.algorithm Yok

Apigee Edge, varsayılan olarak alınan tüm iletiler için ayarlanan sıkıştırma türüne uyar. Örneğin, bir istemci gzip sıkıştırması kullanan bir istek gönderdiğinde Apigee Edge, isteği gzip sıkıştırması kullanarak hedefe iletir. Bu özelliği TargetEndpoint veya ProxyEndpoint'te ayarlayarak sıkıştırma algoritmalarının açıkça uygulanmasını yapılandırabilirsiniz. Desteklenen değerler:

  • gzip: İletiyi her zaman gzip sıkıştırması kullanarak gönderin.
  • deflate: İletiyi her zaman deflate sıkıştırması kullanarak gönderir.
  • Yok: Mesaj her zaman sıkıştırılmadan gönderilir.

Ayrıca: Apigee, GZIP/deflate sıkıştırmasıyla sıkıştırma/sıkıştırmayı açma işlemlerini destekliyor mu?

api.timeout Yok

Tek tek API proxy'leri için zaman aşımını yapılandırma

Akış özelliği etkin olanlar da dahil olmak üzere API proxy'lerini, belirtilen bir süre sonra 504 Gateway Timeout durumuyla zaman aşımına uğrayacak şekilde yapılandırabilirsiniz. Birincil kullanım alanı, yürütülmesi daha uzun süren API proxy'lerine sahip müşteriler içindir. Örneğin, belirli proxy'lerin 3 dakika içinde zaman aşımına uğraması gerektiğini varsayalım. api.timeout simgesini nasıl kullanacağınız aşağıda açıklanmıştır.

  1. Öncelikle yük dengeleyiciyi, yönlendiriciyi ve ileti işlemcisini üç dakika sonra zaman aşımına uğrayacak şekilde yapılandırdığınızdan emin olun.
  2. Ardından, ilgili proxy'leri üç dakika sonra 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. Ancak sistem zaman aşımlarının artırılmasının performans sorunlarına yol açabileceğini unutmayın. Bunun nedeni, api.timeout ayarı olmayan tüm proxy'lerin yeni ve daha yüksek yük dengeleyici, yönlendirici ve mesaj işleme zaman aşımlarını kullanmasıdır. Bu nedenle, daha uzun zaman aşımları gerektirmeyen diğer API proxy'lerini daha düşük zaman aşımları kullanacak şekilde yapılandırın. Örneğin, aşağıdakiler bir API proxy'sinin 1 dakika sonra zaman aşımına uğramasını sağlar:
    <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ı 57 saniyelik standart Edge mesaj işlemcisi zaman aşımından kısa olduğu sürece API proxy'si zaman aşımı da yapılandırabilir.

Daha fazla bilgi için Setting io.timeout.millis and api.timeout for Edge başlıklı makaleyi inceleyin.

Edge için io.timeout.millis ve api.timeout ayarlarını yapma

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

  1. Yönlendirici, zaman aşımı değerini Mesaj İşleyiciye 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 varsayılan zaman aşımı değeri olan 57 saniyedir.
  2. Mesaj İşleyici daha sonra api.timeout ayarlar:
    1. api.timeout, proxy düzeyinde ayarlanmamışsa yönlendirici zaman aşımına ayarlayın.
    2. api.timeout, proxy düzeyinde ayarlanmışsa Mesaj İşleyici'de yönlendirici zaman aşımı veya api.timeout değerinden daha düşük olanına ayarlayın.
  3. api.timeout değeri, bir API proxy'sinin API isteğinden yanıta kadar yürütülmesi 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, (api.timeout - isteğin başlangıcından itibaren geçen süre) değerini hesaplar. Değer sıfırdan küçükse isteği işlemek için ayrılan maksimum süre dolmuş demektir ve Mesaj İşleyici 504 değerini döndürür.

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

    Mesaj İşleyici, hedef uç noktaya bağlanmadan önce şunlardan küçük olanı belirler: (api.timeout - isteğin başlangıcından itibaren geçen süre) ve io.timeout.millis. Ardından io.timeout.millis değerini 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ı gerçekleşirse 504, Gateway Timeout döndürülür.

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

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

Barındırılan hedef uç noktaları hakkında

Boş bir <HostedTarget/> etiketi, Edge'e hedef olarak Hosted Targets ortamına dağıtılan bir Node.js uygulaması kullanmasını söyler. Ayrıntılı bilgi için Barındırılan hedeflere genel bakış başlıklı makaleyi inceleyin.