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ılabilirliklerden yararlanmak için kurulumunuzu Apigee X'e taşımayı seçebilirsiniz.

Bu sayfada, Apigee X'e geçmeden önce yapılandırmanızda ele almanız gereken antipattern'ler ve taşımadan önce farkında olmanız gereken davranış değişiklikleri açıklanmaktadır.

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

API ürünü olmayan uygulamalar

Özet İstemci tarafında değişiklik gerektirir mi? Çö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şkili olmayan bir uygulama ve kimlik bilgisi yapılandırılabilir. 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ü olmayan uygulamalar

Her uygulama kimliğini en az bir API ürünüyle ilişkilendirin. Bunu yapma hakkında daha fazla bilgi için Uygulama kaydetme ve API anahtarlarını yönetme başlıklı makaleyi inceleyin.

En kolay yol, her uygulamaya tüm API ürünlerine erişim atamasıdır. Bu, Apigee Edge'de mümkün olana eşdeğer olacaktır. "En az ayrıcalık" yaklaşımını benimsemek istiyorsanız her uygulama kimlik bilgisinin erişmesi gereken minimum API Ürünleri listesini belirlemeniz gerekir. Bunu, istemci kimliğine göre Apigee Edge Analytics raporlarıyla analiz edebilirsiniz.

Süre sonu olmayan önbelleğe alma

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Önbelleklerin geçerlilik bitiş zamanı yoktur.

Apigee Edge ile Apigee X arasındaki fark:

Apigee Edge Apigee X
Önbellek kaynak tanımlayıcılarının oluşturulmasını, güncellenmesini ve silinmesini destekler. Önbellek kaynak tanımlayıcılarının oluşturulmasını, güncellenmesini veya silinmesini desteklemez.
Hayır

Çözüm: Süresi dolmamış önbelleğe alma

Tüm önbellekler için son kullanma zamanı ayarlayın.

Belirsiz yollarda JSONPath filtre ifadeleri

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

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

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
Çıktılar ‘{"name": "A"}’ Çıktılar []

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

Apigee Edge Apigee X
Çıktılar "A" Çıktılar []
Evet

Çözüm: Belirsiz yollarda JSONPath filtre ifadeleri

Etkilenen sorguları bulup değiştirin.

Mevcut olmayan dizinler için JSONPath ifadeleri

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Mevcut olmayan bir dizin içeren JSONPath ifadeleri, Apigee X'te Apigee Edge'den farklı davranır. 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
Çıktılar null PathNotFoundException hatası verir
Evet

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

Etkilenen sorguları bulup değiştirin.

Dizi dizini içeren ve dizi nesnesi döndürmeyen JSONPath ifadeleri

Özet İstemci tarafında değişiklik gerektirir mi? Çö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
Çıktılar {“name”:”A”, “name”: “B”} Çıktılar [{“name”:”A”, “name”: “B”}]

$.books[-1] ifadesiyle,

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

$.books[-2:] ifadesiyle,

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

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

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 gerektirir mi? Çözüm

Apigee X anahtar mağazası adları yalnızca harf, sayı ve kısa çizgi içerebilir. Edge anahtar mağazası adları bu kısıtlamaları uygulamaz.

Hayır

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

Anahtar deposu adlarını kontrol edin ve gerekirse desteklenmeyen karakterleri kaldıracak şekilde adları güncelleyin.

API proxy'si için dağıtılan birden fazla taban yol

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Bir API proxy'sinin birden fazla düzeltmesi bir ortama 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 yoluna sahip olabileceği bir API proxy'sinin birden fazla revizyonunun dağıtımını destekler. Proxy'nin farklı temel yolları olsa bile API proxy'sinin birden fazla revizyonunun dağıtımını desteklemez.
Hayır

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

Tüm paketleri, temel yola bakılmaksızın bir paketin yalnızca bir düzeltmesinin bir ortama dağıtılması için güncelleyin.

Uyumlu olmayan HTTP mesajları

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

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

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

Hata Ayrıntılar
INVALID_CHARACTERS_IN_HEADER Belirtilen başlıkta bir veya daha fazla yasa dışı karakter bulundu. Geçerli başlık adları İngilizce harflerden, rakamlardan ve kısa çizgilerden oluşur.
MISSING_COLON Başlık adı ve başlık değeri çiftinde : (iki nokta üst üste) eksik.
MULTIPLE_CONTENT_LENGTH Content-Length başlığı için birden fazla değer sağlandı.
CONTENT_LENGTH_NOT_INTEGER Content-Length üst bilgisi değeri 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ılmıyor.
URL_HEADER_SIZE_TOO_LONG İstek URL'si ve üst bilgilerin 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 "POST" veya "PUT" yöntemi için sıfır ("0") Content-Length başlık alanı değeri ayarlandı.
UNSUPPORTED_RESPONSE_PREFIX Yanıt başlığında desteklenmeyen bir "X-Apigee-" başlık ön eki vardı.
Evet, olabilir.

Çözüm: Uyumlu olmayan HTTP mesajları

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

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

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

OAuth 2.0 jetonu 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 zorunlu kılınmıyor ancak zorunlu kılınması planlanıyor. 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 ayarlamanız gerekir. Desteklenen aralıklar:
  • 180 saniye <= OAuth 2.0 erişim jetonunun geçerlilik süresi <= 30 gün
  • 1 gün <= OAuth 2.0 yenileme jetonunun 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 <ExpiresIn> ile <RefreshTokenExpiresIn> arasında geçerlilik bitiş süresini belirtin.

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

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Apigee Edge yapılandırması, tanımlanan ürün sınırlarıyla uyumlu değil. Belgelenmiş ancak Apigee Edge'de zorunlu kılınmayan bazı ürün sınırları Apigee X'te zorunlu kılınmıştı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 hedefi bağlantı belirteçleri içeren ServiceCallout politikaları

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

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

Apigee Edge bu koşulu belgeler ancak zorunlu tutmaz. Apigee X, her iki yapılandırmaya da sahip bir <LocalTargetConnection> ile karşılaşırsa işleme işlemini durdurur.

Hayır

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

ServiceCallout politika yapılandırmalarını kontrol edin ve uygun olmayan tüm <LocalTargetConnection> yapılandırmalarını kaldırın.

Hedef sunucu adı kısıtlamaları

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Apigee X hedef sunucu adları yalnızca harf, sayı, 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 desteklenmeyen karakterleri kaldıracak şekilde adları güncelleyin.

Sanal ana makinede deneme sertifikası

Özet İstemci tarafında değişiklik gerektirir mi? Çö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
"Varsayılan" vhost'u ORG-ENV.apigee.net biçiminde bir alan adını desteklemek için otomatik olarak yapılandırır. Bu alanlarda TLS'ye izin veren "ücretsiz deneme sertifikası" olarak bilinen bir joker karakter sertifikası 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 hazırlamanız gerekir.
Evet

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

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

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

Çözülmemiş DNS

Özet İstemci tarafında değişiklik gerektirir mi? Çözüm

Hedef uç noktalarda çözülmemiş alan adları var.

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 kodu döndürür.
Hayır

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

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