Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
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>
<KeyValueMapOperations> ö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, Bu özelliği hariç tutarsanız Kuruluş/ortam/apiproxy kapsamında,
|
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ı. İsteğe bağlı olarak, politikayı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğ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 |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<Delete> öğ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 |
<Entry> öğ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 |
<ExclusiveCache> öğe
Kullanımdan kaldırıldı. Bunun yerine <Scope>
öğesini kullanın.
<ExpiryTimeInSecs> öğ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
- 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. - 30 saniye sonra, GET politikası tekrar çalışır ve "10" değerini alır kaldıracaktır.
- 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.) - 15 saniye sonra, başka bir GET yürütülüp "8" değerini alır.
<Get> öğ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
" <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, Ö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ı |
<InitialEntries> öğ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 |
<Key> öğ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 <Parameter> öğ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 |
<Parameter> öğ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. |
<Put> öğ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 |
|
false |
İsteğe bağlı |
<Scope> öğ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: |
|
<Value> öğ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 sahipk1
anahtarıv3,v4
değerlerine sahipk2
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 sahipfoo_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 |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
Bu hata, |
build |
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.
|
build |
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.
|
build |
ValueIsMissing |
Bu hata, Anahtar/Değer Eşleme İşlemleri politikasının <InitialEntries> öğesinin <Entry> öğesi altında <Value> öğesi eksikse ortaya çıkar. |
build |
Ş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"/>
.