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

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

Bazı durumlarda verileri çalışma zamanında almak üzere depolamak isteyebilirsiniz. Bunlar, API proxy mantığınıza sabit olarak kodlanmaması gereken ve süresi dolmayan verileri içerir. Anahtar/değer eşlemeleri (KVM'ler) bunun için idealdir. KVM, şifrelenmiş veya şifrelenmemiş anahtar/değer Dize ç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ı

KVM'lerin yararlı olduğu bazı durumlar aşağıda belirtilmiştir:

  • Test ortamında bir hedef (veya Hizmet Çağrı URL'si) URL'sini ve üretim ortamında başka bir hedef URL'yi çağırması gereken bir API proxy'niz var. Proxy'nize URL'leri sabit 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'lerin 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'nin yeniden dağıtımı gerekmez.
  • Kimlik bilgilerini, özel anahtarları veya jetonları (ör. harici hizmetler için jetonlar, OAuth jetonları oluşturmak için gereken kimlik bilgileri ya da şifreleme veya JSON Web Token (JWT) imzalama için JavaScript'te ya da Java Açıklama Metinleri'nde kullanılan özel anahtarlar) depolamak istiyorsanız. Kimlik bilgilerini, anahtarları veya jetonları istekte iletmek ya da proxy mantığınıza sabit olarak 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 Dize çiftlerinin depolanmasının yararlı olduğu diğer durumları keşfedeceksiniz. Genel olarak, şu durumlarda KVM'leri kullanmayı düşünün:

  • Kodunuzdaki belirli yerler, çalışma zamanında farklı değerler gerektirir.
  • Hassas verilerin sabit kodlanmadan aktarılması gerekir.
  • Bir önbellek gibi süresi dolmayan değerleri depolamak istersiniz.

KVM'lerin kapsamı

Kapsam, "bir KVM'nin bulunduğu yerler" anlamına gelir. KVM'ler şu kapsamlarda oluşturulabilir: organization, environment ve apiproxy.

Örneğin, bir KVM'de yalnızca bir API proxy'si için veri gerekiyorsa KVM'yi apiproxy kapsamında oluşturabilirsiniz. Burada yalnızca bu 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 eşlemesi oluşturursunuz. "Ü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 "prod" ortamını kapsayan bir paralel KVM oluşturun.

Tüm ortamlardaki 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 saklanı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örüntülenmesini aşağıdaki şekillerde işler. (Şifrelenmiş KVM'ler oluşturma hakkında bilgi için KVM'leri yönetme ve kullanma bölümüne bakın.)

Edge kullanıcı arayüzü

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

Management API'si

Management API'de şifrelenmiş değerler maskelenmiş olarak döndürülür. Aşağıda, Şifrelenmiş KVM çağrısıyla ilgili örnek Management API yanıtı gösterilmektedir:

{
  "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ğeri 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 ve hata ayıklama oturumlarında görünmesini engeller.

Sınırlar

Temel Kalıcılık Hizmetleri (CPS) etkinleştirilmiş olan 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 15 MB'ı aşmamalıdır (bu, anahtarların ve değerlerin toplam boyutudur). Bu sınırı aşarsanız Private Cloud için Apigee Edge hata döndürür. KVM'lerinizin boyutunu belirlemek için nodetool cfstats komutunu kullanabilirsiniz.

Daha büyük KVM'ler performansın düşmesine neden olabilir. Bu nedenle, performansı artırmak için büyük, monolitik KVM'leri küçüklere bölmeniz gerekir.

KVM'leri yönetme ve kullanma

KVM'leri çeşitli şekillerde oluşturabilir, yönetebilir ve kullanabilirsiniz. Bu bölümde, hem şifrelenmiş hem de şifrelenmemiş KVM'leri oluşturmak ve almak için kullanabileceğiniz farklı seçenekler açıklanmaktadır.

KVM oluşturma ve güncelleme

KVM'leri aşağıdaki yöntemlerle oluşturabilir ve güncelleyebilirsiniz:

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

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

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

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

  • Management API'si

    Management API'si, API proxy'lerinizdeki çalışma zamanı yerine yönetici olarak KVM'lerle çalışmak 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'de bir anahtarın değerini sıfırlamak isteyebilirsiniz. (KVM'lerin çalışma zamanı değiştirme işlemi için proxy'lerinizde Anahtar Değer Eşleme İşlemleri politikasını kullanın).

    Anahtar/Değer Haritaları Yönetim API'si tüm kapsamlarda (kuruluş, ortam ve apiproxy) şifrelenmiş KVM'ler ve anahtarlar/değerler oluşturmanıza, 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ştururken şifreleyebilirsiniz. Mevcut bir KVM'yi şifreleyemezsiniz.

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

    Edge yönetim kullanıcı arayüzünde, kullanıcı arayüzünde görünen tek KVM kapsamı olan ortam kapsamlı KVM'leri oluşturup güncelleyebilirsiniz. Yönetim kullanıcı 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 konusuna bakın.

KVM'leri alma

Anahtar/Değer Eşlemesi İşlemleri Politikası ile alma sırasında, şifrelenmiş ve şifrelenmemiş anahtar değeri eşlemelerini de aynı şekilde alırsınız.

  • Politika: Şifrelenmiş ve şifrelenmemiş KVM'leri almak için Anahtar Değer Eşleme İşlemleri politikasındaki <Get> öğesini kullanın. Küçük bir fark, politika ile şifrelenmiş değerlerin alınmasıdır. Alınan değeri içerecek değişkenin adına, referans konunun İşlem alma bölümünde açıklandığı gibi bir "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önetim amacıyla, KVM'ler ve anahtarlar/değer çiftleri almak için Ortam anahtar/değer çifti eşlemeleri oluşturma ve düzenleme sayfasını kullanabilirsiniz. Örneğin, JSON tanımlarını alıp depolayarak KVM'leri yedeklemek istiyorsanız Management API'yi kullanın. Ancak şifrelenmiş değerlerin API yanıtında ***** olarak gösterildiğini unutmayın.
  • Yönetim Kullanıcı Arayüzü: Yönetim kullanıcı arayüzünde API'ler > Ortam Yapılandırması > Anahtar/Değer Haritaları'na (Klasik Edge) veya Yönetici > Ortamlar > Anahtar/Değer Eşlemeleri'ne (Yeni Edge) giderek ortam kapsamlı KVM'lerinizi görüntüleyebilirsiniz.

KVM örneği

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