Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.
Saat menggunakan kebijakan cache, Anda memastikan keunikan kunci nilai yang di-cache dengan mengonfigurasi kunci cache. Kunci cache, bersama dengan nilai lain yang dapat Anda konfigurasi, memberi Anda cara yang andal untuk mendapatkan data yang sama dengan yang Anda masukkan. Anda menggunakan kunci cache dengan kebijakan PopulateCache, kebijakan LookupCache, kebijakan InvalidateCache, dan kebijakan ResponseCache.
Apigee menggunakan nilai elemen konfigurasi --
<Scope>
,
<CacheKey>
/<Prefix>
, dan
<CacheKey>
/<KeyFragment>
-- untuk menyusun
nilai untuk kunci cache, yang merupakan ID yang dikaitkan dengan
nilai dalam cache. Komposisi kunci cache berfungsi dengan cara yang sama dengan semua kebijakan cache.
Dengan elemen konfigurasi kebijakan cache berikut, Anda dapat membuat kunci cache:
Elemen Konfigurasi Cache | Deskripsi |
---|---|
<Scope> atau <CacheKey> /
<Prefix>
|
Gunakan elemen <Scope> atau
<CacheKey> <Prefix>
untuk mengonfigurasi awalan yang akan diterapkan ke kunci cache akhir.
<Scope> menghitung daftar nilai yang telah ditentukan sebelumnya. Elemen
<CacheKey> <Prefix>
menggantikan <Scope> dengan nilai tetap pilihan
Anda sendiri.
|
<CacheKey> /<KeyFragment> |
Gunakan satu atau beberapa elemen <CacheKey>
<KeyFragment> yang digabungkan untuk menentukan ID
unik untuk entri cache. Nilai KeyFragment dapat berupa literal statis
atau ditetapkan dari variabel.
|
Apigee menyusun kunci cache dari dua bagian, bagian awalan dan bagian fragmen komposit, yang dipisahkan oleh garis bawah ganda.
PREFIX_PART__FRAGMENT_PART
Bagian awalan ditentukan oleh elemen <Scope>
, atau
elemen <CacheKey>
<Prefix>
jika ada. Bagian fragmen terdiri dari setiap nilai dari setiap
elemen <KeyFragment>
, yang digabungkan dengan garis bawah ganda.
Dengan kebijakan Cache Respons, Anda dapat menambahkan kunci cache ini dengan nilai dari header Terima respons secara opsional.
Menggunakan <CacheKey>
Elemen <CacheKey>
mengonfigurasi cara Apigee akan membuat
ID unik (kunci) untuk setiap entri cache yang dibuatnya. Saat mengambil nilai yang di-cache, Apigee menggunakan kunci cache untuk menemukan nilai yang benar.
Dalam kebijakan ResponseCache, satu konfigurasi menentukan kunci untuk
penyimpanan dalam cache dan pengambilan. Dalam kebijakan PopulateCache dan LookupCache, setiap
kebijakan harus memiliki elemen <CacheKey>
yang identik untuk memastikan
bahwa nilai yang diambil dari cache sesuai dengan nilai yang dimasukkan di sana.
Elemen <CacheKey>
dapat menyertakan satu elemen
<Prefix>
opsional serta satu atau beberapa
elemen <KeyFragment>
. Saat runtime, Apigee menggabungkan nilai yang ditentukan dari setiap bagian dengan dua garis bawah di antaranya untuk membentuk kunci cache.
Misalnya, konfigurasi berikut membuat nilai
myprefix__hello__world
untuk digunakan dalam kunci cache:
<CacheKey> <Prefix>myprefix</Prefix> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Anda dapat mengonfigurasi Apigee untuk menggunakan kunci cache yang disusun secara dinamis dengan
mereferensikan variabel dalam elemen <KeyFragment>
, seperti
yang ditunjukkan di sini:
<KeyFragment ref="variable_name"/>
Misalnya, agar nilai kunci cache menyertakan Content-Type pesan permintaan, Anda dapat melakukannya sebagai berikut:
<KeyFragment ref="request.header.Content-Type"/>
Pertimbangkan konfigurasi berikut:
<CacheKey> <Prefix>system1</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Jika variabel request.header.Content-Type
memiliki nilai
application/json
, hal ini akan menghasilkan kunci cache
system1__apiAccessToken__application/json__bar
.
Anda dapat menggunakan variabel kustom atau yang ditentukan platform dalam
atribut ref
.
Kunci cache yang berasal dari parameter kueri
Dengan menggunakan variabel seperti request.queryparam.<queryparam_name> dan request.querystring, Anda dapat mengonfigurasi kunci cache sehingga kunci tersebut menyertakan bagian string kueri permintaan. Misalnya, URL berikut menggunakan dua parameter kueri -- param1 dan param2 -- yang dapat Anda gunakan dalam kunci cache:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Elemen <CacheKey>
Anda dapat menggabungkan 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 digabungkan, seperti dalam contoh berikut:
prefix_part__value1__value2
Sebagai ganti menentukan beberapa parameter kueri yang berbeda, alternatifnya adalah menggunakan variabel request.querystring
, yang menyisipkan seluruh string parameter secara harfiah sebagai bagian dari kunci cache. Perhatikan bahwa
meskipun metode ini memperhitungkan semua parameter, jika urutan
parameter bervariasi dari satu permintaan ke permintaan berikutnya, kuncinya akan berbeda.
Dengan kata lain, param1=value1¶m2=value2
dan
param2=value2¶m1=value1
tidak menghasilkan nilai kunci cache
yang sama.
Menggunakan <Scope> dan <Prefix>
Elemen <Scope>
dan <CacheKey>
/<Prefix>
menyediakan cara untuk mengatur nilai yang di-cache ke dalam namespace. Apigee menambahkan nilai yang berasal darinya ke kunci cache Anda.
Keuntungan menggunakan cakupan atau awalan dalam kunci cache adalah Anda dapat
membatalkan validasi semua nilai yang memiliki satu awalan, dengan satu panggilan ke
kebijakan InvalidateCache.
Elemen <Scope>
digunakan secara default. Ini adalah
enumerasi yang nilainya berkisar dari luas hingga sempit, dengan yang paling sempit sebagai
default. Nilai default ini digunakan kecuali jika Anda menentukan nilai lain atau
menentukan nilai elemen <Prefix>
. Anda dapat mengganti
nilai <Scope>
menggunakan elemen <CacheKey>
/
<Prefix>
, sehingga menentukan nilai kustom untuk
penamaan ruang.
Misalnya, nilai <Scope>
"Global" -- cakupan
terluas -- mewakili nama organisasi dan lingkungan. Jadi, jika proxy Anda di-deploy di organisasi bernama 'mycompany' dan lingkungan bernama 'prod', nilai yang ditambahkan sebelumnya akan menjadi seperti berikut:
mycompany__prod__[FRAGMENT_PART]
Seperti yang dijelaskan dalam kebijakan LookupCache, cakupan dapat dikonfigurasi untuk meningkatkan spesifitas dari Global menjadi Eksklusif. Cakupan Eksklusif adalah yang paling spesifik, sehingga mewakili risiko tabrakan namespace yang minimal dalam cache tertentu. Setiap entri cache dengan cakupan Eksklusif diberi awalan dalam bentuk berikut:
orgName__envName__apiProxyName__deployedRevisionNumber__nameof(proxyEndpoint|targetEndpoint)__[serializedCacheKey]
Berikut beberapa contohnya. Ini mengasumsikan bahwa revisi ke-16 proxy Anda yang bernama 'weatherapi' di-deploy di organisasi bernama 'mycompany' dan lingkungan bernama 'prod', dan nama proxyEndpoint adalah 'default', dan kebijakan cache dilampirkan ke alur di proxyEndpoint.
Konfigurasi | Hasil |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world . |
<Scope>Exclusive</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__weatherapi__16__default__hello__world |
<Scope>Exclusive</Scope> <CacheKey> <Prefix>system1</Prefix> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
system1__hello__world |