Anahtar/değer çiftleriyle çalışma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerini görüntüleyin.

Çalışma zamanında alabilmek için verileri bazen depolamak isteyebilirsiniz. Bunlar, API proxy mantığınıza sabit kodlu olmaması gereken süresi dolmayan verilerdir. Anahtar değer eşlemeleri (KVM'ler) bunun için idealdir. KVM, şifrelenmiş veya şifrelenmemiş anahtar/değer dizesi çiftlerinden oluşan özel bir koleksiyondur. Aşağıda iki örnek sunulmuştur:

Diğer kalıcılık türleri hakkında bilgi edinmek için Önbelleğe alma ve kalıcılık ekleme bölümüne bakın.

KVM senaryoları

Sanal makinelerin kullanışlı olduğu bazı durumlar şunlardır:

  • Test ortamında bir hedef (veya Hizmet Çağrısı) URL'sini, üretim ortamında da başka bir hedef URL'yi çağırması gereken bir API proxy'niz var. URL'yi proxy'nizde sabit olarak kodlamak yerine, proxy'nin hangi ortamda olduğunu algılamasını, ilgili Anahtar/Değer Eşleme İşlemleri politikasını yürütmesini ve oluşturduğunuz KVM'lerden birinden doğru hedef URL'yi almasını sağlayabilirsiniz. Daha sonra, hedeflerinizden biri veya her ikisi de değişirse KVM'leri yeni URL'lerle güncellemeniz yeterlidir. Proxy, yeni değerleri alır ve proxy yeniden dağıtımı gerekmez.
  • Harici hizmetlerin jetonları, OAuth jetonları oluşturmak için gereken kimlik bilgileri veya şifreleme için JavaScript ya da JSON Web Token (JWT) imzalaması için kullanılan özel anahtarlar gibi kimlik bilgilerini, özel anahtarları veya jetonları depolamak istiyorsunuz. İstekte kimlik bilgilerini, anahtarları veya jetonları aktarmak veya bunları proxy mantığınıza sabit bir şekilde kodlamak yerine bunları bir KVM'de (her zaman şifrelenmiş) depolayabilir ve bunları gerektiren hedeflere yapılan çağrılarda dinamik olarak alabilirsiniz.

Anahtar/değer dizesi çiftlerinin depolanmasının yararlı olduğu diğer durumları keşfedeceksiniz. KVM'leri genellikle şu durumlarda kullanabilirsiniz:

  • Kodunuzdaki belirli yerler için çalışma zamanında farklı değerler gerekir.
  • Hassas verilerin kodlanmadan iletilmesi gerekir.
  • Süresi sona ermeyen değerleri önbellekte olduğu gibi depolamak istersiniz.

KVM'lerin kapsamı

Kapsam, "KVM kullanılabilen yerler"dir. KVM'ler şu kapsamlarda oluşturulabilir: organization, environment ve apiproxy.

Örneğin, bir KVM'de yalnızca bir API proxy'si gerekiyorsa KVM'yi apiproxy kapsamında oluşturabilirsiniz. Burada yalnızca söz konusu API proxy'si verilere erişebilir.

Alternatif olarak, test ortamınızdaki tüm API proxy'lerinin bir anahtar/değer eşlemesine erişmesini isteyebilirsiniz. Bu durumda, ortam kapsamında bir anahtar/değer çifti eşlemesi oluşturmanız gerekir. "Üretim" ortamında dağıtılan proxy'ler, "test" ortam kapsamındaki KVM'lere erişemez. Aynı KVM anahtarlarının üretimde kullanılabilir olmasını istiyorsanız "üretim" ortamının kapsamında bir paralel KVM anahtarı oluşturun.

Tüm ortamlarda tüm proxy'lerin aynı KVM'ye erişmesini istiyorsanız KVM'yi organization kapsamında oluşturun.

Şifrelenmiş KVM'ler hakkında

Şifrelenmiş KVM'ler, Apigee tarafından oluşturulan bir AES-128 şifre anahtarıyla şifrelenir. Bir KVM'yi şifrelemek için kullanılan anahtar, KVM kapsamında depolanır. Örneğin, bir kuruluşta, ortam kapsamında oluşturduğunuz tüm şifrelenmiş KVM'ler aynı ortam kapsamlı anahtar kullanılarak oluşturulur.

Edge, şifrelenmiş değerlerin gösterilmesini aşağıdaki şekillerde yönetir. (Şifrelenmiş KVM oluşturma hakkında bilgi edinmek için KVM'leri yönetme ve kullanma başlıklı makaleyi inceleyin.)

Edge kullanıcı arayüzü

Şifrelenmiş anahtar değeri eşlemeleri, kullanıcı arayüzünde (*****) yıldızlarla maskelenen değerleri gösterir. Örneğin:

Management API'si

Management API'sinde şifrelenmiş değerler maskelenmiş olarak döndürülür. Şifrelenmiş bir KVM çağrısında örnek yönetim API'si yanıtı aşağıda verilmiştir:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

İzleme ve hata ayıklama

Şifrelenmiş KVM değerlerini almak için Anahtar Değer Eşleme İşlemleri politikasını kullandığınızda, değeri depolamak için bir değişkenin adını sağlarsınız. Şifrelenmiş bir değer almak için değişken adına "private." ön ekini eklemeniz gerekir. Bu durum, KVM anahtarlarının/değerlerinin İzleme'de görünmesini ve oturumlarda hata ayıklamasını engeller.

Sınırlar

Temel Kalıcılık Hizmetleri (CPS) özelliğinin etkin olduğu kuruluşlarda:

  • KVM adı/tanımlayıcısı büyük/küçük harfe duyarlıdır.
  • Anahtar boyutu 2 KB ile sınırlıdır.
  • Değer boyutu 10 KB ile sınırlıdır.

Private Cloud için Apigee Edge'de her KVM, en fazla 15 MB olmalıdır (bu, anahtar ve değerlerin toplam boyutudur). Bu sınırı aşarsanız Private Cloud için Apigee Edge bir hata döndürür. KVM sanal makinelerinizin boyutunu belirlemek için nodetool cfstats komutunu kullanabilirsiniz.

Daha büyük KVM'ler performansta düşüşe neden olabilir. Bu nedenle, performansı artırmak için büyük, monolitik KVM'leri daha küçük sanal makinelere bölmeniz gerekir.

KVM'leri yönetme ve kullanma

KVM'leri oluşturmak, yönetmek ve kullanmak için çeşitli yöntemler kullanabilirsiniz. Bu bölümde, hem şifrelenmiş hem de şifrelenmemiş KVM oluşturma, ardından bunu almayla ilgili farklı seçenekler açıklanmaktadır.

KVM oluşturma ve güncelleme

KVM'leri aşağıdaki şekillerde oluşturup güncelleyebilirsiniz:

  • Anahtar/Değer Eşlemesi İşlemleri politikası (şifreleme yok)

    Çalışma zamanı KVM'si oluşturmak ve API proxy'leriniz tarafından güncellenmek için Anahtar/Değer Eşlemesi İşlemleri politikasını kullanın. (Politikada, üst öğedeki mapIdentifier özelliğinde KVM adını belirtirsiniz.)

    <InitialEntries> öğesi, politikayı kullanıcı arayüzüne kaydettiğinizde veya API proxy'sini dağıttığınızda (çevrimdışı olarak geliştirdiyseniz) yeni bir KVM'de temel bir giriş grubu oluşturup doldurmanıza olanak tanır. Politikadaki değerler değişirse mevcut değerlerin üzerine yazılır. Yeni anahtar/değer çiftleri mevcut anahtar/değer çiftleriyle birlikte mevcut KVM'ye eklenir.

    <Put> öğesi, önceden mevcut değilse yeni bir KVM oluşturur ve bir veya daha fazla değere sahip bir anahtar oluşturur. KVM zaten varsa anahtar/değer çiftleri eklenir (veya anahtar zaten varsa güncellenir). Bir KVM politikasında birden fazla <Put> öğesi kullanabilirsiniz.

  • Management API'si

    Management API, API proxy'lerinizde çalışma zamanı yerine yönetici olarak KVM'lerle çalışmanız içindir. Örneğin, bir test ortamında KVM'leri silmek ve yeniden oluşturmak için management API'yi kullanan dahili bir komut dosyanız olabilir veya tüm proxy'lerin alması için bir KVM'deki anahtarın değerini sıfırlamak isteyebilirsiniz. (KVM'lerin çalışma zamanını değiştirmek için proxy'lerinizde Anahtar/Değer Eşlemesi İşlemleri politikasını kullanın).

    Anahtar/Değer Haritalar yönetimi API'si, tüm kapsamlarda (kuruluş, ortam ve apiproxy) şifrelenmiş KVM'ler ve anahtar/değer çiftleri oluşturmanıza, bunları güncellemenize ve silmenize olanak tanır.

    Management API ile şifrelenmiş bir KVM oluşturmak için JSON yüküne "encrypted" : "true" ekleyin. KVM'leri yalnızca oluşturduğunuzda şifreleyebilirsiniz. Mevcut bir KVM'yi şifreleyemezsiniz.

  • Yönetim kullanıcı arayüzü

    Edge yönetimi kullanıcı arayüzünde, kullanıcı arayüzünde görünen tek KVM kapsamı olan ortam kapsamlı KVM'leri oluşturabilir ve güncelleyebilirsiniz. Yönetim arayüzü, çalışma zamanında API proxy'leri için KVM verilerini manuel olarak yönetmenin iyi bir yoludur. Daha fazla bilgi için Ortam anahtar/değer eşlemeleri oluşturma ve düzenleme bölümüne bakın.

KVM alma

Şifrelenmiş ve şifrelenmemiş anahtar değeri eşlemelerini Anahtar/Değer Eşlemesi İşlemleri politikası ile alırken küçük bir farkla aynı şekilde alırsınız.

  • Politika: Şifrelenmiş ve şifrelenmemiş KVM'leri almak için Anahtar/Değer Eşlemesi İşlemleri politikasındaki <Get> öğesini kullanın. Küçük farklardan biri, politika kullanılarak şifrelenmiş değerlerin alınmasıdır. Referans konusunun İşlem alma bölümünde açıklandığı gibi, alınan değeri içerecek değişkenin adına "private." ön eki eklemeniz gerekir. Bu önek, API proxy'lerinde hata ayıklarken değeri İzleme ve hata ayıklama oturumlarından gizler.
  • Management API'si: Yönetici yönetimi amacıyla KVM'leri ve anahtar/değer çiftlerini almak için Ortam anahtar/değer çifti eşlemeleri oluşturma ve düzenleme özelliğinden yararlanabilirsiniz. Örneğin, JSON tanımlarını alıp depolayarak KVM'leri yedeklemek istiyorsanız management API'yi kullanın. Bununla birlikte, şifrelenmiş değerlerin API yanıtında ***** olarak gösterildiğini unutmayın.
  • Yönetim kullanıcı arayüzü: API'ler > Ortam Yapılandırması > Anahtar Değer Haritaları (Klasik Edge) veya Yönetici > Ortamlar > Anahtar Değer Haritaları'na (New Edge) giderek yönetim kullanıcı arayüzünde ortam kapsamlı KVM'lerinizi görüntüleyebilirsiniz.

KVM örneği

Bir URL'deki değerleri doldurmak için bir KVM kullanma örneği için https://community.Apigee.com/questions/32727/templatize-target-url-with-kvm-by-environment.html sayfasına bakın.