Uç nokta özellikleri referansı

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Bu konu, TargetEndpoint ve ProxyEndpoint'te ayarlanabilecek aktarım özelliklerini açıklar yapılandırmaları kullanabilirsiniz. TargetEndpoint'in tam kapsamı için ve ProxyEndpoint yapılandırması için API proxy yapılandırma referansı başlıklı makaleyi inceleyin.

TargetEndpoint aktarımı özellikleri

TargetEndpoint yapılandırmalarındaki HTTPTargetConnection öğesi bir HTTP kümesi tanımlar. taşıma özellikleridir. Aktarım 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 aktarım özelliği Spesifikasyon

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ı. Öğe havuzdaki bağlantı belirtilen sınırın üzerinde boştaysa bağlantı kapalı.
connect.timeout.millis

3000

Hedef bağlantı zaman aşımı. Bir bağlantı varsa Edge bir HTTP 503 durum kodu döndürür zaman aşımına uğrar. LoadBalancer bazı durumlarda HTTP 504 durum kodu döndürebilir. TargetServer tanımında kullanılır ve zaman aşımı olur.

io.timeout.millis 55000

Belirtilen milisaniye boyunca okunacak veri yoksa ya da yuva belirtilen milisaniye süresince veri yazmaya hazır değilse işlem zaman aşımı olarak ele alınır.

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

Bu değer, her zaman sanal ana makinenin proxy_read_timeout özelliğine uyması gerekir.

Bu değer, Mesaj İşleyici ile iletişim kurmak için kullanılan yönlendirici. Daha fazla bilgi için Yönlendirici zaman aşımını yapılandırma daha fazla.

Edge için io.timeout.millis ve api.timeout ayarlarını yapma bölümüne bakın. .

supports.http10 true Bu değer true ise ve istemci bir 1.0 isteği gönderirse, hedefe de 1.0 değeri gönderilir. isteğinde bulunabilirsiniz. Aksi takdirde hedefe 1.1 istek gönderilir.
supports.http11 true Bu değer true ise ve istemci bir 1.1 isteği gönderirse, hedefe de 1.1 değeri gönderilir. isteği yerine getirilebilir, aksi takdirde hedefe 1.0 isteği gönderilir.
use.proxy true true değerine ayarlanırsa ve proxy yapılandırmaları http.properties (yalnızca şirket içi dağıtımlarda), ardından bağlantıları hedefleyin belirtilen proxy'yi kullanacak şekilde ayarlanır.
use.proxy.tunneling true Bu politika true değerine ayarlanırsa ve proxy yapılandırmaları http.properties (yalnızca şirket içi dağıtımlarda), ardından hedefleme bağlantıları, belirtilen tüneli kullanacak şekilde ayarlandı. Hedef TLS/SSL kullanıyorsa bu özelliği 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 bir X-HTTP-Method-Override üst bilgisini giden isteği hedef hizmete gönderir. Örneğin, <Property name="GET.override.method">POST</Property>
*.override.method Yok Belirtilen HTTP yöntemi için bir X-HTTP-Method-Override üst bilgisini giden istek. Ö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. Politikalar ve yük üzerinde beklendiği gibi çalışabilir. Yüklerin arabellek boyutunu (10 MB) ayarlarsanız, bunu özelliğini true ile ilişkilendirebilirsiniz. true olduğunda, HTTP isteği yükleri bir arabelleğe okunmaz; onlar olduğu gibi akışı gerçekleştirilmesini sağlar. Bu durumda, TargetEndpoint istek akışındaki yük atlanır. İstekleri ve yanıtları akış olarak yayınlama başlıklı makaleyi de inceleyin.

response.streaming.enabled false

Varsayılan olarak (false), HTTP yanıt yükleri bir arabelleğe okunur ve ve yük üzerinde beklendiği gibi çalışabilir. Yüklerin arabellek boyutunu (10 MB) ayarlarsanız, bunu özelliğini true ile ilişkilendirebilirsiniz. true olduğunda HTTP yanıt yükleri bir arabelleğe okunmaz; onlar ProxyEndpoint yanıt akışına olduğu gibi aktarılır. Bu durumda, atlanır. Şu kaynakları da inceleyin Akış istekleri ve yanıt olarak gönderin.

success.codes Yok

Apigee Edge varsayılan olarak 4XX veya 5XX HTTP kodunu hata olarak değerlendirir ve HTTP kodunu değerlendirir 1XX, 2XX, 3XX başarılı. Bu özellik, örnek olarak, 2XX, 1XX, 505 tüm 100, 200 ve 505 HTTP yanıt kodlarını aşağıdaki gibi işler: başarılar.

Bu özellik ayarlanırsa varsayılan değerlerin üzerine yazılır. Bu nedenle, Varsayılan başarı kodları listesine 400 HTTP kodu ekleyin, bu özelliği şu şekilde ayarlayın:

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

Yalnızca 400 HTTP kodunun başarı kodu olarak değerlendirilmesini istiyorsanız özelliği ayarlayın yön:

&lt;Property name="success.codes">400</Property>

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

compression.algorithm Yok Varsayılan olarak Apigee Edge, aynı sıkıştırma türünü kullanarak istekleri hedefe yönlendirir kabul etmesini sağlar. İstek, istemciden gzip gibi bir dosya kullanılarak alınıyorsa Ardından Apigee Edge, isteği gzip sıkıştırması kullanarak hedeflemeye yönlendirir. Eğer hedeften alınan yanıt deflate kullanır, ardından Apigee Edge yanıtı müşterinize deflate kullanılmasıdır. Desteklenen değerler:
  • gzip: her zaman gzip sıkıştırması kullanarak ileti gönderin
  • deflate: mesajı her zaman deflate sıkıştırmayı kullanarak gönderir.
  • none: İletiyi her zaman sıkıştırma olmadan gönder

Ayrıca bkz. Apigee, GZIP/deflate sıkıştırma ile sıkıştırma/sıkıştırma açma işlemini destekliyor mu?

request.retain.headers.
enabled
true Varsayılan olarak Apigee Edge giden iletilerdeki tüm HTTP üstbilgilerini her zaman saklar. Ayarlandığında true olarak ayarlanırsa gelen istekte bulunan tüm HTTP üstbilgileri giden istek.
request.retain.headers Yok İstekte giden verilerde ayarlanması gereken belirli HTTP üstbilgilerini tanımlar isteğidir. Örneğin, User-Agent öğesini geçirmek için başlığı, request.retain.headers değerini User-Agent olarak ayarlayın. Birden çok HTTP üstbilgisi, virgülle ayrılmış bir liste olarak belirtilir. Örneğin, User-Agent,Referer,Accept-Language Bu özellik geçersiz kılıyor request.retain.headers.enabled Eğer request.retain.headers.enabled ise belirtilen tüm başlıklar false olarak ayarlandığında, request.retain.headers özelliği hâlâ giden iletide ayarlı.
response.retain.headers.
enabled
true Varsayılan olarak Apigee Edge giden iletilerdeki tüm HTTP üstbilgilerini her zaman saklar. Ayarlandığında true yerine, hedeften gelen yanıtta tüm HTTP üstbilgileri mevcut hizmeti, ProxyEndpoint'e geçirilmeden önce giden yanıtta ayarlanır.
response.retain.headers Yok Yanıtta giden yönlendirmede ayarlanması gereken belirli HTTP üstbilgilerini tanımlar ProxyEndpoint'e geçirilmeden önce gösterilen yanıtı oluşturur. Örneğin, posta yoluyla Expires üstbilgisi, response.retain.headers değerini şu şekilde ayarla: Expires. Birden çok HTTP üstbilgisi, URL'leri göndermek için virgülle ayrılmış liste olarak örnek, Expires,Set-Cookie. Bu özellik geçersiz kılıyor response.retain.headers.enabled Eğer response.retain.headers.enabled, herhangi bir üstbilgide false olarak ayarlandı response.retain.headers özelliğinde belirtilenler, anlamına gelir.
retain.queryparams.
enabled
true Varsayılan olarak Apigee Edge, giden isteklerdeki tüm sorgu parametrelerini her zaman korur. Zaman true olarak ayarlanırsa gelen istekte bulunan tüm sorgu parametreleri şurada ayarlanır: giden isteği hedef hizmete gönderir.
retain.queryparams Yok Giden istekte ayarlanacak belirli sorgu parametrelerini tanımlar. Örneğin, istek mesajındaki apikey sorgu parametresini dahil et, retain.queryparams - apikey. Birden çok sorgu parametresi virgülle ayrılmış liste olarak belirtilir (örneğin, apikey,environment). Bu özelliği retain.queryparams.enabled değerini geçersiz kılar.

ProxyEndpoint aktarımı özellikleri

ProxyEndpoint HTTPTargetConnection öğeleri bir dizi HTTP aktarım özelliği tanımlar. Bu özellikleri, aktarım düzeyindeki yapılandırmaları ayarlamak için kullanılabilir.

Özellikler, ProxyEndpoint HTTPProxyConnection öğelerinde şu şekilde 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 ö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 X-Forwarded-For üstbilgisinin değeri.
request.streaming.
enabled
false Varsayılan olarak (false), HTTP isteği yükleri bir arabelleğe okunur. Politikalar, beklenen şekilde çalışmasını sağlamalısınız. Yüklerin arabellek boyutu (10 MB) olduğundan, bunu özelliğini true ile ilişkilendirebilirsiniz. true olduğunda, HTTP isteği yükleri bir arabelleğe okunmaz; onlar TargetEndpoint istek akışına olduğu gibi aktarılır. Bu durumda, Google'da yürütülen ProxyEndpoint istek akışındaki yük atlanır. İstekleri ve yanıtları akış olarak yayınlama başlıklı makaleyi de inceleyin.
response.streaming.
enabled
false Varsayılan olarak (false), HTTP yanıt yükleri bir arabelleğe okunur ve ve yük üzerinde beklendiği gibi çalışabilir. Yüklerin arabellek boyutunu (10 MB) ayarlarsanız, bunu özelliğini true ile ilişkilendirebilirsiniz. true olduğunda HTTP yanıt yükleri bir arabelleğe okunmaz; onlar olduğu gibi aktarılır. Bu durumda yük üzerinde çalışan tüm politikalar ProxyEndpoint yanıt akışı atlandı. İstekleri ve yanıtları akış olarak yayınlama başlıklı makaleyi de inceleyin.
compression.algorithm Yok

Apigee Edge varsayılan olarak, alınan her mesaj için belirlenen sıkıştırma türünü dikkate alır. Örneğin, Ö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 hedeflemeye yönlendirir. Sıkıştırmayı yapılandırabilirsiniz. veya ProxyEndpoint. Desteklenen değerler:

  • gzip: her zaman gzip sıkıştırması kullanarak ileti gönderin
  • deflate: mesajı her zaman deflate sıkıştırmayı kullanarak gönderir.
  • none: İletiyi her zaman sıkıştırma olmadan gönder

Ayrıca bkz. Apigee, GZIP/deflate sıkıştırma ile sıkıştırma/sıkıştırma açma işlemini destekliyor mu?

api.timeout Yok

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

API proxy'lerini yapılandırabilirsiniz. akış etkinse 504 Gateway Timeout durumundaki belirli bir süreden sonra zaman aşımına uğrar. Birincil kullanım alanı, API proxy'leri olan müşteriler içindir çözümler üretirsiniz. Örneğin, saat 3'te zaman aşımına uğratmak için belirli proxy'lere ihtiyacınız olduğunu dakika. api.timeout ürününü nasıl kullanacağınız aşağıda açıklanmıştır.

  1. Öncelikle yük dengeleyiciyi, yönlendiriciyi ve mesaj işlemcisini üç dakikadan sonra devre dışı bırakılır.
  2. Ardından ilgili proxy'leri üç dakikada zaman aşımına uğrayacak şekilde yapılandırın. Değeri milisaniye cinsinden ayarlanır. Örneğin: <Property name="api.timeout">180000</Property>
  3. Ancak, sistem zaman aşımlarının artırılmasının performans sorunlarına, api.timeout ayarı olmayan tüm proxy'ler yeni, daha yüksek yük kullanır ve mesaj işlemcisi zaman aşımları gösterilebilir. Bu nedenle, başka API proxy'lerini daha düşük zaman aşımları kullanmak için daha uzun zaman aşımları gerektirmez. Örneğin, aşağıda bir API proxy'si 1 dakika sonra zaman aşımına uğrayacak:
    <Property name="api.timeout">60000</Property>

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

Edge zaman aşımlarını değiştiremeyen müşteriler de bir API proxy'si yapılandırabilir standart Edge mesaj işlemcisinden daha kısa bir zaman aşımı olduğu sürece zaman aşımı 57 saniyelik zaman aşımı.

Edge için io.timeout.millis ve api.timeout ayarlarını yapma bölümüne bakın. .

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

Edge'de io.timeout.millis ve api.timeout çalışması bir şablondur. 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 sanal ana makine tarafından ayarlanan proxy_read_timeout değeri veya 57 saniyelik varsayılan zaman aşımı değerini belirleyebilirsiniz.
  2. Ardından İleti İşleyici api.timeout cihazını ayarlar:
    1. api.timeout proxy düzeyinde ayarlanmadıysa Yönlendirici zaman aşımı değerine ayarlayın.
    2. api.timeout proxy düzeyinde ayarlanmışsa Mesaj İşleyici'de bunu Yönlendirici zaman aşımı veya api.timeout değerinden daha düşük bir değere ayarlayabilirsiniz.
  3. api.timeout değeri, API proxy'sinin maksimum süreyi belirtir .

    API proxy'sindeki her politika yürütüldükten sonra, 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ürenin sona erdiği ve Mesaj İşleyen, 504 değerini döndürür.

  4. io.timeout.millis değeri, hedef uç noktanın yerleştirileceği maksimum süreyi cevap vermesi gerekir.

    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. Daha sonra io.timeout.millis bu değere ayarlanır.

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

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

ScriptTarget öğesi, Node.js uygulamasını proxy'nize entegre etmek için kullanılır. Örneğin, Node.js ve ScriptTarget'ı kullanmayla ilgili bilgilere bakın:

HostedTarget uç noktaları hakkında

Boş bir <HostedTarget/> etiketi, Edge'e bir Node.js'yi hedeflemesi olarak kullanmasını söyler Barındırılan Hedefler ortamına dağıtılan bir uygulamadır. Ayrıntılar için bkz. Barındırılan Hedefler'e genel bakış.