Anda sedang melihat dokumentasi Apigee Edge.
  Buka
     Dokumentasi Apigee X. info
Apa
Memberikan akses berbasis kebijakan ke penyimpanan Key Value Map (KVM) yang tersedia di Apigee Edge. Key-value pair dapat disimpan, diambil, dan dihapus dari peta bernama yang sudah ada dengan mengonfigurasi Kebijakan KeyValueMapOperations yang menentukan operasi PUT, GET, atau DELETE. (Setidaknya salah satu dari operasi ini harus dijalankan oleh kebijakan.)
Video
Tonton video berikut untuk mempelajari KVM lebih lanjut.
| Video | Deskripsi | 
|---|---|
| Alasan Nilai Kunci Maps? | Pelajari mengapa Anda membutuhkan KVM dan cara kerjanya. | 
| Buat KVM menggunakan UI dan mengambil KVM saat runtime | Membuat KVM, mengambil nilainya menggunakan kebijakan KVM, dan memasukkan nilainya ke dalam API permintaan menggunakan variabel alur. | 
| Membuat dan memperbarui KVM di runtime API | Buat KVM pada runtime API menggunakan kebijakan KVM. | 
| Cache KVM ke meningkatkan performa | Meningkatkan performa Kebijakan KVM dengan meng-cache data. | 
| Simpan terenkripsi KVM | Simpan informasi sensitif di KVM dalam format terenkripsi dan ambil nilainya runtime yang menggunakan kebijakan KVM dan variabel pribadi. | 
| Kelola akses menggunakan cakupan KVM | Membatasi KVM ke organisasi, lingkungan, proxy API, atau revisi proxy API menggunakan KVM kebijakan cakupan. | 
| Hapus KVM entri pada runtime API | Hapus entri KVM saat runtime API menggunakan operasi DELETE kebijakan KVM. | 
Contoh
PUT KVM dengan literal
Ketika dijalankan, kebijakan berikut akan membuat KVM terenkripsi yang bernama
        FooKVM, lalu membuat kunci bernama FooKey_1 dengan
        dua nilai yang ditetapkan dengan string literal foo dan bar
        (not set dengan nilai yang diekstrak dari variabel). Jika Anda
        GET kunci dalam contoh berikutnya, Anda menentukan nomor indeks
        untuk mengambil nilai yang Anda inginkan.
<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>Perhatikan bahwa cakupannya adalah "environment". Itu berarti Anda dapat melihat KVM di bagian manajemen UI di bagian APIs > Konfigurasi Lingkungan > Peta Nilai Kunci. KVM yang ditampilkan di halaman tersebut mencakup semua lingkungan yang dipilih.
MENDAPATKAN KVM dari literal
Kebijakan ini melihat peta FooKVM dari contoh sebelumnya, mendapatkan
      nilai kedua (index="2") dari kunci FooKey_1, dan menyimpannya dalam variabel
      disebut 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>
PUT KVM dengan variabel
Contoh sederhana peta nilai kunci yang berguna adalah layanan pemendekan URL. Peta nilai kunci dapat dikonfigurasi untuk menyimpan URL singkat beserta URL lengkap yang sesuai.
Contoh kebijakan ini membuat peta nilai kunci. Kebijakan PUT kunci dengan dua nilai terkait ke peta kunci/nilai bernama "urlMapper".
<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>Kunci dalam contoh ini, urlencoding.requesturl.hashed, adalah contoh
      variabel kustom. URL permintaan yang di-hash akan dibuat oleh kode (JavaScript atau Java, untuk
      misalnya) lalu disimpan dalam variabel ini, tempat kebijakan KeyValueMapOperations dapat mengakses
      anotasi.
Untuk setiap kunci, requesturl.hashed, ada dua nilai yang disimpan:
- Konten variabel khusus bernama 
urlencoding.longurl.encoded - Konten variabel yang telah ditetapkan 
request.queryparam.url 
Misalnya, jika kebijakan dieksekusi pada runtime, nilai variabel mungkin sebagai berikut ini:
urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1beurlencoding.longurl.encoded: http://tinyurl.com/38lwmlrrequest.queryparam.url: http://apigee.com
Peta kunci/nilai dan entri berikut akan dibuat di penyimpanan kunci/nilai Edge dan yang dicakupkan ke proxy API tempat kebijakan dilampirkan:
{
    "entry" :[ 
        {
            "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be",
            "value" : "http://tinyurl.com/38lwmlr,http://apigee.com"
        }
    ],
    "name" : "urlMapper"
}Entri akan tetap ada hingga dihapus. Entri penyimpanan kunci/nilai didistribusikan di instance Edge yang menjalankan cloud.
MENDAPATKAN KVM dari variabel
Contoh sederhana peta nilai kunci yang berguna adalah 'pemendekan' URL layanan. Peta nilai kunci dapat dikonfigurasi untuk menyimpan URL singkat beserta URL lengkap yang sesuai.
Untuk mengambil nilai entri peta kunci/nilai, seperti yang dibahas pada Tab PUT KeyValueMapOperations, konfigurasi kebijakan untuk MENDAPATKAN peta nilai kunci:
<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper"> <Scope>apiproxy</Scope> <Get assignTo="urlencoding.shorturl" index='1'> <Key> <Parameter ref="urlencoding.requesturl.hashed"/> </Key> </Get> </KeyValueMapOperations>
Saat kebijakan ini dijalankan, jika nilai
      Variabel urlencoding.requesturl.hashed adalah
      ed24e12820f2f900ae383b7cc4f2b31c402db1be, lalu variabel kustom bernama
      urlencoding.shorturl akan ditetapkan dengan nilai
      http://tinyurl.com/38lwmlr.
Setelah data diambil, kebijakan dan kode lain dapat mengaksesnya dengan mengekstrak nilai dari variabel-variabel tersebut.
GET nilai terenkripsi dari KVM
Jika peta nilai kunci dienkripsi, ambil nilai menggunakan "private."
      di nilai atribut assignTo. Dalam contoh ini, variabel
      private.encryptedVar menyimpan nilai yang didekripsi dari peta nilai kunci
      Tombol foo. Untuk informasi tentang pembuatan peta nilai kunci terenkripsi, lihat dokumentasi "create"
      topik Peta Kunci/Nilai
      Google Cloud Management API.
<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map"> <Scope>apiproxy</Scope> <Get assignTo="private.encryptedVar" index='1'> <Key> <Parameter>foo</Parameter> </Key> </Get> </KeyValueMapOperations>
Setelah data diambil, kebijakan dan kode lain dapat mengaksesnya dengan mengekstrak nilai dari variabel tersebut.
Referensi elemen
Referensi elemen menjelaskan elemen dan atribut KeyValueMapOperations kebijakan:
<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> atribut
Contoh berikut menunjukkan atribut pada tag <KeyValueMapOperations>:
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">
Tabel berikut menjelaskan atribut khusus untuk tag <KeyValueMapOperations>:
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
| mapIdentifier | 
             Menentukan ID yang akan digunakan saat mengakses peta yang dibuat oleh entitas ini kebijakan atau di UI pengelolaan. Nama KVM peka huruf besar/kecil dengan Apigee Edge for Public Cloud.
              Misalnya,  Jika Anda mengecualikan atribut ini, KVM bernama  Dalam cakupan organisasi/environment/apiproxy, Anda dapat menggunakan
            Atribut   | 
          T/A | Opsional | 
Tabel berikut menjelaskan atribut yang umum untuk semua elemen induk kebijakan:
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
name | 
        
           Nama internal kebijakan. Nilai atribut  Secara opsional, gunakan elemen   | 
        T/A | Wajib | 
continueOnError | 
        
           Tetapkan ke  Setel ke   | 
        salah | Opsional | 
enabled | 
        
           Setel ke  Setel ke   | 
        true | Opsional | 
async | 
        
           Atribut ini tidak digunakan lagi.  | 
        salah | Tidak digunakan lagi | 
<DisplayName> elemen
Gunakan selain atribut name untuk memberi label kebijakan di
  editor proxy UI dengan nama natural language yang berbeda.
<DisplayName>Policy Display Name</DisplayName>
| Default | 
           T/A Jika Anda menghapus elemen ini, nilai atribut   | 
      
|---|---|
| Ketersediaan | Opsional | 
| Jenis | String | 
<Delete> elemen
Menghapus key-value pair yang ditentukan. Setidaknya salah satu dari <Get>,
  <Put>, atau <Delete> harus digunakan.
Pastikan untuk menentukan nama KVM dengan atribut mapIdentifier
  pada elemen induk. Contoh:
<Delete>
   <Key>
      <Parameter>key_name_literal</Parameter>
   </Key>
</Delete>| Default | T/A | 
|---|---|
| Ketersediaan | Wajib diisi jika <Get> atau <Put> tidak ada. | 
      
| Jenis | T/A | 
<Entry> elemen
Nilai seed untuk peta nilai kunci, yang diisi di peta nilai kunci saat diinisialisasi.
Untuk Edge for Public Cloud, ukuran kunci dibatasi hingga 2 KB. Contoh:
<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>
| Default | T/A | 
|---|---|
| Ketersediaan | Opsional | 
| Jenis | T/A | 
<ExclusiveCache> elemen
Tidak digunakan lagi. Sebagai gantinya, gunakan elemen <Scope>.
<ExpiryTimeInSecs> elemen
Menentukan durasi dalam detik setelah Edge memperbarui nilai yang di-cache dari yang ditentukan.
Nilai 0 atau -1, atau tidak termasuk elemen ini, berarti nilai {i>default<i} 300 detik adalah data Contoh:
<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
| Default | 300 (5 menit) | 
      
|---|---|
| Ketersediaan | Opsional | 
| Jenis | Bilangan Bulat | 
KVM adalah mekanisme persistensi jangka panjang yang menyimpan kunci dan nilai dalam database NoSQL. Karena itu, membaca dari KVM saat runtime berpotensi memperlambat performa proxy. Untuk meningkatkan , Edge memiliki mekanisme bawaan untuk menyimpan cache kunci/nilai KVM dalam memori selama runtime. Kebijakan Operasi KVM ini selalu membaca dari cache untuk operasi GET.
Elemen <ExpiryTimeInSecs> memungkinkan Anda mengontrol durasi kunci/nilai
  yang digunakan dalam kebijakan disimpan di {i>
cache<i} sebelum disegarkan kembali dari KVM. Namun,
  ada beberapa perbedaan antara bagaimana operasi GET dan PUT memengaruhi akhir masa berlaku cache.
GET - Saat pertama kali operasi GET KVM dijalankan, permintaan
  kunci/nilai dari KVM (yang namanya ditentukan dalam root kebijakan mapIdentifier
  ) dimuat ke dalam cache, di mana mereka tetap ada untuk operasi GET berikutnya hingga salah satu
  hal berikut akan terjadi:
- Jumlah detik yang ditentukan dalam 
<ExpiryTimeInSecs>berakhir.
atau - Operasi PUT dalam kebijakan KVM menimpa nilai yang ada (dijelaskan selanjutnya).
 
PUT - Operasi PUT menulis kunci/nilai ke KVM yang ditentukan. Jika PUT
  menulis ke kunci yang sudah ada dalam cache, cache tersebut segera diperbarui dan menyimpan
  nilai baru untuk jumlah detik yang ditentukan dalam
  Elemen <ExpiryTimeInSecs>.
Contoh - Menyimpan KVM ke dalam cache
- Operasi GET mengambil nilai "rating", yang menambahkan
nilai "10" yang ingin di-cache. Tujuan
    
<ExpiryTimeInSecs>pada kebijakan adalah 60. - 30 detik kemudian, kebijakan GET dijalankan lagi dan mengambil "10" dari cache.
 - 5 detik kemudian, kebijakan PUT memperbarui nilai "rating" ke "8", dan
    
<ExpiryTimeInSecs>pada kebijakan PUT adalah 20. Cache segera diperbarui dengan nilai baru, yang kini disetel untuk tetap berada dalam cache selama 20 detik. (Jika PUT tidak terjadi, cache yang awalnya diisi oleh GET pertama akan tetap ada untuk 30 detik, tersisa dari 60 detik sebelumnya.) - 15 detik kemudian, GET lainnya dieksekusi dan mengambil nilai "8".
 
<Get> elemen
Mengambil nilai untuk kunci yang ditentukan. Setidaknya salah satu dari <Get>,
  <Put>, atau <Delete> harus digunakan.
Pastikan untuk menentukan nama KVM dengan atribut mapIdentifier pada
  elemen induk.
Anda dapat menyertakan beberapa pemblokiran Get dalam kebijakan untuk mengambil beberapa item
  dari KVM.
| Default | T/A | 
|---|---|
| Ketersediaan | Wajib ada jika <Put> atau <Delete> tidak
        saat ini. | 
      
| Jenis | T/A | 
Mendapatkan satu item dari KVM
<Get assignTo="myvar" index="1"> <Key> <Parameter>key_name_literal</Parameter> </Key> </Get>
Mendapatkan beberapa item dari KVM
Pada contoh berikut, asumsikan KVM dengan kunci dan nilai berikut. Selain itu hingga menyimpan daftar film paling populer sepanjang masa, toko KVM nama sutradara untuk semua film besar.
| Kunci | Nilai | 
|---|---|
| top_movies | Princess Bride,Sang Dewa,Citizen Kane | 
| Warga Negara Kane | Sumur Orson | 
| Pengantin Putri | Rob{i> <i}Reiner | 
| The Godfather | Francis Ford Coppola | 
Berikut adalah konfigurasi kebijakan KVM yang dapat digunakan untuk mengambil film terpopuler saat ini dan nama direkturnya:
<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>
Saat proxy API dipanggil, Edge akan membuat kode variabel yang dapat Anda gunakan dalam alur proxy API:
top.movie.pick=Princess Bridemovie.director=Rob Reiner
Atribut
Tabel berikut menjelaskan atribut elemen <Get>:
  
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
| assignTo | 
           Variabel yang harus diberi nilai yang diambil. Jika peta nilai kunci dienkripsi, mulai tetapkan nama assignTo dengan
          " <Get assignTo="private.myvar"> Kebijakan ini akan menampilkan error jika Anda mencoba mengambil peta nilai kunci yang dienkripsi tanpa menggunakan awalan. Awalan, yang diperlukan untuk tujuan keamanan dasar selama proses debug, menyembunyikan nilai terenkripsi dari Trace proxy API dan sesi debug. Untuk informasi tentang pembuatan peta nilai kunci terenkripsi, lihat dokumentasi "create" topik dari Pengelolaan Maps Kunci/Nilai API dan Membuat dan mengedit peta nilai kunci lingkungan.  | 
        T/A | Wajib | 
| indeks | 
           Nomor indeks (dalam indeks berbasis 1) item yang akan diambil dari kunci multi-nilai.
          Misalnya, menentukan  Sebagai contoh, lihat dokumentasi "Mendapatkan Nilai Terenkripsi dari KVM" di Sample.  | 
        T/A | Opsional | 
<InitialEntries> elemen
Nilai seed untuk peta nilai kunci, yang diisi dalam peta nilai kunci saat diinisialisasi.
  Pastikan untuk menentukan nama KVM dengan atribut mapIdentifier di
  elemen induk. misalnya:
<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>
Saat menggunakan elemen ini, saat Anda menyimpan kebijakan di UI pengelolaan pada versi yang di-deploy proxy, atau terapkan paket proxy API yang berisi kebijakan dengan elemen ini, kunci otomatis dibuat di KVM (sebagai tidak dienkripsi). Jika nilai dalam kebijakan berbeda daripada nilai-nilai dalam KVM, nilai-nilai dalam KVM akan ditimpa ketika proxy di-deploy. Apa saja kunci/nilai baru ditambahkan ke KVM yang ada bersama dengan kunci/nilai yang ada.
Kunci dan nilai yang diisi oleh elemen ini harus berupa literal. Misalnya, <Parameter
  ref="request.queryparam.key"> tidak didukung dalam elemen ini.
Ukuran kunci dibatasi hingga 2 KB bagi Edge untuk Public Cloud dan Edge untuk Pribadi Bisa. Nilai KVM dibatasi hingga 2 KB.
Untuk membuat KVM terenkripsi, gunakan Key/Value Maps Management API.
| Default | T/A | 
|---|---|
| Ketersediaan | Opsional | 
| Jenis | T/A | 
<Key> elemen
Menentukan kunci dalam entri peta kunci/nilai. Sebuah kunci dapat berupa komposit, yang berarti bahwa lebih dari
  satu parameter dapat ditambahkan untuk membuat kunci. Misalnya, userID dan
  role mungkin digabungkan untuk membuat key. Contoh:
<Key>
    <Parameter>key_name_literal</Parameter>
</Key>Pastikan untuk melihat elemen <Parameter> untuk informasi spesifik tentang cara tetapkan nama kunci.
Dengan Edge for Public Cloud, ukuran kunci dibatasi hingga 2 KB. Lihat Perbedaan antara Edge untuk Public Cloud API dan Private Cloud API untuk mengetahui lebih lanjut.
| Default | T/A | 
|---|---|
| Ketersediaan | Opsional | 
| Jenis | T/A | 
<Parameter> elemen
Menentukan kunci dalam pasangan kunci/nilai. Elemen ini menentukan nama saat membuat, menempatkan, mengambil, atau menghapus pasangan nilai kunci.
Anda dapat menetapkan nama dengan menggunakan:
- 
      
String literal
<Key> <Parameter>literal</Parameter> </Key>
 - 
      
Variabel yang akan diambil pada waktu proses, menggunakan atribut
ref<Key> <Parameter ref="variable_name"/> </Key>
 - 
      
Kombinasi dari referensi literal dan variabel
<Key> <Parameter>targeturl</Parameter> <Parameter ref="apiproxy.name"/> <Parameter>weight</Parameter> </Key>
 
Ketika elemen Key mencakup beberapa elemen Parameter, string kunci yang efektif adalah
  gabungan nilai dari setiap parameter, digabungkan dengan garis bawah ganda. Misalnya, di
  contoh di atas, jika variabel apiproxy.name memiliki nilai "abc1", maka
  kunci efektif adalah targeturl__abc1__weight.
Baik Anda mendapatkan, memperbarui, atau menghapus entri kunci/nilai, nama kunci harus cocok dengan nama kunci pada peta nilai kunci. Lihat Menentukan dan mengambil nama kunci untuk panduan.
| Default | T/A | 
|---|---|
| Ketersediaan | Wajib | 
| Jenis | String | 
Atribut
Tabel berikut menjelaskan atribut elemen <Parameter>:
  
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
| referensi | Menentukan nama variabel yang nilainya berisi nama persis dari kunci yang Anda buat, dapatkan, atau hapus. | T/A | Wajib diisi jika tidak ada nilai literal yang diberikan antara pembukaan dan tag penutup. Dilarang jika nilai literal diberikan. | 
<Put> elemen
Menulis pasangan kunci/nilai ke peta nilai kunci, baik peta nilai kunci dienkripsi maupun
  tidak dienkripsi. Jika peta nilai kunci ditentukan dalam atribut mapIdentifier di
  elemen induk tidak ada, peta akan otomatis dibuat (sebagai tidak dienkripsi). Jika nilai kunci
  peta sudah ada, kunci/nilai ditambahkan ke dalamnya.
Untuk membuat peta nilai kunci terenkripsi, gunakan Key/Value Maps management API; atau lihat Membuat dan mengedit peta nilai kunci lingkungan untuk membuat KVM terenkripsi dengan cakupan lingkungan di UI.
<Put override="false"> <Key> <Parameter ref="mykeyvar"/> </Key> <Value ref="myvalvar1"/> </Put>
| Default | T/A | 
|---|---|
| Ketersediaan | Wajib ada jika <Get> atau <Delete> tidak
        saat ini. | 
      
| Jenis | T/A | 
Atribut
Tabel berikut menjelaskan atribut elemen <Put>:
  
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
| penggantian | 
           Jika ditetapkan ke   | 
        false | 
        Opsional | 
<Scope> elemen
Mendefinisikan batas aksesibilitas untuk peta nilai kunci. Cakupan default-nya adalah
  environment, artinya, secara default, entri peta digunakan bersama oleh semua proxy API
  yang berjalan di suatu lingkungan (misalnya, uji atau produksi). Jika Anda mengatur 
ruang lingkup ke
  apiproxy, maka entri dalam peta nilai kunci hanya dapat diakses oleh proxy API yang
  menulis nilai ke peta.
Perhatikan bahwa saat mengakses entri peta atau peta, Anda harus menentukan nilai cakupan yang sama dengan yang Anda gunakan
  saat peta dibuat. Misalnya, jika peta dibuat dengan cakupan
  apiproxy, Anda harus menggunakan cakupan apiproxy saat mengambil nilainya,
  membuat perubahan, atau 
menghapus entri.
<Scope>environment</Scope>
| Default | environment | 
      
|---|---|
| Ketersediaan | Opsional | 
| Jenis | String | 
| Nilai valid: | 
          
  | 
      
<Value> elemen
Menentukan nilai kunci. Anda dapat menentukan nilai sebagai string literal atau, menggunakan
  atribut ref, sebagai variabel yang akan diambil pada waktu proses:
<!-- Specify a literal value --> <Value>literal<Value>
atau:
<!-- Specify the name of variable value to be populated at run time. --> <Value ref="variable_name"/>
Anda juga dapat menyertakan beberapa elemen <Value> untuk menentukan multi-bagian
  dengan sejumlah nilai. Nilai digabungkan pada waktu proses.
Dua kunci ditambahkan ke KVM berikut ini:
- Kunci 
k1dengan nilaiv1,v2 - Kunci 
k2dengan nilaiv3,v4 
<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>Dalam contoh berikut, satu kunci dibuat dengan dua nilai. Mari kita asumsikan
  namanya adalah foo_org, nama proxy API adalah bar, dan lingkungannya
  test:
- Kunci 
foo_orgdengan nilaibar,test 
<Put>
    <Key>
        <Parameter ref="organization.name"/>
    </Key>
    <Value ref="apiproxy.name"/>
    <Value ref="environment.name"/>
</Put>| Default | T/A | 
|---|---|
| Ketersediaan | Wajib | 
| Jenis | String | 
Atribut
Tabel berikut menjelaskan atribut elemen <Value>:
  
| Atribut | Deskripsi | Default | Ketersediaan | 
|---|---|---|---|
| referensi | Menentukan nama variabel yang nilainya berisi nilai kunci yang ingin Anda atur. | T/A | Wajib diisi jika tidak ada nilai literal yang diberikan antara pembukaan dan tag penutup. Dilarang jika nilai literal diberikan. | 
Referensi error
Error yang ditampilkan dari kebijakan Edge mengikuti format yang konsisten seperti yang dijelaskan dalam Referensi kode error.
Bagian ini menjelaskan kode kesalahan dan pesan error yang ditampilkan dan variabel kesalahan yang disetel oleh Edge saat kebijakan ini memicu error. Informasi ini penting untuk diketahui apakah Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani kesalahan.
Error runtime
Error ini dapat terjadi saat kebijakan dieksekusi.
| Kode kesalahan | Status HTTP | Penyebab | Perbaiki | 
|---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed | 
          500 | 
           Error ini terjadi jika Anda mencoba mengambil nilai dari peta nilai kunci terenkripsi dan menetapkan nilainya ke variabel yang namanya tidak memiliki awalan   | 
        build | 
steps.keyvaluemapoperations.UnsupportedOperationException | 
          500 | 
           Error ini terjadi jika atribut   | 
        build | 
Error saat deployment
Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.
| Nama error | Penyebab | Perbaiki | 
|---|---|---|
InvalidIndex | 
        
          Jika atribut index yang ditentukan dalam elemen <Get> kebijakan Operasi Peta Nilai Kunci adalah nol atau angka negatif, deployment proxy API akan gagal. Indeks dimulai dari
          1, sehingga indeks bilangan bulat nol atau negatif dianggap tidak valid.
         | 
        build | 
KeyIsMissing | 
        
          Error ini terjadi jika elemen <Key> sama sekali tidak ada atau elemen <Parameter> tidak ada dalam elemen <Key> di bawah <Entry> elemen <InitialEntries> dalam kebijakan Operasi Peta Nilai Kunci.
         | 
        build | 
ValueIsMissing | 
        Error ini terjadi jika elemen <Value> tidak ada di bawah elemen <Entry> elemen <InitialEntries> kebijakan Operasi Peta Nilai Kunci. | 
        build | 
Skema
Catatan penggunaan
Untuk ringkasan peta nilai kunci, lihat Menggunakan peta nilai kunci.
Penyimpanan peta nilai kunci menyediakan mekanisme persistensi yang ringan untuk data yang diformat sebagai
  pasangan nilai kunci/nilai. Anda dapat mengaksesnya saat runtime melalui kebijakan atau kode. Peta berisi
  data arbitrer dalam format key=value.
Misalnya localhost=127.0.0.1, zip_code=94110, atau
  first_name=felix. Dalam contoh pertama, localhost adalah key, dan
  127.0.0.1 adalah nilai. Setiap key-value pair disimpan sebagai entri di kunci
  peta nilai. Peta nilai kunci dapat menyimpan banyak entri.
Berikut adalah contoh penggunaan peta nilai kunci. Misalkan Anda perlu menyimpan daftar alamat IP
  yang terkait dengan berbagai backend
  lingkungan fleksibel App Engine. Anda dapat membuat peta nilai kunci bernama ipAddresses yang berisi
  daftar pasangan kunci/nilai sebagai entri. Misalnya, JSON ini dapat merepresentasikan peta tersebut:
{
  "entry" : [ {
    "name" : "Development",
    "value" : "65.87.18.18"
  }, {
    "name" : "Staging",
    "value" : "65.87.18.22"
  } ],
  "name" : "ipAddresses"
}Anda dapat menggunakan struktur ini untuk membuat penyimpanan alamat IP yang dapat digunakan oleh kebijakan saat runtime untuk menerapkan daftar yang diizinkan atau ditolak IP, untuk memilih target backend secara dinamis dan sebagainya. Biasanya, kebijakan KeyValueMapOperations digunakan untuk menyimpan atau mengambil informasi berumur panjang yang perlu digunakan kembali pada beberapa transaksi permintaan/respons.
Peta kunci/nilai dapat dimanipulasi melalui kebijakan KeyValueMapOperations, atau secara langsung melalui API pengelolaan Apigee Edge. Lihat referensi API pengelolaan untuk mengetahui detail tentang API peta nilai/kunci organisasi. Anda dapat menggunakan API ini untuk misalnya, mengupload set data besar ke penyimpanan kunci/nilai, atau membuat skrip untuk mengelola kunci/nilai entri peta. Anda harus membuat peta kunci/nilai dengan API sebelum mengaksesnya dengan Kebijakan KeyValueMapOperations.
Menetapkan dan mengambil nama kunci
Dengan elemen <Parameter> dan <Value>, Anda dapat
  tentukan nilai literal (dengan nilai di antara tag pembuka dan penutup) atau gunakan
  atribut ref untuk menentukan nama variabel yang nilainya harus digunakan
  waktu beroperasi.
Elemen Parameter layak disebutkan secara khusus, karena menentukan nama kunci yang dibuat, serta nama kunci yang ingin Anda ambil atau hapus. Berikut adalah dua contoh. Yang pertama menentukan nama kunci secara harfiah, dan yang kedua menentukan nama kunci menggunakan variabel. Mari asumsikan hal berikut ini digunakan untuk membuat kunci di KVM:
<Parameter>key_name_literal</Parameter> <Parameter ref="key.name.variable"/>
Pada contoh pertama, nilai literal "key_name_literal" disimpan di KVM sebagai kunci
  nama. Pada instance kedua, nilai apa pun yang ada dalam key.name.variable akan menjadi
  nama kunci dalam KVM. Misalnya, jika key.name.variable berisi
  nilai foo, kuncinya akan diberi nama "foo".
Saat Anda ingin mengambil kunci dan nilai kunci dengan operasi GET (atau hapus dengan
  DELETE), <Parameter> harus sesuai dengan 
nama kunci di KVM. Sebagai
  jika nama kunci dalam KVM adalah "{i>foo<i}, Anda dapat menentukan nilai literal dengan
  <Parameter>foo</Parameter> atau tentukan variabel yang berisi variabel yang tepat
  "foo", seperti ini: <Parameter ref="variable.containing.foo"/>.