Dapatkan dari cache
BERLAKU UNTUK: Semua tingkatAN API Management
Gunakan kebijakan cache-lookup
untuk melakukan pencarian cache dan menampilkan respons cache yang valid saat tersedia. Kebijakan ini dapat diterapkan dalam kasus di mana konten respons tetap statis selama periode waktu tertentu. Pembuatan cache respons mengurangi bandwidth dan persyaratan pemrosesan yang diberlakukan pada server web backend dan menurunkan latensi yang diketahui konsumen API.
Catatan
Kebijakan ini harus memiliki kebijakan Simpan ke cache yang sesuai.
Penting
Cache bawaan mudah menguap dan dibagikan oleh semua unit di wilayah yang sama dalam layanan API Management yang sama.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Untuk membantu Anda mengonfigurasi kebijakan ini, portal menyediakan editor berbasis formulir berikut panduannya. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Pernyataan kebijakan
<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" caching-type="prefer-external | external | internal" downstream-caching-type="none | private | public" must-revalidate="true | false" allow-private-response-caching="@(expression to evaluate)">
<vary-by-header>Accept</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Accept-Charset</vary-by-header>
<!-- should be present in most cases -->
<vary-by-header>Authorization</vary-by-header>
<!-- should be present when allow-private-response-caching is "true"-->
<vary-by-header>header name</vary-by-header>
<!-- optional, can be repeated -->
<vary-by-query-parameter>parameter name</vary-by-query-parameter>
<!-- optional, can be repeated -->
</cache-lookup>
Atribut
Atribut | Deskripsi | Wajib diisi | Default |
---|---|---|---|
allow-private-response-caching | Ketika diatur ke true , memungkinkan cache permintaan yang berisi header Otorisasi. Ekspresi kebijakan diizinkan. |
No | false |
caching-type | Pilih di antara nilai atribut berikut: - internal untuk menggunakan cache API Management bawaan,- external untuk menggunakan cache eksternal seperti yang dijelaskan dalam Menggunakan Azure Cache for Redis di Azure API Management,- prefer-external untuk menggunakan cache eksternal jika sebaliknya dikonfigurasi atau cache internal.Ekspresi kebijakan tidak diizinkan. |
No | prefer-external |
downstream-caching-type | Atribut ini harus diatur ke salah satu nilai berikut. - none - penembolokan downstream tidak diizinkan. - private - penembolokan downstream privat diizinkan. - public - penembolokan downstream privat dan berbagi diizinkan. Ekspresi kebijakan diizinkan. |
No | tidak ada |
must-revalidate | Saat penembolokan downstream diaktifkan, atribut ini akan mengaktifkan atau menonaktifkan arahan kontrol cache must-revalidate di respons gateway. Ekspresi kebijakan diizinkan. |
No | true |
vary-by-developer | Atur ke true untuk respons cache per akun pengembang yang memiliki kunci langganan yang disertakan dalam permintaan. Ekspresi kebijakan diizinkan. |
Ya | false |
vary-by-developer-groups | Atur ke true untuk respons cache per grup pengguna. Ekspresi kebijakan diizinkan. |
Ya | false |
Elemen
Nama | Deskripsi | Wajib diisi |
---|---|---|
vary-by-header | Tambahkan satu atau beberapa elemen ini untuk memulai respons penembolokan per nilai header tertentu, seperti Accept , , , Accept-Encoding Accept-Charset , Authorization Accept-Language , Expect , From , , Host , If-Match . |
No |
vary-by-query-parameter | Tambahkan satu atau beberapa elemen ini untuk memulai respons penembolokan per nilai parameter kueri yang ditentukan. Masukkan satu atau beberapa parameter. Gunakan titik koma sebagai pemisah. | No |
Penggunaan
- Bagian kebijakan: masuk
- Cakupan kebijakan: global, ruang kerja, produk, API, operasi
- Gateway: klasik, v2, konsumsi, dihost sendiri, ruang kerja
Catatan penggunaan
- API Management hanya melakukan pencarian cache untuk permintaan HTTP GET.
- Saat menggunakan
vary-by-query-parameter
, Anda mungkin ingin mendeklarasikan parameter dalam templat penulisan ulang-uri atau mengatur atributcopy-unmatched-params
kefalse
. Dengan menonaktifkan bendera ini, parameter yang tidak dideklarasikan dikirim ke backend.
- Kebijakan ini hanya dapat digunakan sekali di bagian kebijakan.
Contoh
Contoh dengan kebijakan penyimpanan cache yang sesuai
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
<vary-by-query-parameter>version</vary-by-query-parameter>
</cache-lookup>
</inbound>
<outbound>
<cache-store duration="seconds" />
<base />
</outbound>
</policies>
Contoh menggunakan ekspresi kebijakan
Contoh ini menunjukkan cara mengonfigurasi durasi penembolokan respons API Management yang cocok dengan penembolokan respons layanan backend sebagaimana ditentukan oleh arahan Cache-Control
layanan backend.
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
<cache-store duration="@{
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
}"
/>
Untuk informasi selengkapnya, lihat Ekspresi kebijakan dan Variabel konteks.
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Kebijakan penulis menggunakan Microsoft Copilot di Azure