Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Saat menggunakan kebijakan cache, Anda memastikan keunikan kunci nilai yang di-cache dengan mengonfigurasi cache tombol. Kunci cache, bersama dengan nilai lain yang dapat Anda konfigurasi, memberikan cara yang andal untuk keluar data yang sama dengan yang Anda masukkan. Anda menggunakan kunci cache dengan kebijakan Isi Cache, kebijakan LookupCache, kebijakan InvalidateCache, dan Cache Respons kebijakan kami.
Nilai-nilai elemen konfigurasi --
<CacheKey>
/<KeyFragment>
, <Scope>
, dan
<Prefix>
-- disambungkan untuk membuat ID yang dikaitkan dengan
nilai yang Anda masukkan ke dalam {i>cache<i}. Anda menggunakan konfigurasi yang sama ini untuk mengambil nilai.
Dengan elemen konfigurasi kebijakan cache berikut, Anda dapat membuat kunci cache:
Elemen Konfigurasi Cache | Deskripsi |
---|---|
<CacheKey> /<KeyFragment> |
Gunakan <CacheKey> elemen <KeyFragment> yang digabungkan untuk
menentukan ID unik untuk entri cache. Nilai {i>KeyFragment <i}dapat berupa
literal statis atau
diatur dari variabel. |
<Scope> atau <Prefix> |
Gunakan elemen <Scope> atau <Prefix> untuk mengetahui lebih lanjut
kunci cache namespace. <Scope> mengenumerasi daftar nilai yang telah ditentukan.
Elemen <Prefix> menggantikan <Scope> dengan sebuah nilai
pilihan Anda sendiri. |
Nilai ini digabungkan dalam bentuk berikut, dengan <Scope>
atau
Nilai <Prefix>
dipisahkan dari nilai KeyFragment dengan garis bawah ganda.
Beberapa nilai KeyFragment juga dipisahkan dengan garis bawah ganda.
cakupan | prefix__keyfragment[__keyfragment]
Dengan Cache Respons , Anda dapat secara opsional menambahkan kunci cache ini dengan nilai dari respons Accept {i>header<i}.
Menggunakan <CacheKey>
Elemen <CacheKey>
mengonfigurasi cara Edge membuat ID unik
(sebuah kunci) untuk setiap entri cache yang dibuatnya. Saat Edge mengambil nilai yang di-cache, Edge menggunakan cache
untuk menemukan
nilai yang benar. Dalam kebijakan ResponseCache, satu konfigurasi menentukan kunci
untuk penyimpanan cache dan pengambilan. Dalam kebijakan IsiCache dan LookupCache, setiap kebijakan harus
memiliki elemen <CacheKey>
yang identik untuk memastikan bahwa nilai yang diambil dari
cache sesuai dengan
nilai yang dimasukkan.
Elemen <CacheKey>
dapat mencakup beberapa
Elemen <KeyFragment>
. Saat runtime, nilai yang ditentukan oleh
Elemen <KeyFragment>
digabungkan dengan dua garis bawah di antaranya
untuk membentuk bagian
dari kunci {i>cache<i}.
Misalnya, konfigurasi berikut akan membuat nilai hello__world
untuk digunakan
dalam kunci cache:
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Anda juga dapat menggunakan nilai variabel dalam kunci cache dengan mereferensikan variabel tersebut di
<KeyFragment>
, seperti yang ditampilkan di sini:
<KeyFragment ref="variable_name"/>
Misalnya, untuk membuat nilai kunci cache menggabungkan Content-Type pesan permintaan, lakukan seperti berikut:
<KeyFragment ref="request.header.Content-Type"/>
Dalam konfigurasi berikut, variabel request.header.Content-Type
memiliki
nilai application/json
.
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Ini menghasilkan kunci cache yang diakhiri dengan apiAccessToken__application/json__bar
.
Untuk mengetahui daftar variabel yang dapat Anda gunakan, lihat artikel Referensi variabel.
Kunci cache yang berasal dari kueri parameter
Menggunakan variabel seperti request.queryparam.<queryparam_name> dan request.querystring, Anda bisa mengonfigurasi kunci cache sehingga kunci tersebut menyertakan bagian dari string kueri permintaan. Sebagai misalnya, URL berikut menggunakan dua parameter kueri -- param1 dan param2 -- yang dapat Anda gunakan di kunci cache Anda:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Elemen <CacheKey>
Anda dapat menyertakan nilai-nilai ini dengan konfigurasi
seperti berikut:
<CacheKey> <KeyFragment ref="request.queryparam.param1" /> <KeyFragment ref="request.queryparam.param2" /> <CacheKey>
Saat runtime, kunci cache akan menyertakan nilai parameter yang disambungkan, seperti dalam berikut ini:
other_key_parts__value1__value2
Perlu diingat bahwa ketika Anda menggunakan variabel untuk memasukkan nilai dari parameter, nilai akan
disambungkan dalam urutan yang disarankan oleh urutan elemen <KeyFragment>
. Selain itu,
perhatikan bahwa Edge hanya akan menggunakan nilai-nilai yang Anda referensikan secara spesifik
Elemen <KeyFragment>
. Jika daftar parameter kueri permintaan Anda bervariasi,
variasi tidak akan diperhitungkan dalam kunci cache.
Alternatifnya adalah dengan menggunakan variabel request.querystring, yang menyisipkan seluruh string
parameter secara harfiah sebagai
bagian dari kunci cache. Perlu diingat bahwa meskipun metode ini memperhitungkan
semua parameter. Jika urutan parameter bervariasi dari satu permintaan ke permintaan berikutnya,
kunci tersebut akan berbeda. Dengan kata lain, param1=value1¶m2=value2
dan
param2=value2¶m1=value1
tidak menghasilkan nilai kunci cache yang sama.
Untuk mengetahui daftar variabel yang dapat Anda gunakan, lihat artikel Referensi variabel.
Menggunakan <Cakupan> dan <Prefix>
Elemen <Scope>
dan <Prefix>
memberikan cara untuk
menambahkan awalan namespace. Nilai yang diwakilinya ditambahkan ke cache Anda
tombol.
Elemen <Scope>
digunakan secara default. Ini adalah enumerasi yang nilainya
mulai dari yang luas hingga sempit, dengan yang paling sempit sebagai setelan defaultnya. Nilai {i>default<i} ini digunakan kecuali
Anda menentukan nilai lain atau menentukan nilai elemen <Prefix>
. Anda dapat
mengganti nilai <Scope>
menggunakan elemen <Prefix>
, dan
jadi tentukan nilai khusus untuk ruang nama.
Misalnya, nilai <Scope>
"Global" -- ruang lingkup terluas -- mewakili
nama organisasi dan lingkungannya. Jadi, jika {i>proxy<i} Anda di-deploy di organisasi yang disebut
'perusahaansaya' dan lingkungan bernama 'prod', nilai awal yang dihasilkan akan
berikut ini:
Konfigurasi | Hasil |
---|---|
<Scope>Global</Scope> |
mycompany__prod__ . |
Jika Anda menggunakan Cakupan global dengan kunci cache yang didefinisikan di atas, hasilnya adalah sebagai berikut ini:
Konfigurasi | Hasil |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world . |
Seperti yang dijelaskan dalam kebijakan LookupCache, cakupan ini dapat dikonfigurasi untuk meningkatkan kekhususan dari Global menjadi Eksklusif. Cakupan Eksklusif adalah spesifik, dan karenanya mewakili risiko minimal dari tumbukan namespace dalam cache yang diberikan. Setiap entri cache dengan cakupan Eksklusif diawali dalam bentuk berikut:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Misalnya, kunci cache yang dibuat dari penggunaan nilai Eksklusif untuk <Scope>
akan terlihat seperti berikut:
apifactory__test__weatherapi__16__default__apiAccessToken