kebijakan filledCache

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Baca dokumentasi Apigee Edge.

ikon kebijakan

Mengonfigurasi cara nilai yang di-cache harus ditulis saat runtime.

Kebijakan Isi Cache dirancang untuk menulis entri dalam cache tujuan umum jangka pendek. Ini digunakan bersama dengan Lookup Kebijakan cache (untuk membaca entri cache) dan Batalkan kebijakan Cache (untuk membatalkan validasi entri).

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

Untuk meng-cache respons resource backend, lihat metode Kebijakan Cache Respons.

Referensi elemen

Berikut daftar elemen yang dapat Anda konfigurasi pada kebijakan ini.

<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1">
    <DisplayName>Populate Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSeconds>300</TimeoutInSeconds>
    </ExpirySettings>
    <Source>flowVar</Source>
</PopulateCache>

&lt;PopulateCache&gt; atribut

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

&lt;CacheKey&gt; elemen

Mengonfigurasi pointer unik ke bagian data yang disimpan dalam cache.

Kunci cache dibatasi hingga 2 KB.

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

Default:

T/A

Kehadiran:

Wajib

Jenis:

T/A

<CacheKey> menyusun nama setiap bagian data yang disimpan dalam {i>cache<i}.

Saat runtime, nilai <KeyFragment> ditambahkan dengan awalan Nilai elemen <Scope> atau nilai <Prefix>. Misalnya, berikut menghasilkan kunci cache UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

<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 akan disimpan.

Hilangkan sepenuhnya elemen ini jika kebijakan ini (dan LookupCache Anda yang terkait dan Kebijakan InvalidateCache) menggunakan cache bersama yang disertakan.

<CacheResource>cache_to_use</CacheResource>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

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

&lt;CacheKey&gt;/&lt;KeyFragment&gt; elemen

Menentukan nilai yang harus disertakan dalam kunci cache. Tentukan variabel yang akan dihapus referensinya dengan atribut ref, atau nilai tetap.

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

Default:

T/A

Kehadiran:

nol atau lebih

Jenis:

T/A

Pada 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
referensi string Tidak

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

&lt;CacheKey&gt;/&lt;Prefix&gt; elemen

Menentukan nilai tetap yang akan digunakan sebagai awalan kunci cache.

<Prefix>prefix_string</Prefix>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Elemen <Prefix> menggantikan elemen <Scope>.

Pada 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.

&lt;ExpirySettings&gt; elemen

Menentukan kapan entri cache harus berakhir.

<ExpirySettings>
  <!-- use exactly one of the following child elements -->
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

Default:

T/A

Kehadiran:

Wajib

Jenis:

T/A

Elemen turunan <ExpirySettings>

Gunakan tepat satu elemen turunan. Tabel berikut memberikan deskripsi dari elemen turunan dari <ExpirySettings>:

Elemen Turunan Deskripsi
<TimeoutInSeconds>

Jumlah detik saat entri cache berakhir.

<ExpirySettings>
  <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds>
</ExpirySettings>

Elemen ini menggantikan elemen TimeoutInSec yang sekarang tidak digunakan lagi.

<ExpiryDate>

Menentukan tanggal saat entri cache harus berakhir. Menentukan string dalam formulir mm-dd-yyyy.

<ExpirySettings>
  <ExpiryDate ref="var-containing-date">expiry</ExpiryDate>
</ExpirySettings>

Jika tanggal yang ditentukan sudah berlalu, kebijakan akan menerapkan waktu aktif maksimum ke entri yang di-cache. Durasi maksimumnya adalah 30 hari.

<TimeOfDay>

Menentukan waktu saat entri cache harus berakhir. Tentukan string dalam bentuk HH:mm:ss, dengan HH mewakili jam dalam format 24 jam, dalam zona waktu UTC. Misalnya, 14:30:00 menyiratkan 14.30 di sore hari.

<ExpirySettings>
  <TimeOfDay ref="var-containing-time">expiry</TimeOfDay>
</ExpirySettings>

Anda harus menetapkan hanya salah satu elemen turunan yang mungkin. Jika Anda menentukan beberapa elemen, urutan prioritasnya adalah:TimeoutInSeconds, ExpiryDate, TimeOfDay.

Dengan setiap elemen turunan <ExpirySettings> di atas, jika Anda menetapkan atribut ref opsional pada elemen turunan, kebijakan akan mengambil nilai masa berakhir dari variabel konteks bernama. Jika variabel tidak ditentukan, kebijakan menggunakan nilai teks literal dari elemen turunan.

&lt;Scope&gt; elemen

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

<Scope>scope_enumeration</Scope>

Default:

"Eksklusif"

Kehadiran:

Opsional

Jenis:

String

Setelan <Scope> menentukan kunci cache yang ditambahkan sesuai dengan nilai <Scope>. Misalnya, kunci {i>cache<i} akan berupa bentuk berikut ketika cakupan ditetapkan ke Exclusive:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

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

Anda menggunakan elemen <Scope> bersama dengan <CacheKey> dan <Prefix>. Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan 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 disimpan sebagai orgName__envName__apiAccessToken, diikuti oleh token akses yang diserialisasi. Untuk proxy API yang di-deploy di lingkungan yang disebut 'tes' dalam organisasi yang disebut {i>'apifactory'<i}, 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__apiProxyName.

Proxy

Konfigurasi ProxyEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

Konfigurasi TargetEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan di awal dalam bentuk orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

Default. Ini adalah yang paling spesifik, dan dengan demikian meminimalkan risiko namespace tabrakan dalam {i> cache<i} yang diberikan.

Awalan adalah salah satu dari dua bentuk berikut:

  • Jika kebijakan ini disertakan ke alur ProxyEndpoint, awalannya adalah dari ApiProxyName_ProxyEndpointName.
  • Jika kebijakan dilampirkan di TargetEndpoint, awalan memiliki bentuk ApiProxyName_TargetName.

Kunci cache ditambahkan dalam formulir orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

Misalnya, string lengkap mungkin terlihat seperti ini:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Elemen <Source>

Menentukan variabel yang nilainya harus ditulis ke cache.

<Source>source_variable</Source>

Default:

T/A

Kehadiran:

Wajib

Jenis:

String

Catatan penggunaan

Gunakan kebijakan ini untuk penyimpanan cache tujuan umum. Pada saat runtime, Kebijakan <PopulateCache> menulis data dari variabel yang Anda tentukan di <Source> ke cache yang Anda tentukan dalam <CacheResource>. Anda dapat menggunakan elemen <CacheKey>, <Scope>, dan <Prefix> untuk menentukan kunci yang dapat Anda gunakan dari kebijakan <LookupCache> untuk mengambil nilai. Gunakan <ExpirySettings> untuk mengonfigurasi kapan nilai yang di-cache akan habis masa berlakunya.

Penyimpanan cache tujuan umum dengan kebijakan fillCache, Kebijakan LookupCache, dan kebijakan InvalidateCache menggunakan baik {i>cache<i} yang Anda konfigurasi atau {i> cache bersama<i} yang disertakan secara default. Dalam sebagian besar kasus, cache bersama yang mendasarinya akan memenuhi kebutuhan Anda. Untuk menggunakan cache ini, cukup hilangkan Elemen <CacheResource>.

Batas cache: Berbagai batas cache berlaku, seperti nama dan ukuran nilai, jumlah total cache, jumlah item dalam cache, dan masa berlaku.

Untuk informasi selengkapnya tentang penyimpanan data pokok, lihat Internal cache.

Tentang enkripsi cache

Apigee dan Apigee Hybrid (versi 1.4 dan yang lebih baru): Cache dan KVM data selalu dienkripsi.

Kode error

Bagian ini menjelaskan kode kesalahan dan pesan error yang ditampilkan dan variabel kesalahan yang disetel oleh Apigee saat kebijakan ini memicu error. Informasi ini penting untuk diketahui apakah Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani kesalahan.

Error runtime

Error ini dapat terjadi saat kebijakan dieksekusi.

Kode kesalahan Status HTTP Terjadi saat
policies.populatecache.EntryCannotBeCached 500 Entri tidak dapat di-cache. Objek pesan yang di-cache bukan merupakan instance class yang dapat diserialisasi.

Error saat deployment

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

Nama error Penyebab Perbaikan
InvalidCacheResourceReference Error ini terjadi jika elemen <CacheResource> dalam kebijakan PopulateCache disetel ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.
CacheNotFound Cache yang ditentukan dalam elemen <CacheResource> tidak ada.

Variabel kesalahan

Variabel ini ditetapkan saat kebijakan ini memicu error. Untuk informasi selengkapnya, lihat Yang perlu Anda ketahui tentang error kebijakan.

Variabel Dari mana Contoh
fault.name="fault_name" fault_name adalah nama kesalahan, seperti yang tercantum dalam tabel Error runtime di atas. Nama kesalahan adalah bagian terakhir dari kode kesalahan. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. populatecache.POP-CACHE-1.failed = true

Contoh respons error

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

Contoh aturan kesalahan

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>