KeyValueMapOperations politikası

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

Edge kullanıcı arayüzündeki Anahtar/Değer Eşleme İşlemleri simgesi

Ne?

Apigee Edge'de bulunan bir Anahtar/Değer Eşleme (KVM) deposuna politikaya dayalı erişim sağlar. Anahtar/değer çiftleri, adlandırılmış mevcut haritalar üzerinde yapılandırılarak depolanabilir, alınabilir ve bu haritalardan silinebilir PUT, GET veya DELETE işlemlerini belirten KeyValueMapOperations politikaları. (En az biri (bu işlemler politika tarafından yapılmalıdır.)

Videolar

KVM'ler hakkında daha fazla bilgi edinmek için aşağıdaki videoları izleyin.

Video Açıklama
Neden Anahtar Değer Haritalar? KVM'lere neden ihtiyacınız olduğunu ve nasıl çalıştıklarını öğrenin.
Aşağıdakileri kullanarak KVM oluşturun: Çalışma zamanında kullanıcı arayüzü ve KVM'yi alma KVM oluşturma, KVM politikası kullanarak değerini alma ve değeri API'ye ekleme isteğidir.
Oluşturma ve güncelleme API çalışma zamanında bir KVM KVM politikası kullanarak API çalışma zamanında bir KVM oluşturun.
KVM'yi önbelleğe al: performansı artırma Verileri önbelleğe alarak KVM Politikasının performansını iyileştirin.
Şifrelenmiş biçimde depola KVM Hassas bilgileri KVM'de şifrelenmiş biçimde depolayın ve değeri şuradan alın: ve gizli değişkenleri kullanarak çalışma zamanını ölçebilir.
Erişimi yönet kullanma KVM kullanarak KVM'yi kuruluş, ortam, API proxy'si veya API proxy revizyonuyla kısıtlama politika kapsamı özelliğine sahiptir.
KVM'yi silin API çalışma zamanında girişler API çalışma zamanındaki KVM girişlerini, KVM politikası DELETE işlemini kullanarak silin.

Örnekler

Değişmez değer ile PUT KVM

Aşağıdaki politika çalıştığında, adlı bir şifrelenmiş KVM oluşturulur. FooKVM, daha sonra FooKey_1 ve foo ve bar düz dizeleriyle ayarlanmış iki değer (değişkenlerden ayıklanan değerlerle ayarlanmaz). Google Takvim widget'ını GET sonraki örnekte anahtar, bir dizin numarası belirtirsiniz almak için kullanabilirsiniz.

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="FooKVM" mapIdentifier="FooKVM">
  <DisplayName>FooKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Put>
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
    <Value>foo</Value>
    <Value>bar</Value>
  </Put>
</KeyValueMapOperations>

Kapsamın "ortam" olduğuna dikkat edin. Bu, yönetim bölümünde KVM'nin Kullanıcı arayüzünde API'ler > Ortam Yapılandırması > Anahtar/Değer Eşlemeleri. KVM'ler tüm seçenekler seçilen ortama ayarlanır.

Değişmez değerden KVM ALMA

Bu politikada, önceki örnekteki FooKVM haritasına bakılır ve FooKey_1 anahtarından ikinci değer (index="2") alır ve bunu bir değişkende depolar adı foo_variable.

<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
  <DisplayName>GetKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Get assignTo="foo_variable" index="2">
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
  </Get>
</KeyValueMapOperations>

Değişkenli PUT KVM

URL kısaltma hizmeti, kullanışlı bir anahtar/değer çifti eşlemesine örnek olarak verilebilir. Anahtar/değer eşlemesi kısaltılmış URL'leri karşılık gelen tam URL'lerle birlikte depolayacak şekilde yapılandırılabilir.

Bu politika örneği, bir anahtar/değer eşlemesi oluşturur. Politika, ilişkili iki değere sahip bir anahtar ekler adlı bir anahtar/değer eşlemesine dönüştürülebilir.

<KeyValueMapOperations name="putUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Put override="true">
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/>
      </Key>
      <Value ref="urlencoding.longurl.encoded"/>
      <Value ref="request.queryparam.url"/>
   </Put>
</KeyValueMapOperations>

Bu örnekteki urlencoding.requesturl.hashed anahtar, bir örneğidir. özelleştirilebilen değişken Karma oluşturma işlemi uygulanmış istek URL'si, kod tarafından (JavaScript veya Java, örnek) bulunur ve ardından KeyValuemapOperations politikasının somut olarak ortaya koyar.

Her bir requesturl.hashed anahtarı için iki değer depolanır:

  • urlencoding.longurl.encoded adlı özelleştirilebilen değişkenin içeriği
  • Önceden tanımlanmış request.queryparam.url değişkeninin içeriği

Örneğin, politika çalışma zamanında yürütüldüğünde, değişkenlerin değerleri şöyle olur:

  • urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1be
  • urlencoding.longurl.encoded: http://tinyurl.com/38lwmlr
  • request.queryparam.url: http://apigee.com

Aşağıdaki anahtar/değer eşlemesi ve giriş, Edge'in anahtar/değer deposunda oluşturulur ve politikanın eklendiği API proxy'sinin kapsamındadır:

{
    "entry" :[ 
        {
            "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be",
            "value" : "http://tinyurl.com/38lwmlr,http://apigee.com"
        }
    ],
    "name" : "urlMapper"
}

Giriş, silinene kadar değişmeden kalır. Anahtar/değer çifti depo girişleri örneklerinden biridir.

Bir değişkenden KVM ALMA

Faydalı bir anahtar/değer çifti eşlemesine örnek olarak URL "kısaltması" verilebilir. geliştirmenizi sağlar. Anahtar/değer eşlemesi kısaltılmış URL'leri karşılık gelen tam URL'lerle birlikte depolayacak şekilde yapılandırılabilir.

Anahtar/değer eşleme girişinin değerini (örneğin, KeyValueMapOperations PUT sekmesinde, anahtar değer eşlemesini ALMAK için bir politika yapılandırın:

<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Get assignTo="urlencoding.shorturl" index='1'>
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/> 
      </Key>
   </Get>
</KeyValueMapOperations>

Bu politika yürütüldüğünde, urlencoding.requesturl.hashed değişkeni ed24e12820f2f900ae383b7cc4f2b31c402db1be ve ardından urlencoding.shorturl, şu değerle ayarlanacak http://tinyurl.com/38lwmlr.

Veriler alındığına göre diğer politikalar ve kodlar verileri ayıklayarak değeri için de kullanabilirsiniz.

KVM'den şifrelenmiş değer AL

Bir anahtar/değer eşlemesi şifrelenmişse değerleri "private." kullanarak alın ön ekini assignTo özellik değerinde ekleyin. Bu örnekte, değişken private.encryptedVar, anahtar/değer eşlemesinin şifresi çözülmüş değerini foo tuşu. Şifrelenmiş anahtar/değer eşlemeleri oluşturma hakkında bilgi edinmek için "Oluşturma" Anahtar/Değer Haritaları'nın konuları yönetim API'si hakkında daha fazla bilgi edinin.

<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map">
   <Scope>apiproxy</Scope>
   <Get assignTo="private.encryptedVar" index='1'>
      <Key>
         <Parameter>foo</Parameter> 
      </Key>
   </Get>
</KeyValueMapOperations>

Veriler alındığına göre diğer politikalar ve kodlar verileri ayıklayarak o değişkendeki değer.


Öğe referansı

Öğe referansı, KeyValueMapOperations öğelerini ve özelliklerini açıklar politika:

<KeyValueMapOperations async="false" continueOnError="false" 
    enabled="true" name="Key-Value-Map-Operations-1" 
    mapIdentifier="urlMapper" >
   <DisplayName>Key Value Map Operations 1</DisplayName>
   <Scope>environment</Scope>
   <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
   <InitialEntries>
      <Entry>
         <Key>
            <Parameter>key_name_literal</Parameter>
         </Key>
         <Value>value_literal</Value>
      </Entry>
      <Entry>
         <Key>
            <Parameter>variable_name</Parameter>
         </Key>
         <Value>value_1_literal</Value>
         <Value>value_2_literal</Value>
      </Entry>
   </InitialEntries>
   <Put override="false">
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value ref="variable_name"/>
   </Put>
   <Get assignTo="myvar" index="1">
      <Key>
         <Parameter ref="variable_name"/>
      </Key>
   </Get>
   <Delete>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
   </Delete>
</KeyValueMapOperations>

&lt;KeyValueMapOperations&gt; özellikler

Aşağıdaki örnekte <KeyValueMapOperations> etiketindeki özellikler gösterilmektedir:

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">

Aşağıdaki tabloda <KeyValueMapOperations> etiketine özgü özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
mapIdentifier

Web geliştiricisi tarafından oluşturulan bir haritaya erişirken kullanılacak tanımlayıcıyı belirtir politikasına veya yönetim arayüzünde bulunabilir.

KVM adı, Herkese Açık Bulut için Apigee Edge ile büyük/küçük harfe duyarlıdır. Örneğin, foobar ile FooBar değerleri birbirinden farklıdır.

Bu özelliği hariç tutarsanız kvmap adlı bir KVM kullanılır.

Kuruluş/ortam/apiproxy kapsamında, mapIdentifier özelliğini kullanabilirsiniz.

Yok İsteğe bağlı

Aşağıdaki tabloda tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
name

Politikanın dahili adı. name özelliğinin değeri Harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

Politikayı devre dışı bırakmak için false değerine ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanır.

true İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi çıkarırsanız politikanın name özelliğinin değeri: kullanılır.

Varlık İsteğe bağlı
Tür Dize

&lt;Delete&gt; öğe

Belirtilen anahtar/değer çiftini siler. En az bir <Get>, <Put> veya <Delete> kullanılmalıdır.

mapIdentifier özelliğiyle KVM'nin adını belirtmeyi unutmayın öğesine dokunun. Örneğin:

<Delete>
   <Key>
      <Parameter>key_name_literal</Parameter>
   </Key>
</Delete>
Varsayılan Yok
Varlık <Get> veya <Put> mevcut değilse gereklidir.
Tür Yok

&lt;Entry&gt; öğe

Anahtar/değer eşlemeleri için çekirdek değer eşlemeleridir. Bunlar, başlatıldı.

Herkese Açık Bulut İçin Edge'de anahtar boyutu 2 KB ile sınırlıdır. Örneğin:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>
Varsayılan Yok
Varlık İsteğe bağlı
Tür Yok

&lt;ExclusiveCache&gt; öğe

Kullanımdan kaldırıldı. Bunun yerine <Scope> öğesini kullanın.

&lt;ExpiryTimeInSecs&gt; öğe

Edge'in belirtilen KVM'ye gidin.

0 veya -1 değeri ya da bu öğe hariç tutulduğunda 300 saniye olan varsayılan değer kullanılır. Örneğin:

<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
Varsayılan 300 (5 dakika)
Varlık İsteğe bağlı
Tür Tamsayı

KVM, anahtarları ve değerleri NoSQL veritabanında depolayan uzun süreli bir kalıcılık mekanizmasıdır. Bu nedenle, çalışma zamanında bir KVM'den okuma yapmak proxy performansını yavaşlatabilir. İyileştirmek için Edge'in çalışma zamanı sırasında KVM anahtarlarını/değerlerini bellekte önbelleğe almak için dahili bir mekanizması vardır. Bu KVM İşlemleri politikası, GET işlemleri için her zaman önbellekten okur.

<ExpiryTimeInSecs> öğesi, anahtarların/değerlerin ne kadar süre boyunca politikada kullanılanlar, KVM'den tekrar yenilenmeden önce önbellekte depolanır. Ancak, GET ve PUT işlemlerinin önbellek son geçerlilik tarihini etkilemesi arasında bazı farklar vardır.

GET: Bir KVM GET işlemi ilk kez yürütülürken istenen KVM'den anahtar/değer çiftleri (adı politikanın kökünde belirtilen mapIdentifier anahtarları/değerleri) özelliği) önbelleğe yüklenir ve burada, aşağıdakiler gerçekleşir:

  • <ExpiryTimeInSecs> için belirtilen saniye sayısı sona erer.
    . veya
  • KVM politikasındaki PUT işlemi, mevcut değerlerin üzerine yazılır (sonraki bölümde açıklanmıştır).

PUT: PUT işlemi, anahtarları/değerleri belirtilen KVM'ye yazar. PUT önbellekte zaten var olan bir anahtara yazar, bu önbellek hemen yenilenir ve politikanın <ExpiryTimeInSecs> öğesi.

Örnek - KVM'yi önbelleğe alma

  1. Bir GET işlemi, "rating" (derecelendirme) değeri ekler. Bu, "10" değerini ekler. geri yükleyebilirsiniz. İlgili içeriği oluşturmak için kullanılan Politikadaki <ExpiryTimeInSecs> değeri 60'tır.
  2. 30 saniye sonra, GET politikası tekrar çalışır ve "10" değerini alır kaldıracaktır.
  3. 5 saniye sonra, bir PUT politikası "rating" değerini günceller "8"e ve PUT politikasında <ExpiryTimeInSecs> değeri 20'dir. Önbellek hemen yeni değerle yenilenir. Bu değer artık 20 saniye boyunca önbellekte kalacak şekilde ayarlanır. (PUT olmasaydı, başlangıçta ilk GET tarafından doldurulan önbellek, diğer 30 saniye, orijinal 60 saniyeden fazladır.)
  4. 15 saniye sonra, başka bir GET yürütülüp "8" değerini alır.
ziyaret edin.

&lt;Get&gt; öğe

Belirtilen anahtarın değerini alır. En az bir <Get>, <Put> veya <Delete> kullanılmalıdır.

KVM adınımapIdentifier üst öğedir.

Birden fazla öğeyi almak için politikaya birden fazla Get engellemesi ekleyebilirsiniz KVM'ye gönderilir.

Varsayılan Yok
Varlık <Put> veya <Delete> değilse gereklidir devam eder.
Tür Yok

Bir KVM'den tek bir öğe alma

<Get assignTo="myvar" index="1">         
   <Key>             
      <Parameter>key_name_literal</Parameter>         
   </Key>     
</Get>

Bir KVM'den birden fazla öğe alma

Aşağıdaki örnekte, aşağıdaki anahtarlara ve değerlere sahip bir KVM olduğunu varsayın. Ayrıca tüm zamanların en popüler filmlerinin yer aldığı bir listeyi saklayarak yani tüm önemli filmlerin yönetmeninin adıdır.

Anahtar Değer
top_movies Prenses Gelin,Baba,Vatandaş Kane
Vatandaş Kane Orson Welles
Prenses Gelin Rob Reiner'ı
Baba Francis Ford Coppola

Mevcut en popüler filmi almak için kullanabileceğimiz bir KVM politikası yapılandırmasını burada bulabilirsiniz ve direktörün adı:

<Get assignTo="top.movie.pick" index="1">
   <Key>
      <Parameter>top_movies</Parameter>
   </Key>
</Get>
<Get assignTo="movie.director">
   <Key>
      <Parameter ref="top.movie.pick"/>
   </Key>
</Get>

API proxy'si çağrıldığında Edge aşağıdakileri oluşturur: aşağıdaki değişkenleri kullanarak API proxy'si akışında kullanabilirsiniz:

  • top.movie.pick=Princess Bride
  • movie.director=Rob Reiner

Özellikler

Aşağıdaki tabloda <Get> öğesinin özellikleri açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
assignTo

Alınan değerin atanması gereken değişken.

Anahtar/değer eşlemesi şifrelenmişse assignTo name özelliğine "private.". Örnek:

<Get assignTo="private.myvar">

Şifrelenmiş bir anahtar/değer çifti eşlemesi olmadan çalışmaya çalışırsanız, politika kullanabilirsiniz. İşlem sırasında temel güvenlik amaçları için gerekli olan hata ayıklama, şifrelenmiş değerleri API proxy izleme ve hata ayıklama oturumlarından gizler.

Şifrelenmiş anahtar/değer eşlemeleri oluşturma hakkında bilgi edinmek için "Oluşturma" bu programın Anahtar/Değer Haritalar yönetimi API ve Oluşturma ve anahtar/değer eşlemelerini düzenleyebilirsiniz.

Yok Zorunlu
indeks

Birden çok değerli anahtardan getirilecek öğenin dizin numarası (1 tabanlı bir dizinde). Örneğin, index=1 belirtildiğinde ilk değeri döndürülür ve assignTo değişkeni Herhangi bir dizin değeri belirtilmezse bu giriş değişkene java.util.List olarak atanır.

Örnek için "KVM'den Şifrelenmiş Değeri Alma" bölümüne bakın Sana Özel'deki bölüm.

Yok İsteğe bağlı

&lt;InitialEntries&gt; öğe

Anahtar/değer eşlemeleri için ilk kullanıma sunulduğunda anahtar/değer eşlemede doldurulan başlangıç değerleri. mapIdentifier özelliği açıkken sanal makinenin adını belirtmeyi unutmayın üst öğedir. örneğin:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

Bu öğeyi kullanırken politikayı, dağıtılmış bir sürümde yönetim kullanıcı arayüzüne kaydettiğinizde veya bu öğedeki anahtarları içeren politikayı içeren API proxy paketini dağıtın KVM'de otomatik olarak oluşturulur (şifrelenmemiş şekilde). Politikadaki değerler farklıysa KVM'deki değerlerden daha değerliyse proxy dağıtıldığında KVM'deki değerlerin üzerine yazılır. Herhangi biri mevcut anahtarların/değerlerin yanı sıra mevcut KVM'ye yeni anahtarlar/değerler eklenir.

Bu öğe tarafından doldurulan anahtarlar ve değerler sabit değer olmalıdır. Örneğin, <Parameter ref="request.queryparam.key"> bu öğede desteklenmez.

Anahtar boyutu, hem Herkese Açık Bulut İçin Edge hem de Gizli Sefer için Edge. KVM değeri 2 KB ile sınırlıdır.

Şifrelenmiş bir KVM oluşturmak için Key/Value Maps management API'yi kullanın.

Varsayılan Yok
Varlık İsteğe bağlı
Tür Yok

&lt;Key&gt; öğe

Anahtar/değer eşleme girişindeki anahtarı belirtir. Bir anahtar bileşik olabilir. Yani birden fazla anahtarı oluşturmak için bir parametre eklenebilir. Örneğin, userID ve role bir key oluşturmak için birleştirilebilir. Örneğin:

<Key>
    <Parameter>key_name_literal</Parameter>
</Key>

Nasıl yapılacağını öğrenmek için &lt;Parameter&gt; öğesini mutlaka anahtar adını ayarlayın.

Herkese Açık Bulut İçin Edge kullanıldığında anahtar boyutu 2 KB ile sınırlıdır. Daha fazla bilgi için Genel Cloud API için Edge ve Private Cloud API arasındaki farklar bölümüne bakın.

Varsayılan Yok
Varlık İsteğe bağlı
Tür Yok

&lt;Parameter&gt; öğe

Bir anahtar/değer çiftindeki anahtarı belirtir. Bu öğe, dosya oluşturma, yerleştirme ve yerleştirme sırasında anahtar/değer çiftinin alınması veya silinmesidir.

Aşağıdakileri kullanarak adı belirtebilirsiniz:

  • Değişmez dize

    <Key>
      <Parameter>literal</Parameter>
    </Key>
    
  • ref özelliği kullanılarak çalışma zamanında alınacak değişken

    <Key>
      <Parameter ref="variable_name"/>
    </Key>
    
  • Değişken referansların ve değişmez değerlerin bir kombinasyonu

    <Key>
      <Parameter>targeturl</Parameter>
      <Parameter ref="apiproxy.name"/>
      <Parameter>weight</Parameter>
    </Key>
    

Anahtar öğesi birden fazla Parametre öğesi içerdiğinde etkili anahtar dizesi her parametreye ait değerlerin, çift alt çizgiyle birleştirilmesi. Örneğin, yukarıdaki örnekte, apiproxy.name değişkeni "abc1" değerine sahipse etkili anahtar targeturl__abc1__weight olacaktır.

Bir anahtar/değer çifti girişini alıyor, güncelliyor veya siliyor olmanız fark etmeksizin anahtar adı anahtar/değer eşlemesindeki anahtar adı. Daha fazla bilgi için anahtar adlarını alma konusunda daha fazla bilgi edinin.

Varsayılan Yok
Varlık Zorunlu
Tür Dize

Özellikler

Aşağıdaki tabloda <Parameter> öğesinin özellikleri açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
referans Değeri, kullandığınız anahtarın tam adını içeren bir değişkenin adını oluşturmak, almak veya silmek istediğiniz durumlar olabilir. Yok Açılış ve kapanış etiketleridir. Değişmez değer verilirse yasaktır.

&lt;Put&gt; öğe

Anahtar/değer eşlemesi ister şifrelenmiş olsun ister bir anahtar/değer çifti eşlemesine bir anahtar/değer çifti yazar şifrelenmemiş. mapIdentifier özelliğinde belirtilen anahtar/değer eşlemesi üst öğe yoksa harita otomatik olarak oluşturulur (şifrelenmemiş olarak). Anahtar değer eşleme zaten varsa anahtar/değer çifti buna eklenir.

Şifrelenmiş anahtar/değer eşlemesi oluşturmak için Key/Value Maps management API; veya Ortam anahtar/değer eşlemeleri oluşturma ve düzenleme başlıklı makaleyi inceleyin. kullanarak kullanıcı arayüzünde şifrelenmiş ortam kapsamlı KVM'ler oluşturabilirsiniz.

<Put override="false">         
   <Key>             
      <Parameter ref="mykeyvar"/>         
   </Key>         
   <Value ref="myvalvar1"/>     
</Put>
Varsayılan Yok
Varlık <Get> veya <Delete> değilse gereklidir devam eder.
Tür Yok

Özellikler

Aşağıdaki tabloda <Put> öğesinin özellikleri açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
geçersiz kılma

true olarak ayarlanırsa anahtarın değerini geçersiz kılar.

false İsteğe bağlı

&lt;Scope&gt; öğe

Anahtar/değer haritaları için erişilebilirlik sınırını tanımlar. Varsayılan kapsam environment, harita girişlerinin varsayılan olarak tüm API proxy'leri tarafından paylaşıldığı anlamına gelir. bir ortamda çalıştırılan (örneğin, test veya üretim) Kapsamı apiproxy ise anahtar/değer eşlemesindeki girişlere yalnızca değerleri haritaya yazar.

Bir haritaya veya harita girişine erişirken, kullandığınız aynı kapsam değerini belirtmeniz gerektiğini unutmayın harita oluşturulduğunda. Örneğin, harita apiproxy, değerlerini alırken apiproxy kapsamını kullanmalısınız. veya girişleri silebilirsiniz.

<Scope>environment</Scope>
Varsayılan environment
Varlık İsteğe bağlı
Tür Dize
Geçerli değerler:
  • organization
  • environment
  • apiproxy
  • policy (API proxy düzeltmesi)

&lt;Value&gt; öğe

Bir anahtarın değerini belirtir. Değeri düz bir dize olarak veya Çalışma zamanında alınacak bir değişken olarak ref özelliğini ekleyin:

<!-- Specify a literal value -->
<Value>literal<Value>

veya:

<!-- Specify the name of variable value to be populated at run time. -->
<Value ref="variable_name"/>

Çok bölümlü bir öğe belirtmek için birden çok <Value> öğesi de ekleyebilirsiniz değer. Değerler çalışma zamanında birleştirilir.

Aşağıdaki örnekte KVM'ye iki anahtar eklenmiştir:

  • v1,v2 değerlerine sahip k1 anahtarı
  • v3,v4 değerlerine sahip k2 anahtarı
<InitialEntries>         
   <Entry>             
      <Key>
         <Parameter>k1</Parameter>
      </Key>
      <Value>v1</Value>
      <Value>v2</Value>     
   </Entry>
   <Entry>
      <Key>
         <Parameter>k2</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

Aşağıdaki örnekte, bir anahtar iki değerle oluşturulmuştur. Bir kurumun adı foo_org, API proxy'si adı bar ve ortamın adı ise test:

  • bar,test değerlerine sahip foo_org anahtarı
<Put>
    <Key>
        <Parameter ref="organization.name"/>
    </Key>
    <Value ref="apiproxy.name"/>
    <Value ref="environment.name"/>
</Put>
Varsayılan Yok
Varlık Zorunlu
Tür Dize

Özellikler

Aşağıdaki tabloda <Value> öğesinin özellikleri açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
referans Değerini değiştirmek istediğiniz anahtar/değer çiftlerini içeren bir değişkenin adını belirtir ayarlandı. Yok Açılış ve kapanış etiketleridir. Değişmez değer verilirse yasaktır.

Hata referansı

Edge politikalarından döndürülen hatalar, Hata kodu referansı bölümünde açıklandığı gibi tutarlı bir biçime sahiptir.

Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Çalışma zamanı hataları

Politika yürütüldüğünde bu hatalar ortaya çıkabilir.

Hata kodu HTTP durumu Neden Düzelt
steps.keyvaluemapoperations.SetVariableFailed 500

Bu hata, şifrelenmiş bir anahtar/değer eşlemesinden bir değer almaya çalışır ve değeri, adında private öneki olmayan bir değişken olarak ayarlarsanız ortaya çıkar. Hata ayıklama sırasında temel güvenlik amacıyla gerekli olan ön ek, şifrelenmiş değerleri API Proxy Trace ve hata ayıklama oturumlarından gizler.

steps.keyvaluemapoperations.UnsupportedOperationException 500

Bu hata, mapIdentifier özelliği Anahtar/Değer Eşleme İşlemleri politikasında boş dize olarak ayarlanırsa ortaya çıkar.

Dağıtım hataları

Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.

Hata adı Neden Düzelt
InvalidIndex Anahtar Değer Eşleme İşlemleri politikasının <Get> öğesinde belirtilen index özelliği sıfır veya negatif bir sayıysa API proxy'sinin dağıtımı başarısız olur. Dizin, 1 değerinden başlar. Bu nedenle sıfır veya negatif tam sayı içeren bir dizin geçersiz olarak kabul edilir.
KeyIsMissing Bu hata, Anahtar/Değer Eşleme İşlemleri politikasının <InitialEntries> öğesinin <Entry> altındaki <Key> öğesi içinde <Key> öğesi tamamen eksik olduğunda veya <Parameter> öğesi eksik olduğunda ortaya çıkar.
ValueIsMissing Bu hata, Anahtar/Değer Eşleme İşlemleri politikasının <InitialEntries> öğesinin <Entry> öğesi altında <Value> öğesi eksikse ortaya çıkar.

Şemalar

Kullanım notları

Anahtar/değer eşlemelerine genel bir bakış için Anahtar/değer eşlemeleriyle çalışma bölümünü inceleyin.

Anahtar/değer eşlemesi deposu, şu şekilde biçimlendirilmiş veriler için hafif bir kalıcılık mekanizması sağlar: anahtar/değer çiftlerinin bir örneğini görebilirsiniz. Bunlara çalışma zamanında politikalar veya kod aracılığıyla erişebilirsiniz. Bir haritada herhangi bir key=value biçimindeki rastgele veriler.

Örneğin localhost=127.0.0.1, zip_code=94110 veya first_name=felix. İlk örnekte, localhost bir anahtar ve 127.0.0.1 bir değerdir. Her anahtar/değer çifti, bir anahtarda giriş olarak depolanır değer eşleştirmesi. Anahtar/değer eşlemesi birçok girişi depolayabilir.

Anahtar/değer eşlemelerinin kullanımına dair bir örneği burada bulabilirsiniz. Diyelim ki bir IP adresi listesi çeşitli arka uçlarla ilişkili ortam olarak da bilinir. ipAddresses adında, şunları içeren bir anahtar/değer eşlemesi oluşturabilirsiniz: giriş olarak anahtar/değer çiftlerinin bir listesidir. Örneğin, bu JSON aşağıdaki gibi bir haritayı temsil edebilir:

{
  "entry" : [ {
    "name" : "Development",
    "value" : "65.87.18.18"
  }, {
    "name" : "Staging",
    "value" : "65.87.18.22"
  } ],
  "name" : "ipAddresses"
}

Bu yapıyı, politikalar tarafından kullanılabilecek bir IP adresi deposu oluşturmak için kullanabilirsiniz Dinamik olarak bir arka uç hedefi seçmek için IP izin verilenler listesine veya ret listesine eklemeyi zorunlu kılmak ve başka veriler bulunur. Genellikle KeyValueMapOperations politikası, verileri depolamak veya Birden fazla istek/yanıt işleminde yeniden kullanılması gereken, uzun ömürlü bilgiler.

Anahtar/değer eşlemeleri, KeyValueMapOperations politikası aracılığıyla veya doğrudan Apigee Edge management API. Kuruluş anahtar/değer eşleme API'si API'si ile ilgili ayrıntılar için management API referansına bakın. API'yı kullanarak, anahtar/değer deposuna büyük veri kümeleri yükleme veya anahtar/değer çiftini yönetmek için komut dosyaları oluşturma harita girişleri olabilir. API'ye KeyValueMapOperations politikası.

Anahtar adlarını belirtme ve alma

<Parameter> ve <Value> öğeleriyle şunları yapabilirsiniz: bir değişmez değer (değerin açılış ve kapanış etiketleri arasında olduğu) belirtin veya değeri kullanılması gereken bir değişkenin adını belirtmek için ref özelliği belirler.

Parametre öğesi, devreye giren anahtarın adını belirlemesi nedeniyle anahtar adının yanı sıra geri almak veya silmek istediğiniz anahtarın adını girin. Aşağıda iki örnek verilmiştir. İlki, kelimenin tam anlamıyla bir anahtar adını, ikincisi ise değişken kullanan bir anahtar adını belirtir. Aşağıdakilerin KVM'de anahtar oluşturmak için kullanıldığını varsayalım:

<Parameter>key_name_literal</Parameter>
<Parameter ref="key.name.variable"/>

İlk örnekte, "key_name_literal" (anahtar_adı_literal) değerinde bir değişmez değer anahtar olarak KVM'de depolanır dokunun. İkinci örnekte, key.name.variable içindeki değer KVM'deki anahtarın adını girin. Örneğin, key.name.variable foo değerine ayarlanırsa anahtar "foo" olarak adlandırılır.

Anahtarı ve anahtar değerini bir GET işlemiyle almak (veya DELETE işlemi), <Parametre> ayarının KVM'deki anahtar adıyla eşleşmesi gerekir. Örneğin, KVM'deki anahtar adı "foo" ise değişmez değeri <Parameter>foo</Parameter> veya tam "foo" değerini girin. Örneğin: <Parameter ref="variable.containing.foo"/>.

İlgili konular