Kebijakan LookupCache

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Baca dokumentasi Apigee Edge.

ikon kebijakan

Mengonfigurasi cara pengambilan nilai yang di-cache saat runtime.

Kebijakan ini ditujukan untuk digunakan dalam penyimpanan dalam cache jangka pendek tujuan umum. Kebijakan ini digunakan bersama dengan kebijakan PopulateCache (untuk menulis entri) dan kebijakan InvalidateCache (untuk membatalkan validasi entri).

Kebijakan ini adalah Kebijakan yang dapat diperluas dan penggunaan kebijakan ini mungkin memiliki implikasi biaya atau penggunaan, bergantung pada lisensi Apigee Anda. Untuk informasi tentang jenis kebijakan dan implikasi penggunaan, lihat Jenis kebijakan.

Untuk meng-cache respons resource backend, lihat kebijakan ResponseCache.

Referensi elemen

Berikut adalah daftar elemen yang dapat Anda konfigurasi pada kebijakan ini.

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

Cache bersama disertakan secara default. Untuk menggunakan cache bersama, hapus elemen <CacheResource> dalam konfigurasi kebijakan ini.

Untuk mengetahui informasi selengkapnya tentang penyimpanan data yang mendasarinya, lihat Internal cache. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi cache, lihat Cache tujuan umum.

Atribut <LookupCache>

Tabel berikut menjelaskan atribut yang sama untuk semua elemen induk kebijakan:

Atribut Deskripsi Default Kehadiran
name

Nama internal kebijakan. Nilai atribut name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Atau, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural-language yang berbeda.

T/A Diperlukan
continueOnError

Setel ke false untuk menampilkan error jika kebijakan gagal. Ini adalah perilaku yang wajar untuk sebagian besar kebijakan.

Setel ke true agar eksekusi alur tetap berlanjut bahkan setelah kebijakan gagal. Lihat juga:

false Opsional
enabled

Setel ke true untuk menerapkan kebijakan.

Setel ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap melekat pada alur.

true Opsional
async

Atribut ini sudah tidak digunakan lagi.

false Tidak digunakan lagi

Elemen <DisplayName>

Gunakan selain atribut name untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural-language yang berbeda.

<DisplayName>Policy Display Name</DisplayName>
Default

T/A

Jika Anda menghapus elemen ini, nilai atribut name kebijakan akan digunakan.

Kehadiran Opsional
Jenis String

Elemen <AssignTo>

Menentukan variabel tempat entri cache ditetapkan setelah diambil dari cache. Variabel harus dapat ditulis. Jika pencarian cache tidak mengambil nilai, variabel tidak akan ditetapkan.

<AssignTo>variable_to_receive_cached_value</AssignTo>

Default:

T/A

Kehadiran:

Wajib

Jenis:

String

Elemen <CacheKey>

Mengonfigurasi pointer unik ke bagian data yang disimpan dalam cache.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Default:

T/A

Kehadiran:

Wajib

Jenis:

T/A

<CacheKey> membuat nama setiap bagian data yang disimpan dalam cache.

Saat runtime, nilai <KeyFragment> ditambahkan dengan nilai elemen <Scope> atau nilai <Prefix>. Misalnya, hal berikut menghasilkan kunci cache UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Anda menggunakan elemen <CacheKey> bersama dengan <Prefix> dan <Scope>. Untuk informasi selengkapnya, lihat Menggunakan kunci cache.

Elemen <CacheLookupTimeoutInSeconds>

Menentukan jumlah detik setelah pencarian cache yang tidak berhasil akan dianggap sebagai cache-miss. Jika hal ini terjadi, alur akan dilanjutkan di sepanjang jalur cache-miss.

<CacheLookupTimeoutInSeconds>12</CacheLookupTimeoutInSeconds>

Default:

12

Kehadiran:

Opsional

Jenis:

Bilangan bulat

Elemen<CacheResource>

Menentukan cache tempat pesan akan disimpan.

Hapus elemen ini sepenuhnya jika kebijakan ini (dan kebijakan PopulateCache dan InvalidateCache yang sesuai) menggunakan cache bersama yang disertakan.

<CacheResource>cache_to_use</CacheResource>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi cache, lihat Cache tujuan umum.

Elemen <CacheKey>/<KeyFragment>

Menentukan nilai yang harus disertakan dalam kunci cache. Tentukan variabel untuk melakukan dereferensi dengan atribut ref, atau nilai tetap.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Default:

T/A

Kehadiran:

Opsional

Jenis:

T/A

Saat runtime, Apigee membuat kunci cache dengan menambahkan nilai yang diperoleh dari elemen <Scope> atau elemen <Prefix>, ke penyambungan nilai yang di-resolve dari setiap elemen <KeyFragment>. Untuk informasi selengkapnya, lihat Bekerja dengan kunci cache.

Atribut

Atribut Jenis Default Wajib Deskripsi
ref string Tidak

Variabel tempat nilai akan diambil. Tidak boleh digunakan jika elemen ini berisi nilai literal.

Elemen <CacheKey>/<Prefix>

Menentukan nilai yang akan digunakan sebagai awalan kunci cache.

<Prefix>prefix_string</Prefix>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Elemen <Prefix> menggantikan elemen <Scope>.

Saat runtime, Apigee membuat kunci cache dengan menambahkan nilai yang diperoleh dari elemen <Scope> atau elemen <Prefix>, ke penyambungan nilai yang di-resolve dari setiap elemen <KeyFragment>. Untuk informasi selengkapnya, lihat Bekerja dengan kunci cache.

Elemen <Scope>

Enumerasi yang digunakan untuk membuat awalan untuk kunci cache saat elemen <Prefix> tidak disediakan dalam elemen <CacheKey>.

<Scope>scope_enumeration</Scope>

Default:

"Eksklusif"

Kehadiran:

Opsional

Jenis:

String

Setelan <Scope> menentukan kunci cache yang ditambahkan di awal sesuai dengan nilai <Scope>. Misalnya, kunci cache akan menggunakan bentuk berikut saat cakupan ditetapkan ke Exclusive: orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Jika elemen <Prefix> ada di <CacheKey>, elemen tersebut akan menggantikan nilai elemen <Scope>. Nilai yang valid mencakup enumerasi di bawah.

Untuk informasi selengkapnya, lihat Menggunakan kunci cache.

Nilai yang dapat diterima

Global

Kunci cache dibagikan ke semua proxy API yang di-deploy di lingkungan. Kunci cache ditambahkan di awal dalam bentuk orgName __ envName __.

Jika Anda menentukan entri <CacheKey> dengan <KeyFragment> apiAccessToken dan cakupan <Global>, setiap entri akan disimpan sebagai orgName__envName__apiAccessToken, diikuti dengan nilai token akses yang diserialisasi. Untuk proxy API yang di-deploy di lingkungan yang disebut 'test' di organisasi yang disebut 'apifactory', token akses akan disimpan di bawah kunci cache berikut: apifactory__test__apiAccessToken.

Application

Nama proxy API digunakan sebagai awalan.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__applicationName.

Proxy

Konfigurasi ProxyEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName .

Target

Konfigurasi TargetEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName .

Exclusive

Default. Ini adalah yang paling spesifik, sehingga menimbulkan risiko tabrakan namespace minimal dalam cache tertentu.

Awalan adalah salah satu dari dua bentuk berikut:

  • Jika kebijakan dilampirkan ke alur ProxyEndpoint, awalan memiliki bentuk ApiProxyName_ProxyEndpointName.
  • Jika kebijakan dilampirkan di TargetEndpoint, awalan memiliki bentuk ApiProxyName_TargetName.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

Misalnya, string lengkap mungkin terlihat seperti ini:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Catatan penggunaan

Gunakan kebijakan ini untuk caching tujuan umum. Saat runtime, kebijakan LookupCache mengambil nilai dari cache, menetapkan nilai ke variabel yang Anda tentukan dengan elemen AssignTo (jika tidak ada nilai yang diambil, variabel tidak akan ditetapkan). Fungsi ini mencari nilai berdasarkan kunci cache yang dibuat melalui konfigurasi yang menggabungkan elemen CacheKey dan Scope. Dengan kata lain, untuk mengambil nilai tertentu yang ditambahkan ke cache oleh kebijakan PopulateCache, kebijakan LookupCache Anda harus memiliki elemen terkait kunci cache yang dikonfigurasi dengan cara yang sama seperti kebijakan PopulateCache.

Cache tujuan umum dengan kebijakan PopulateCache, kebijakan LookupCache, dan kebijakan InvalidateCache menggunakan cache yang Anda konfigurasi atau cache bersama yang disertakan secara default. Dalam sebagian besar kasus, cache bersama yang mendasarinya akan memenuhi kebutuhan Anda. Untuk menggunakan cache default, cukup hapus elemen <CacheResource>.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi cache, lihat Cache tujuan umum. Untuk mengetahui informasi selengkapnya tentang penyimpanan data yang mendasarinya, lihat Internal cache.

Variabel alur

Variabel alur dapat digunakan untuk mengonfigurasi perilaku runtime dinamis untuk kebijakan dan alur, berdasarkan header HTTP atau konten pesan, atau konteks yang tersedia di Alur. Untuk mengetahui informasi selengkapnya tentang variabel alur, lihat Referensi variabel alur.

Variabel Flow standar berikut tersedia setelah Anda menyesuaikan perilaku cache yang Anda tentukan dalam kebijakan LookupCache.

Variabel Jenis Izin Deskripsi
lookupcache.{policy-name}.cachename String Hanya Baca Menampilkan nama cache yang digunakan dalam kebijakan.
lookupcache.{policy-name}.cachekey String Hanya Baca Menampilkan kunci yang digunakan.
lookupcache.{policy-name}.cachehit Boolean Hanya Baca Benar jika kebijakan menemukan nilai untuk kunci cache yang ditentukan.
lookupcache.{policy-name}.assignto String Hanya Baca Menampilkan variabel tempat cache ditetapkan.

Kode error

Bagian ini menjelaskan pesan error dan variabel alur yang ditetapkan saat kebijakan ini memicu error. Informasi ini penting untuk diketahui jika Anda mengembangkan aturan error untuk proxy. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani error.

Awalan kode error

T/A

Error runtime

Kebijakan ini tidak menampilkan error runtime.

Error saat deployment

Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.

Nama error Penyebab Perbaiki
InvalidCacheResourceReference Error ini terjadi jika elemen <CacheResource> ditetapkan ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.
InvalidTimeout Jika elemen <CacheLookupTimeoutInSeconds> ditetapkan ke bilangan negatif, deployment proxy API akan gagal.
CacheNotFound Error ini terjadi jika cache tertentu yang disebutkan dalam pesan error belum dibuat di komponen Message Processor tertentu.

Variabel error

T/A

Contoh respons error

T/A