Kebijakan InvalidateCache

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Mengonfigurasi cara nilai yang di-cache harus dihapus dari cache.

Kebijakan ini ditujukan untuk digunakan dalam caching jangka pendek tujuan umum. Kebijakan ini digunakan bersama dengan kebijakan Populate Cache (untuk menulis entri) dan kebijakan Lookup Cache (untuk membaca entri cache).

Untuk menyimpan respons resource backend dalam cache, lihat kebijakan Cache Respons.

Referensi elemen

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

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

Atribut <InvalidateCache>

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

Atribut Deskripsi Default Ketersediaan
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.

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

T/A Wajib
continueOnError

Tetapkan ke false untuk menampilkan error saat kebijakan gagal. Diharapkan untuk sebagian besar kebijakan.

Setel ke true agar eksekusi alur dapat dilanjutkan bahkan setelah kebijakan gagal.

salah Opsional
enabled

Setel ke true untuk menerapkan kebijakan.

Setel ke false untuk menonaktifkan kebijakan. Kebijakan ini tidak akan ditegakkan meskipun tetap terikat pada alur.

true Opsional
async

Atribut ini tidak digunakan lagi.

salah Tidak digunakan lagi

&lt;DisplayName&gt; 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 name kebijakan akan menjadi data

Ketersediaan Opsional
Jenis String

Elemen <CacheContext>/<APIProxyName>

Menentukan nama aplikasi yang menambahkan entri cache.

<APIProxyName>application_that_added_the_entry</APIProxyName>

Atribut

Atribut Deskripsi Default Ketersediaan Jenis
ref Variabel dengan nama aplikasi. T/A Opsional String

Elemen <CacheContext>

Menentukan cara membuat kunci cache saat nilai elemen Prefix tidak ditentukan, atau untuk menghapus entri cache yang ditambahkan oleh proxy API lain.

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

Digunakan untuk membuat CacheKey. Nilai untuk APIProxyName, ProxyName, dan TargetName wajib ada jika awalan CacheKey (yaitu, awalan kustom) tidak digunakan untuk menghapus entri cache yang ditambahkan oleh proxy API lain.

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> diawali dengan nilai elemen <Scope> atau nilai <Prefix>. Misalnya, 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 mengetahui informasi selengkapnya, lihat Bekerja dengan kunci cache.

Elemen <CacheResource>

Menentukan cache tempat pesan harus disimpan.

Hapus elemen ini sepenuhnya jika kebijakan ini (dan kebijakan PopulateCache serta LookupCache 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 Membuat dan mengedit cache lingkungan.

Elemen <CacheKey>/<KeyFragment>

Menentukan nilai yang harus disertakan dalam kunci cache, sehingga membuat namespace untuk mencocokkan permintaan dengan respons yang di-cache.

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

Default:

T/A

Kehadiran:

Opsional

Jenis:

T/A

Ini dapat berupa kunci (nama statis yang Anda berikan) atau nilai (entri dinamis yang ditetapkan dengan mereferensikan variabel). Semua fragmen yang ditentukan digabungkan (ditambah awalan) untuk membuat kunci cache.

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

Anda menggunakan elemen <KeyFragment> bersama dengan <Prefix> dan <Scope>. Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan kunci cache.

Atribut

Atribut Deskripsi Default Ketersediaan Jenis
ref Variabel yang akan diambil nilainya. Tidak boleh digunakan jika elemen ini berisi nilai literal. T/A Opsional String

Elemen <CacheKey>/<Prefix>

Menentukan nilai yang akan digunakan sebagai awalan kunci cache.

<Prefix>prefix_string</Prefix>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Gunakan nilai ini, bukan <Scope>, jika Anda ingin menentukan nilai Anda sendiri, bukan nilai yang di-enumerasi <Scope>. Jika ditentukan, <Prefix> menambahkan nilai kunci cache untuk entri yang ditulis ke cache. Nilai elemen <Prefix> menggantikan nilai elemen <Scope>.

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

Elemen <CacheContext>/<ProxyName>

Menentukan nama proxy yang datanya di-cache.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Atribut

Atribut Deskripsi Default Ketersediaan Jenis
ref Variabel yang akan diambil nilainya. Tidak boleh digunakan jika elemen ini berisi nilai literal. T/A Opsional String

Elemen <PurgeChildEntries>

true untuk menghapus entri cache yang memiliki nilai yang sama dengan yang ditetapkan oleh elemen <KeyFragment> yang dikonfigurasi untuk kebijakan ini. Nilai di bagian lain dari kunci cache, seperti pada elemen <Prefix>, tidak dipertimbangkan.

Perhatikan bahwa elemen <KeyFragment> harus ditentukan. Jika tidak, menetapkan nilai benar untuk <PurgeChildEntries> dapat menyebabkan penghapusan semua entri dalam cache.

Membatalkan semua entri cache dengan nilai fragmen kunci yang sama dapat menjadi cara yang berguna untuk menghapus beberapa entri terkait sekaligus.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

Default:

false

Kehadiran:

Opsional

Jenis:

Boolean

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 berbentuk berikut saat cakupan disetel 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.

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

Nilai yang dapat diterima

Nilai Cakupan Deskripsi
Global

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

Jika Anda menentukan entri <CacheKey> dengan <KeyFragment> apiAccessToken dan cakupan <Global>, setiap entri disimpan sebagai orgName__envName__apiAccessToken, diikuti dengan nilai token akses yang diserialkan. Untuk proxy API yang di-deploy di lingkungan yang disebut 'test' dalam 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 dalam bentuk orgName__envName__applicationName.

Proxy

Konfigurasi ProxyEndpoint digunakan sebagai awalan.

Kunci cache diawali dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName .

Target

Konfigurasi TargetEndpoint digunakan sebagai awalan.

Kunci cache yang ditambahkan dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName .

Exclusive

Default. Ini adalah yang paling spesifik, sehingga meminimalkan risiko konflik namespace dalam cache tertentu.

Awalan memiliki 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 yang ditambahkan dalam bentuk orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

Misalnya, string lengkapnya mungkin terlihat seperti ini:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Elemen <CacheContext>/<TargetName>

Menentukan nama endpoint target yang datanya di-cache.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Atribut

Atribut Deskripsi Default Ketersediaan Jenis
ref Variabel yang akan diambil nilainya. Tidak boleh digunakan jika elemen ini berisi nilai literal. T/A Opsional String

Catatan penggunaan

Caching tujuan umum dengan kebijakan Populate Cache, 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 ini, cukup hapus elemen <CacheResource>.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi cache, lihat Membuat dan mengedit cache lingkungan. Untuk mengetahui informasi selengkapnya tentang penyimpanan data pokok, lihat Internal cache.

Kode error

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

Awalan kode error

T/A

Error runtime

Kebijakan ini tidak menampilkan error runtime apa pun.

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> dalam kebijakan InvalidateCache ditetapkan ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.
CacheNotFound Error ini terjadi jika cache tertentu yang disebutkan dalam pesan error tidak dibuat pada komponen Pemroses Pesan tertentu.

Variabel kesalahan

T/A

Contoh respons error

T/A