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-EncodingAccept-Charset, AuthorizationAccept-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

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 atribut copy-unmatched-params ke false. 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.

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: