Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Mengonfigurasi cara penulisan nilai yang di-cache pada 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).
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>
<PopulateCache> atribut
Tabel berikut menjelaskan atribut yang umum untuk semua elemen induk kebijakan:
Atribut | Deskripsi | Default | Ketersediaan |
---|---|---|---|
name |
Nama internal kebijakan. Nilai atribut Secara opsional, gunakan elemen |
T/A | Wajib |
continueOnError |
Tetapkan ke Setel ke |
salah | Opsional |
enabled |
Setel ke Setel ke |
true | Opsional |
async |
Atribut ini tidak digunakan lagi. |
salah | Tidak digunakan lagi |
<DisplayName> 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 |
---|---|
Ketersediaan | Opsional |
Jenis | String |
<CacheKey> elemen
Mengonfigurasi pointer unik ke sepotong 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
di cache oleh pengguna.
Saat runtime, nilai <KeyFragment>
ditambahkan dengan awalan
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.
<CacheResource> elemen
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 Membuat dan mengedit lingkungan cache.
<CacheKey>/<KeyFragment> elemen
Menentukan nilai yang harus disertakan dalam kunci cache, membuat namespace untuk pencocokan terhadap respons yang di-cache.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
Default: |
T/A |
Kehadiran: |
Opsional |
Jenis: |
T/A |
Ini bisa berupa kunci (nama statis yang Anda berikan) atau nilai (entri dinamis yang ditetapkan oleh merujuk ke variabel). Semua fragmen yang ditentukan digabungkan (ditambah awalan) yang digabungkan menjadi 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 | Jenis | Default | Wajib | Deskripsi |
---|---|---|---|---|
referensi | string | Tidak |
Variabel yang digunakan untuk mendapatkan nilai. Tidak boleh digunakan jika elemen ini berisi nilai literal. |
<CacheKey>/<Prefix> elemen
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 ingin menentukan nilai Anda sendiri
bukan nilai yang dienumerasi <Scope>
. Jika ditentukan,
<Prefix>
menambahkan nilai kunci cache untuk entri yang ditulis ke cache. J
Nilai elemen <Prefix>
mengganti elemen <Scope>
dengan sejumlah nilai.
Anda menggunakan elemen <Prefix>
bersama dengan
<CacheKey>
dan <Scope>
. Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan kunci cache.
<ExpirySettings> elemen
Menentukan kapan entri cache harus berakhir. Kapan
ada, <TimeoutInSeconds>
penggantian
<TimeOfDay>
dan <ExpiryDate>
.
<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>
Menggunakan 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 |
<ExpiryDate> |
Menentukan tanggal saat entri cache harus berakhir. Menentukan string dalam formulir
<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 maksimum ini adalah 30 hari. |
<TimeOfDay> |
Menentukan waktu saat entri cache harus berakhir.
Tentukan string dalam bentuk <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.
<Scope> 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 adalah ditambahkan dalam formulir orgName __ envName __. Jika Anda menentukan entri |
Application |
Nama proxy API digunakan sebagai awalan. Kunci cache ditambahkan dalam bentuk orgName__envName__apiProxyName. |
Proxy |
Konfigurasi ProxyEndpoint digunakan sebagai awalan. Kunci cache ditambahkan dalam formulir orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName . |
Target |
Konfigurasi TargetEndpoint digunakan sebagai awalan. Kunci cache ditambahkan dalam formulir 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:
Kunci cache ditambahkan dalam formulir orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName Misalnya, string lengkap mungkin terlihat seperti ini: apifactory__test__weatherapi__16__default__apiAccessToken. |
<Source> elemen
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 <CacheKey>
,
<Scope>
, dan <Prefix>
untuk menentukan kunci yang
dapat digunakan dari kebijakan <LookupCache>
untuk mengambil nilainya. Gunakan
<ExpirySettings>
untuk mengonfigurasi kapan nilai yang di-cache akan habis masa berlakunya.
Penyimpanan cache tujuan umum dengan kebijakan filledCache, kebijakan LookupCache, dan kebijakan InvalidateCache
baik {i>cache<i} yang Anda konfigurasi atau {i>
cache bersama<i} yang disertakan secara default. Dalam kebanyakan kasus,
cache bersama yang mendasarinya akan
memenuhi kebutuhan Anda. Untuk menggunakan cache ini, cukup hilangkan
Elemen <CacheResource>
.
Batas cache: Berbagai batas cache diterapkan, seperti nama dan ukuran nilai, jumlah total {i>cache<i}, jumlah item dalam {i>cache<i}, dan kedaluwarsa.
Untuk mengetahui informasi selengkapnya tentang penyimpanan data pokok, lihat Cache internal. Untuk informasi selengkapnya tentang mengonfigurasi cache, lihat Membuat dan mengedit cache lingkungan.
Tentang enkripsi cache
Edge for Public Cloud: Cache hanya dienkripsi di PCI- dan mendukung HIPAA tidak di organisasi lain. Enkripsi untuk organisasi tersebut dikonfigurasikan selama organisasi penyediaan resource.
Kode error
Bagian ini menjelaskan kode kesalahan dan pesan kesalahan yang dikembalikan dan variabel kesalahan yang disetel oleh Edge saat kebijakan ini memicu kesalahan. Informasi ini penting untuk diketahui jika Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Penanganan kesalahan.
Error runtime
Error ini dapat terjadi saat kebijakan dijalankan.
Kode error | Status HTTP | Terjadi saat |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Entri tidak dapat di-cache. Objek pesan yang di-cache bukan merupakan instance yang dapat diserialisasi. |
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 Mengisi Cache ditetapkan ke
nama yang tidak ada di lingkungan tempat proxy API di-deploy. |
build |
CacheNotFound |
Cache yang ditentukan dalam elemen <CacheResource> tidak
ada. |
build |
Variabel kesalahan
Variabel ini ditetapkan saat kebijakan ini memicu error. Untuk informasi selengkapnya, lihat Yang perlu Anda ketahui tentang error kebijakan.
Variabel | Di 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>