Aracılığıyla paylaş


Önbelleğe almak için depola

UYGULANANLAR: Tüm API Management katmanları

İlke, cache-store yanıtları belirtilen önbellek ayarlarına göre önbelleğe alır. Bu ilke, yanıt içeriğinin belirli bir süre boyunca statik kaldığı durumlarda uygulanabilir. Yanıtların önbelleğe alınması arka uç web sunucusuna uygulanan bant genişliği ve işleme gereksinimlerini azaltır ve API tüketicilerinin algıladığı gecikme süresini kısaltır.

Not

Bu ilkeye karşılık gelen bir Önbellekten al ilkesi olmalıdır.

Önemli

Yerleşik önbellek geçicidir ve aynı API Management hizmetindeki aynı bölgedeki tüm birimler tarafından paylaşılır.

Not

İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. Portal, bu ilkeyi yapılandırmanıza yardımcı olmak için kılavuzlu, form tabanlı bir düzenleyici sağlar. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.

İlke bildirimi

<cache-store duration="seconds" cache-response="true | false" />

Özellikler

Öznitelik Açıklama Zorunlu Varsayılan
süre Saniye cinsinden belirtilen önbelleğe alınan girdilerin yaşam süresi. İlke ifadelerine izin verilir. Evet Yok
önbellek yanıtı true Geçerli HTTP yanıtını önbelleğe almak için olarak ayarlayın. Öznitelik atlanırsa, yalnızca durum koduna 200 OK sahip HTTP yanıtları önbelleğe alınır. İlke ifadelerine izin verilir. Hayır false

Kullanım

Kullanım notları

  • API Management yalnızca HTTP GET isteklerine yönelik yanıtları önbelleğe alır.
  • Bu ilke, ilke bölümünde yalnızca bir kez kullanılabilir.
  • Herhangi bir önbellek aramadan hemen sonra hız sınırı ilkesi (veya anahtara göre hız sınırı ilkesi) yapılandırmanızı öneririz. Bu, önbellek kullanılamıyorsa arka uç hizmetinizin aşırı yüklenmesini engeller.

Örnekler

Karşılık gelen önbellek arama ilkesine sahip örnek

Bu örnekte, yerleşik API Management önbelleğindeki cache-store yanıtları önbelleğe almak için ilkeyle cache-lookup birlikte ilkenin nasıl kullanılacağı gösterilmektedir.

Not

Önbellek aramasının ardından, çağrı sayısını sınırlamaya ve önbelleğin kullanılabilir olmaması durumunda arka uç hizmetinde aşırı yüklemeyi önlemeye yardımcı olmak için bir hız sınırı ilkesi (veya anahtara göre hız sınırı ilkesi) ekleyin.

<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>
        <rate-limit calls="10" renewal-period="60" />
    </inbound>
    <outbound>
        <cache-store duration="seconds" />
        <base />
    </outbound>
</policies>

İlke ifadelerini kullanma örneği

Bu örnek, arka uç hizmetinin yönergesi tarafından Cache-Control belirtilen arka uç hizmetinin yanıt önbelleğe alma işlemiyle eşleşen API Management yanıt önbelleğe alma süresinin nasıl yapılandırıldığını gösterir.

<!-- 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>
 <rate-limit calls="10" renewal-period="60" />

<!-- 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; }" />

Daha fazla bilgi için bkz . İlke ifadeleri ve Bağlam değişkeni.

İlkelerle çalışma hakkında daha fazla bilgi için bkz: