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 mengkonfigurasi, memberi Anda cara yang andal untuk mendapatkan data yang sama dengan yang Anda masukkan. Anda menggunakan kunci cache dengan kebijakan filledCache, Kebijakan LookupCache, kebijakan InvalidateCache, dan Kebijakan ResponseCache.
Apigee menggunakan nilai elemen konfigurasi --
<Scope>
,
<CacheKey>
/<Prefix>
, dan
<CacheKey>
/<KeyFragment>
-- untuk menulis
untuk kunci cache, yang merupakan ID yang terkait dengan
nilai dalam cache. Komposisi kunci cache bekerja
dengan cara yang sama pada semua
kebijakan cache.
Dengan elemen konfigurasi kebijakan cache berikut, Anda dapat membuat cache kunci:
Elemen Konfigurasi Cache | Deskripsi |
---|---|
<Scope> atau <CacheKey> /
<Prefix>
|
Gunakan <Scope> atau
<Prefix> <CacheKey>
untuk mengkonfigurasi awalan untuk
diterapkan ke kunci cache akhir.
<Scope> mengenumerasi daftar nilai yang telah ditentukan. Tujuan
Elemen <CacheKey> <Prefix>
mengganti <Scope> dengan nilai tetap Anda sendiri
memilih.
|
<CacheKey> /<KeyFragment> |
Gunakan satu atau beberapa <CacheKey>
Elemen <KeyFragment> digabungkan untuk menentukan
untuk entri cache. Nilai KeyFragment dapat berupa literal statis
atau diatur
dari variabel.
|
Apigee menyusun kunci cache dari dua bagian, yaitu bagian awalan dan komposit bagian fragmen, dipisahkan oleh garis bawah ganda.
PREFIX_PART__FRAGMENT_PART
Bagian awalan ditentukan oleh elemen <Scope>
, atau
elemen <Prefix>
<CacheKey>
jika
saat ini. Bagian fragmen terdiri dari masing-masing nilai dari setiap
Elemen <KeyFragment>
, digabungkan dengan garis bawah ganda.
Dengan Kebijakan Cache Respons, Anda dapat menambahkan kunci cache ini dengan nilai dari respons secara opsional Terima header.
Menggunakan <CacheKey>
Elemen <CacheKey>
mengonfigurasi cara Apigee membuat
pengenal unik (kunci) untuk setiap entri {i>cache<i} yang dibuatnya. Ketika Apigee
mengambil nilai yang di-cache, menggunakan kunci {i>cache<i} untuk menemukan nilai yang benar.
Dalam kebijakan ResponseCache, satu konfigurasi menentukan kunci untuk keduanya
penyimpanan ke cache dan pengambilan. Dalam kebijakan contentCache dan LookupCache, masing-masing
kebijakan harus memiliki elemen <CacheKey>
yang identik untuk memastikan
bahwa nilai yang diambil dari {i>cache<i} sesuai dengan nilai yang dimasukkan ke sana.
Elemen <CacheKey>
dapat menyertakan satu elemen
<Prefix>
serta satu atau lebih
<KeyFragment>
elemen. Saat runtime, Apigee menyambungkan
nilai yang ditentukan dari setiap bagian, 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 tersusun secara dinamis dengan
mereferensikan variabel dalam elemen <KeyFragment>
, sebagai
ditampilkan di sini:
<KeyFragment ref="variable_name"/>
Misalnya, untuk membuat nilai kunci cache menggabungkan Jenis-Konten dari pesan permintaan, Anda harus melakukan hal 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
, ini akan menghasilkan kunci cache
system1__apiAccessToken__application/json__bar
.
Anda dapat menggunakan variabel buatan platform atau kustom dalam
Atribut ref
.
Kunci cache yang berasal dari parameter kueri
Menggunakan variabel seperti request.queryparam.<queryparam_name> dan request.querystring, Anda dapat mengonfigurasi kunci cache sehingga kunci tersebut menyertakan bagian dari 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 menyertakan nilai-nilai ini dengan
seperti berikut ini:
<CacheKey> <KeyFragment ref="request.queryparam.param1" /> <KeyFragment ref="request.queryparam.param2" /> <CacheKey>
Saat runtime, kunci cache akan menyertakan nilai parameter yang disambungkan, seperti dalam hal berikut:
prefix_part__value1__value2
Daripada menetapkan beberapa parameter kueri yang berbeda, sebuah alternatif adalah
untuk menggunakan variabel request.querystring
, yang menyisipkan seluruh
parameter secara harfiah sebagai
bagian dari kunci cache. Perlu diingat bahwa
sementara metode ini memperhitungkan
semua parameter, jika urutan
parameter bervariasi dari satu permintaan ke permintaan berikutnya, maka kunci akan berbeda.
Dengan kata lain, param1=value1¶m2=value2
dan
param2=value2¶m1=value1
tidak menghasilkan cache yang sama
nilai kunci.
Menggunakan <Cakupan> dan <Prefix>
<Scope>
dan <CacheKey>
/
Elemen <Prefix>
memberikan cara untuk mengatur nilai yang di-cache
menjadi namespace. Apigee menambahkan nilai yang berasal darinya ke kunci cache Anda.
Keuntungan menggunakan cakupan atau awalan di kunci cache adalah Anda bisa
membatalkan semua nilai yang memiliki satu awalan, dengan satu panggilan ke
Kebijakan InvalidateCache.
Elemen <Scope>
digunakan secara default. Ini adalah
yang memiliki rentang nilai dari luas ke sempit, dengan yang terkecil sebagai
secara default. Nilai default ini akan digunakan kecuali jika Anda menentukan nilai lain atau
tentukan nilai elemen <Prefix>
. Anda dapat mengganti
Nilai <Scope>
dengan menggunakan <CacheKey>
/
<Prefix>
, dan tentukan nilai kustom untuk
ruang nama.
Misalnya, nilai <Scope>
"Global" -- yang paling luas
ruang lingkup -- mewakili nama organisasi dan lingkungan. Jadi, jika {i>proxy<i} Anda
yang di-deploy di organisasi bernama 'perusahaansaya' dan lingkungan yang bernama
'prod', nilai awal yang dihasilkan adalah sebagai berikut:
mycompany__prod__[FRAGMENT_PART]
Seperti yang dijelaskan dalam kebijakan LookupCache, cakupan dapat dikonfigurasi untuk meningkatkan kekhususan dari Global menjadi Eksklusif. Cakupan Eksklusif adalah paling spesifik, dan karenanya mewakili risiko minimal dari konflik namespace dalam {i>cache<i} tertentu. Setiap entri cache dengan cakupan Eksklusif diawali di format berikut:
orgName__envName__apiProxyName__deployedRevisionNumber__nameof(proxyEndpoint|targetEndpoint)__[serializedCacheKey]
Berikut beberapa contohnya. File ini mengasumsikan bahwa revisi ke-16 dari proxy Anda bernama 'weatherapi' sesuai dengan yang di-deploy di organisasi bernama 'perusahaansaya' dan lingkungan yang bernama 'prod', dan nama proxyEndpoint adalah 'default', dan bahwa kebijakan cache dilampirkan ke flow 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 |