Kebijakan ResponseCache

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

ikon kebijakan

Menyimpan data dalam cache dari resource backend, sehingga mengurangi jumlah permintaan ke resource. Saat aplikasi membuat permintaan ke URI yang sama, Anda dapat menggunakan kebijakan ini untuk menampilkan respons yang di-cache, bukan meneruskan permintaan tersebut ke server backend. Kebijakan ResponseCache dapat meningkatkan performa API melalui pengurangan latensi dan traffic jaringan.

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

Anda mungkin akan merasa ResponseCache paling berguna jika data backend yang digunakan oleh API Anda hanya diperbarui secara berkala. Misalnya, bayangkan Anda memiliki API yang mengekspos data laporan cuaca yang hanya diperbarui setiap sepuluh menit. Dengan menggunakan ResponseCache untuk menampilkan respons yang di-cache di antara refresh, Anda dapat mengurangi jumlah permintaan yang mencapai backend. Hal ini juga mengurangi jumlah hop jaringan.

Untuk caching jangka pendek tujuan umum, pertimbangkan untuk menggunakan kebijakan FillCache. Kebijakan tersebut digunakan bersama dengan kebijakan LookupCache (untuk membaca entri cache) dan kebijakan InvalidateCache (untuk entri yang tidak valid).

Tonton video berikut untuk mengetahui pengantar kebijakan Cache Respons.

Sampel

Cache 10 menit

Contoh ini menunjukkan cara menyimpan respons yang di-cache selama 10 menit.

Bayangkan Anda memiliki API di URL berikut:

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Anda menggunakan parameter kueri w sebagai kunci cache. Apigee memeriksa nilai parameter kueri w setiap kali permintaan diterima. Jika ada respons yang valid (yaitu, masih berlaku) di dalam cache, maka pesan respons yang di-cache akan ditampilkan ke klien yang meminta.

Sekarang bayangkan Anda memiliki kebijakan ResponseCache yang dikonfigurasi sebagai berikut.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

Saat pertama kali proxy API menerima pesan permintaan untuk URL berikut, responsnya akan di-cache. Pada permintaan kedua dalam waktu 10 menit, pencarian cache terjadi -- respons yang di-cache ditampilkan ke aplikasi tanpa permintaan yang diteruskan ke layanan backend.

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Lewati pencarian cache

Contoh berikut menunjukkan cara melewati pencarian cache dan cache telah di-refresh. Lihat juga video ini tentang penggunaan SkipCacheLookup.

Kondisi SkipCacheLookup opsional (jika dikonfigurasi) dievaluasi di jalur permintaan. Jika kondisi bernilai true (benar), pencarian cache akan dilewati dan cache akan dimuat ulang.

Penggunaan umum refresh cache bersyarat adalah kondisi yang menentukan header HTTP tertentu yang menyebabkan kondisi dievaluasi ke true. Aplikasi klien dengan skrip dapat dikonfigurasi untuk mengirimkan permintaan secara berkala dengan header HTTP yang sesuai, secara eksplisit menyebabkan cache respons di-refresh.

Misalnya, bayangkan panggilan ke API di URL berikut:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

Sekarang bayangkan kebijakan ResponseCache berikut yang dikonfigurasi pada proxy tersebut. Perhatikan bahwa kondisi pengabaian cache ditetapkan ke benar (true).

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <!-- Explicitly refresh the cached response -->
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

Untuk informasi selengkapnya tentang kondisi, lihat Variabel dan kondisi flow.

Referensi elemen

Referensi elemen menjelaskan elemen dan atribut kebijakan.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" />
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds>
    </ExpirySettings>
    <CacheResource>cache_to_use</CacheResource>
    <CacheLookupTimeoutInSeconds/>
    <ExcludeErrorResponse/>
    <SkipCacheLookup/>
    <SkipCachePopulation/>
    <UseAcceptHeader/>
    <UseResponseCacheHeaders/>
</ResponseCache>

Atribut <ResponseCache>

<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">

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 <CacheKey>

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:

Diperlukan

Jenis:

T/A

<CacheKey> membuat nama setiap bagian data yang disimpan dalam cache. Kunci sering kali ditetapkan menggunakan nilai dari header entity atau parameter kueri. Pada kasus tersebut, Anda akan mengatur atribut ref elemen menentukan variabel yang berisi nilai kunci.

Saat runtime, nilai <KeyFragment> diawali dengan nilai elemen <Scope> atau nilai <Prefix>. Misalnya, kode 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 <CacheLookupTimeoutInSeconds>

Menentukan jumlah detik saat pencarian cache yang gagal akan dianggap sebagai cache yang tidak ditemukan. Jika hal ini terjadi, alur akan dilanjutkan di sepanjang jalur cache yang terlewat.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Default:

30

Kehadiran:

Opsional

Jenis:

Bilangan bulat

Elemen <CacheResource>

Menentukan cache tempat pesan harus disimpan. Hapus elemen ini untuk menggunakan cache bersama yang disertakan. Anda harus menentukan CacheResource dengan nama jika ingin dapat menghapus secara administratif entri yang ada dalam cache. Untuk mengetahui informasi selengkapnya, lihat Caches API.

<CacheResource>cache_to_use</CacheResource>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Elemen <CacheKey>/<KeyFragment>

Menentukan nilai yang harus disertakan dalam kunci cache, yang 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 dan gabungan (ditambah awalan) digabungkan 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 Jenis Default Diperlukan Deskripsi
referensi string Tidak

Variabel yang digunakan untuk mendapatkan nilai. 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

Gunakan nilai ini, bukan <Scope>, jika Anda ingin menentukan nilai Anda sendiri, bukan nilai terenumerasi <Scope>. Jika ditentukan, <Prefix> akan 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 <ExcludeErrorResponse>

Saat ini, secara default, kebijakan ini membuat cache respons HTTP dengan kode Status apa pun yang memungkinkan. Artinya, respons keberhasilan dan error akan di-cache. Misalnya, respons dengan kode status 2xx dan 3xx akan di-cache secara default.

Setel elemen ini ke true jika Anda tidak ingin meng-cache respons target dengan kode status error HTTP; hanya respons dengan kode status dari 200 hingga 205 yang akan disimpan dalam cache jika elemen ini bernilai benar (true). Ini adalah satu-satunya kode status HTTP yang dianggap Apigee sebagai kode "berhasil", dan Anda tidak dapat mengubah pengaitan ini.

Untuk pembahasan tentang pola Cache Respons yang bermanfaat bagi elemen ini, lihat Pengantar antipola.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

Default:

false

Kehadiran:

Opsional

Jenis:

Boolean

Elemen <ExpirySettings>

Menentukan kapan masa berlaku entri cache akan berakhir. Jika ada, <TimeoutInSeconds> akan menggantikan <TimeOfDay> dan <ExpiryDate>.

<ExpirySettings>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
</ExpirySettings>

Default:

T/A

Kehadiran:

Diperlukan

Jenis:

T/A

Elemen <ExpirySettings>/<ExpiryDate>

Menentukan tanggal kapan entri cache akan berakhir masa berlakunya. Gunakan formulir mm-dd-yyyy. Jika ada, seinduk elemen ini, <TimeoutInSeconds>, akan menggantikan <ExpiryDate>.

<ExpirySettings>
    <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate>
</ExpirySettings>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Atribut

<ExpiryDate ref="" />
Atribut Deskripsi Default Kehadiran Jenis
referensi

Variabel yang digunakan untuk mendapatkan nilai. Tidak boleh digunakan jika elemen ini berisi nilai literal.

T/A Opsional String

Elemen <ExpirySettings>/<TimeOfDay>

Waktu saat entri cache akan berakhir. Gunakan formulir hh:mm:ss . Jika ada, seinduk elemen ini, <TimeoutInSeconds>, akan menggantikan <TimeOfDay>.

Masukkan waktu dalam format HH:mm:dd, dengan HH mewakili jam dalam format 24 jam. Misalnya, pukul 14.30.00 dan 14.30 siang.

Untuk waktu, lokalitas dan zona waktu default akan bervariasi bergantung pada tempat kode dijalankan (yang tidak dapat diketahui saat Anda mengonfigurasi kebijakan).

<ExpirySettings>
    <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Atribut

Atribut Deskripsi Default Kehadiran Jenis
referensi Variabel dengan nilai waktu habis masa berlaku. T/A Opsional String

Elemen <ExpirySettings>/<TimeoutInSec>

Jumlah detik setelah masa berlaku entri cache akan berakhir.

Elemen <ExpirySettings>/<TimeoutInSeconds>

Jumlah detik setelah masa berlaku entri cache akan berakhir. Jika ada, elemen ini akan menggantikan pasangannya, <TimeOfDay> dan <ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Atribut

Atribut Deskripsi Default Kehadiran Jenis
referensi Variabel dengan nilai waktu tunggu.
T/A
Opsional String

Elemen <Scope>

Enumerasi yang digunakan untuk membuat awalan untuk kunci cache jika elemen <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 cache akan berbentuk seperti berikut jika cakupan ditetapkan ke Exclusive : orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Jika elemen <Prefix> ada di <CacheKey>, elemen tersebut akan 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

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 apiAccessToken <KeyFragment> 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' dalam organisasi yang disebut 'apifactory', token akses akan disimpan dengan kunci cache berikut: apifactory__test__apiAccessToken.

Application

Nama proxy API digunakan sebagai awalan.

Kunci cache ditambahkan dalam bentuk orgName__envName__apiProxyName.

Proxy

Konfigurasi ProxyEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan sebelumnya dalam bentuk orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

Konfigurasi TargetEndpoint digunakan sebagai awalan.

Kunci cache ditambahkan sebelumnya dalam bentuk orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

Default. Hal ini adalah yang paling spesifik, sehingga tidak menimbulkan risiko konflik namespace dalam cache yang ditentukan.

Awalan adalah salah satu dari dua bentuk:

  • Jika kebijakan ini disertakan ke alur ProxyEndpoint, awalan akan berupa ApiProxyName_ProxyEndpointName.
  • Jika kebijakan dilampirkan pada TargetEndpoint, awalan akan berbentuk ApiProxyName_TargetName.

Kunci cache ditambahkan di depan dalam bentuk orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

Misalnya, string lengkap mungkin terlihat seperti ini:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Elemen <SkipCacheLookup>

Menentukan ekspresi yang, jika dievaluasi ke true (benar) saat runtime, menentukan bahwa pencarian cache harus dilewati dan cache harus di-refresh. Lihat juga Video kebijakan Penggunaan ResponseCache tentang penggunaan SkipCacheLookup.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Dari contoh berikut, jika variabel pengabaian cache ditetapkan ke true di header masuk, pencarian cache akan dilewati dan cache akan dimuat ulang.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

Elemen <SkipCachePopulation>

Menentukan ekspresi yang, jika dievaluasi ke true (benar) saat runtime, menetapkan bahwa penulisan ke cache harus dilewati. Lihat juga video ini tentang penggunaan SkipCachePopulation.

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

Default:

T/A

Kehadiran:

Opsional

Jenis:

String

Misalnya, kode berikut akan melewati penulisan cache jika kode status respons adalah 400 atau lebih tinggi:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

Elemen <UseAcceptHeader>

Tetapkan ke true agar kunci cache entri cache respons ditambahkan dengan nilai dari header Accept respons.

Apigee menggunakan header permintaan Accept, Accept-Encoding, Accept-Language dan Accept-Charset saat menghitung kunci cache. Pendekatan ini mencegah klien mendapatkan jenis media yang tidak mereka minta.

Misalnya, pertimbangkan jika dua permintaan berasal dari URL yang sama, yaitu permintaan pertama menerima gzip dan yang kedua tidak. Permintaan pertama akan disimpan dalam cache, dan entri yang di-cache akan (mungkin) berupa respons yang di-gzip. Permintaan kedua akan membaca nilai yang di-cache dan kemudian dapat menampilkan entri yang di-gzip ke klien yang tidak mampu membaca gzip.

Lihat Mengonfigurasi kunci cache untuk informasi selengkapnya.

<UseAcceptHeader>false</UseAcceptHeader>

Default:

false

Kehadiran:

Opsional

Jenis:

Boolean

Elemen <UseResponseCacheHeaders>

Tetapkan ke true agar header respons HTTP dipertimbangkan saat menyetel "time to live" (TTL) respons dalam cache. Jika ini benar, Apigee akan mempertimbangkan nilai header respons berikut, yang membandingkan nilai dengan nilai yang ditetapkan oleh <ExpirySettings> saat menyetel waktu aktif:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

Lihat Menyetel masa berlaku entri cache untuk detail selengkapnya.

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

Default:

false

Kehadiran:

Opsional

Jenis:

Boolean

Catatan penggunaan

Ukuran maksimum setiap objek yang di-cache adalah 256 KB. (Untuk informasi mendetail tentang cara Apigee memproses cache, lihat Internal cache.)

Melalui konfigurasi dalam kebijakan ResponseCache, Anda dapat meminta Apigee menyertakan header respons HTTP dalam menetapkan masa berlaku entri cache dan kunci cache. Bagian ini menjelaskan bahwa Anda dapat menggunakan kebijakan dengan header untuk mengelola masa berlaku cache dan kunci cache.

Untuk informasi selengkapnya tentang cara Apigee menangani header respons dengan kebijakan ResponseCache, lihat Dukungan untuk header respons HTTP.

Menyetel masa berlaku entri cache

Seperti dengan kebijakan FillCache, Anda dapat menetapkan masa berlaku entri cache respons (waktunya aktif) menggunakan elemen <ExpirySettings>. Dalam kebijakan ResponseCache, Anda juga dapat meminta Apigee mempertimbangkan header respons jika ada.

Untuk menggunakan header respons, tetapkan nilai elemen <UseResponseCacheHeaders> ke true. Setelan tersebut menyebabkan Apigee mempertimbangkan header respons, membandingkannya dengan nilai yang ditetapkan oleh <ExpirySettings>, lalu menggunakan nilai terendah di antara keduanya. Saat mempertimbangkan header respons, Apigee memilih nilai yang tersedia seperti yang dijelaskan dalam berikut ini:

Diagram yang menunjukkan hal yang terjadi jika Anda menetapkan UseResponseCacheHeaders ke true.

Misalnya, bayangkan respons di-cache dengan nilai berikut:

  • Tidak ada nilai Cache-Control s-maxage
  • Nilai Cache-Control max-age 300
  • Tanggal Expires dalam tiga hari
  • Nilai <ExpirySettings> TimeoutInSeconds 600.

Dalam hal ini, nilai Cache-Control max-age akan digunakan untuk TTL karena lebih rendah dari nilai <ExpirySettings> dan karena tidak ada nilai Cache-Control s-maxage (yang lebih diutamakan daripada max-age).

Mengonfigurasi kunci cache

Seperti kebijakan cache tujuan umum seperti kebijakan FillCache, dengan ResponseCache, Anda menggunakan elemen <CacheKey> dan <Scope> untuk mengonfigurasi pembuatan kunci cache untuk entri cache. Dengan ResponseCache, Anda juga dapat membuat kunci cache lebih bermakna dengan menambahkan header Accept respons ke nilai kunci.

Untuk informasi umum tentang cara mengonfigurasi kunci cache, lihat Bekerja dengan kunci cache. Untuk informasi cara menggunakan header Accept, lihat <UseAcceptHeader>.

Tentang enkripsi cache

Apigee dan Apigee Hybrid (versi 1.4 dan yang lebih baru): Data cache dan KVM selalu dienkripsi.

Variabel alur

Variabel Alur standar berikut akan diisi saat kebijakan ResponseCache dijalankan. Untuk informasi selengkapnya tentang variabel Alur, lihat Referensi variabel alur.

Variabel Jenis Izin Deskripsi
responsecache.{policy_name}.cachename String Hanya-Baca Menampilkan cache yang digunakan dalam kebijakan
responsecache.{policy_name}.cachekey String Hanya-Baca Menampilkan kunci yang digunakan
responsecache.{policy_name}.cachehit Boolean Hanya-Baca True jika eksekusi kebijakan berhasil
responsecache.{policy_name}.invalidentry Boolean Hanya-Baca True jika entri cache tidak valid

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 Perbaikan
InvalidTimeout Jika elemen <CacheLookupTimeoutInSeconds> dari kebijakan ResponseCache disetel ke angka negatif, deployment proxy API akan gagal.
InvalidCacheResourceReference Error ini terjadi jika elemen <CacheResource> dalam kebijakan ResponseCache disetel ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.
ResponseCacheStepAttachmentNotAllowedReq Error ini terjadi jika kebijakan ResponseCache yang sama dilampirkan ke beberapa jalur permintaan dalam alur proxy API apa pun.
ResponseCacheStepAttachmentNotAllowedResp Error ini terjadi jika kebijakan ResponseCache yang sama dilampirkan ke beberapa jalur respons dalam alur proxy API apa pun.
InvalidMessagePatternForErrorCode Error ini terjadi jika elemen <SkipCacheLookup> atau <SkipCachePopulation> dalam kebijakan ResponseCache berisi kondisi yang tidak valid.
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

Skema

Setiap jenis kebijakan ditentukan oleh skema XML (.xsd). Untuk referensi, skema kebijakan tersedia di GitHub.