Apigee Edge'den Apigee X'e geçiş anti kalıpları

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

Mevcut bir Apigee Edge müşterisi olarak, yeni özelliklerden veya farklı bölgesel kullanılabilirlikten yararlanmak için kurulumunuzu Apigee X'e taşıyabilirsiniz.

Bu sayfada, Apigee X'e geçmeden önce ele almanız gereken yapılandırmanızdaki anti-desenlerin yanı sıra geçiş yapmadan önce bilmeniz gereken diğer davranış değişiklikleri açıklanmaktadır.

Apigee Edge antipattern'lerinin daha kapsamlı listesinde, her durumda kaçınılması gereken kullanım uygulamaları açıklanmaktadır. Bu sayfada, belirli önerilmeyen kullanım uygulamaları açıklanmaktadır. Bu uygulamalar, taşıma işlemini engeller. Apigee X'e geçiş sırasında sorun yaşamamak için bu sorunları hemen çözün.

API ürünü içermeyen uygulamalar

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

API ürünü olmayan uygulamalar var.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
Herhangi bir API ürünüyle ilişkilendirilmemiş bir uygulama ve kimlik bilgisi yapılandırmak mümkündür. Bu uygulama, tüm API ürünlerine erişebilir. Her uygulama, en az bir API ürününe erişecek şekilde yapılandırılmalıdır. Tüm API ürünlerine dolaylı olarak erişim sağlamanın bir yolu yoktur. Bir uygulamayı tüm API ürünlerine erişecek şekilde yapılandırabilirsiniz ancak bunu açıkça yapmanız gerekir.
Sıra

Çözüm: API ürünü içermeyen uygulamalar

Her uygulama kimlik bilgisini en az bir API ürünüyle ilişkilendirin. Bu işlemi nasıl yapacağınız hakkında daha fazla bilgi için Uygulamaları kaydetme ve API anahtarlarını yönetme başlıklı makaleyi inceleyin.

Kolay bir yöntem, her uygulamaya tüm API ürünlerine erişim izni vermektir. Bu, Apigee Edge'de mümkün olanlarla eşdeğer olacaktır. "En az ayrıcalık" yaklaşımını benimsemek isterseniz her uygulama kimlik bilgisinin erişmesi gereken minimum API ürünü listesini belirlemeniz gerekir. Bu durumu, istemci kimliğine dayalı Apigee Edge Analytics raporlarıyla analiz edebilirsiniz.

Geçerlilik süresi olmayan önbellek

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Önbelleklerin geçerlilik bitiş süresi yoktur.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
Önbellek kaynağı tanımlayıcılarının oluşturulmasını, güncellenmesini ve silinmesini destekler. Önbellek kaynağı tanımlayıcılarının oluşturulması, güncellenmesi veya silinmesi desteklenmez.
Hayır

Çözüm: Geçerlilik süresi olmayan önbellek

Tüm önbellekler için geçerlilik bitiş zamanı ayarlayın.

Kesin olmayan yollarda JSONPath filtre ifadeleri

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Kesin olmayan yollar için filtre ifadelerinin sonucunu sorgulamak JSONPath spesifikasyonunun bir parçası değildir. https://goessner.net/articles/JsonPath/ adresini inceleyin.

Apigee Edge ile Apigee X arasındaki fark:

Bu örnek yapıda gezinirken

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$..books[?(@.name == 'A')][0] ifadesiyle,

Apigee Edge Apigee X
Çıkışlar ‘{"name": "A"}’ Çıkışlar []

$..books[?(@.name == 'A')][0].name ifadesiyle,

Apigee Edge Apigee X
Çıkışlar "A" Çıkışlar []
Evet

Çözüm: Belirli olmayan yollarda JSONPath filtre ifadeleri

Etkilenen sorguları bulup değiştirin.

Mevcut olmayan dizinler için JSONPath ifadeleri

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Mevcut olmayan bir dizine sahip JSONPath ifadeleri, Apigee X ile Apigee Edge'de farklı davranışlara sahiptir. Apigee X, yol bulunamadığında PathNotFoundException hatası döndürür.

Apigee Edge ile Apigee X arasındaki fark:

Bu örnek yapıda gezinirken

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books[3] ifadesiyle,

Apigee Edge Apigee X
Çıkışlar null Çıktılar PathNotFoundException hatası
Evet

Çözüm: Mevcut olmayan dizinler için JSONPath ifadeleri

Etkilenen sorguları bulup değiştirin.

Dizi dizini içeren JSONPath ifadeleri dizi nesnesi döndürmüyor

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Dizi dizini veya dilim içeren JSONPath ifadeleri, Apigee X'te bir dizi nesnesi döndürür.

Apigee Edge ile Apigee X arasındaki fark:

Bu örnek yapıda gezinirken

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books ifadesiyle,

Apigee Edge Apigee X
Çıkışlar {“name”:”A”, “name”: “B”} Çıkışlar [{“name”:”A”, “name”: “B”}]

$.books[-1] ifadesiyle,

Apigee Edge Apigee X
Çıkışlar {“name”: “B”} Çıkışlar [{“name”: “B”}]

$.books[-2:] ifadesiyle,

Apigee Edge Apigee X
Çıkışlar {“name”:”A”, “name”: “B”} Çıkışlar [{“name”:”A”, “name”: “B”}]
Evet

Çözüm: Dizi dizini içeren JSONPath ifadeleri dizi nesnesi döndürmüyor

Yükseltme işleminden sonra farklı sonuçlar döndürebilecek ifadeleri bulup değiştirin.

Anahtar deposu adı kısıtlamaları

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Apigee X anahtar deposu adları yalnızca harf, rakam ve kısa çizgi içerebilir. Edge anahtar deposu adlarında bu kısıtlamalar uygulanmaz.

Hayır

Çözüm: Anahtar deposu adı kısıtlamaları

Anahtar deposu adlarını kontrol edin ve gerekirse desteklenmeyen karakterleri kaldırmak için adları güncelleyin.

Bir API proxy'si için birden fazla temel yol dağıtıldı

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Bir ortamda bir API proxy'sinin birden fazla düzeltmesi dağıtılır ve her düzeltmenin farklı bir temel yolu vardır.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
Her revizyonun farklı bir temel yola sahip olabileceği bir API proxy'sinin birden fazla revizyonunun dağıtımını destekler. Proxy'nin farklı temel yolları olsa bile bir API proxy'sinin birden fazla revizyonunun dağıtımını desteklemez.
Hayır

Çözüm: Bir API proxy'si için birden fazla temel yol dağıtıldı

Temel yoldan bağımsız olarak, bir paketin yalnızca bir düzeltmesinin ortama dağıtılması için tüm paketleri güncelleyin.

Uyumlu olmayan HTTP mesajları

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

İstemciler veya API Proxy, HTTP standardına uymayan mesajlar (istekler veya yanıtlar) gönderir. Örneğin, geçersiz üstbilgi adları, bazı kısıtlanmış üstbilgilerde tekrarlar vb.

API yürütmenizde aşağıdaki hatalardan biri veya daha fazlası varsa Apigee X'e geçiş yapamazsınız:

Hata Ayrıntılar
INVALID_CHARACTERS_IN_HEADER Belirtilen üstbilgide bir veya daha fazla yasa dışı karakter bulundu. Geçerli başlık adları İngilizce harfler, rakamlar ve tirelerden oluşur.
MISSING_COLON Başlık adı ve başlık değeri çiftinde : (iki nokta) eksik.
MULTIPLE_CONTENT_LENGTH Content-Length başlığı için birden fazla değer sağlandı.
CONTENT_LENGTH_NOT_INTEGER Content-Length üstbilgi değeri bir tam sayı değil.
INVALID_UPGRADE Yükseltme üstbilgisi yalnızca WebSocket bağlantılarını etkinleştirmek için kullanılmalıdır ancak kullanılmamaktadır.
URL_HEADER_SIZE_TOO_LONG İstek URL'si ve üstbilgilerinin toplam boyutu, izin verilen maksimum boyut olan 15 KB'ı aşıyor.
BODY_NOT_ALLOWED "GET", "DELETE", "TRACE", "OPTIONS" ve "HEAD" yöntemlerinde mesaj gövdesine izin verilmez.
UNSUPPORTED_HTTP_VERSION İstek için 1.1 dışında bir HTTP sürümü kullanılıyor ve bu sürüm desteklenmiyor.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT Bir "POST" veya "PUT" yöntemi için sıfır ("0") Content-Length üstbilgi alanı değeri ayarlandı.
UNSUPPORTED_RESPONSE_PREFIX Yanıt başlığında desteklenmeyen bir "X-Apigee-" başlık öneki vardı.
Evet, olabilir.

Çözüm: Uygun olmayan HTTP mesajları

Apigee X'e geçmeden önce HTTP protokollerindeki hataları düzeltmeniz gerekir. Bir hata istemci uygulamasından kaynaklanıyorsa istemci uygulamasının geliştiricisinden sorunu düzeltmesini istemeniz gerekir.

OAuth 2.0 jetonunun geçerlilik süresi geçersiz

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

OAuth 2.0 jeton geçerlilik süresi sınırları, belirtilen aralığın dışında.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
OAuth 2.0 jetonunun geçerlilik süresiyle ilgili herhangi bir kısıtlama şu anda uygulanmamaktadır ancak uygulanması planlanmaktadır. Sınırlar sayfasının OAuth bölümündeki yönergelere bakın. OAuth 2.0 için erişim jetonu ve yenileme jetonu geçerlilik süresi belirlemeniz gerekir. Desteklenen aralıklar şunlardır:
  • 180 saniye <= OAuth 2.0 erişim jetonu geçerlilik süresi <= 30 gün
  • 1 gün <= OAuth 2.0 yenileme jetonu geçerlilik süresi <= 2 yıl
Hayır

Çözüm: OAuth 2.0 jetonunun geçerlilik süresi geçersiz

OAuthV2 politikasını kullanın ve geçerlilik bitiş zamanını <ExpiresIn> ve <RefreshTokenExpiresIn> içinde belirtin.

Ürün sınırları aşıldı

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Apigee Edge'in yapılandırması, tanımlanan ürün sınırlarına uygun değil. Apigee Edge'de belgelenen ancak zorunlu kılınmayan bazı ürün sınırları, Apigee X'te zorunlu kılınır.

Hayır

Çözüm: Ürün sınırları aşıldı

Apigee X'e geçmeden önce ürün sınırlarını aşan tüm kullanımları düzeltin.

Hem uç nokta hem de yol hedef bağlantı belirleyicileri içeren ServiceCallout politikaları

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

ServiceCallout politikasında <LocalTargetConnection> öğesi, <APIProxy> ve <ProxyEndpoint> öğelerini ya da <Path> öğesini içermeli ancak ikisini birden içermemelidir. Daha fazla bilgi için <LocalTargetConnection> öğesine bakın.

Apigee Edge bu şartı belgeler ancak zorunlu kılmaz. Apigee X, her iki yapılandırmayla da <LocalTargetConnection> ile karşılaşırsa işlemeyi durdurur.

Hayır

Çözüm: Hem uç nokta hem de yol hedef bağlantı belirleyicileri içeren ServiceCallout politikaları

ServiceCallout politika yapılandırmalarını kontrol edin ve uyumlu olmayan <LocalTargetConnection> yapılandırmaları kaldırın.

Hedef sunucu adı kısıtlamaları

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Apigee X hedef sunucu adları yalnızca harf, rakam, kısa çizgi ve nokta içerebilir. Edge hedef sunucu adları bu kısıtlamaları uygulamaz.

Hayır

Çözüm: Hedef sunucu adı kısıtlamaları

Hedef sunucu adlarını kontrol edin ve gerekirse adları güncelleyerek desteklenmeyen karakterleri kaldırın.

Sanal ana makinede deneme sertifikası

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Bir veya daha fazla sanal ana makine, Apigee tarafından sağlanan "ücretsiz deneme" sertifikasını kullanıyor. Bu, sanal ana makinenin ORG-ENV.apigee.net gibi alanlardaki isteklere yanıt vermesine neden olur.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
ORG-ENV.apigee.net biçimindeki bir alan adını desteklemek için "varsayılan" sanal ana makineyi otomatik olarak yapılandırır. Bu alanlarda TLS'ye izin veren "ücretsiz deneme sertifikası" olarak bilinen bir joker sertifika vardır. ORG-ENV.apigee.net biçimindeki eski Apigee alanları Apigee X'te kullanılamaz. Kendi alan adınızı yapılandırmanız ve sertifikaları uygun şekilde sağlamanız gerekir.
Evet

Çözüm: Sanal ana makinede deneme sertifikası

Kendi alanınızı yapılandırmanız ve sertifikaları uygun şekilde sağlamanız gerekir.

ORG-ENV.apigee.net biçimindeki eski alan adına bağlı olan tüm istemci uygulamaları, yeni alanı çağıracak şekilde değiştirilmelidir.

Çözümlenmemiş DNS

Özet İstemci tarafında değişiklik yapılması gerekiyor mu? Çözüm

Hedef uç noktaların alan adları çözümlenmemiş.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
DNS çözümlemesi başarısız olursa Apigee, alan adına .apigee.com ekler ve DNS, 4xx yanıt koduyla başarıyla çözümlenir. DNS çözümleme başarısız olursa Apigee isteği yürütmez ve 5xx yanıt kodunu döndürür.
Hayır

Çözüm: Çözümlenmemiş DNS

Hedef uç noktayı geçerli bir alan adıyla güncelleyin.