Önbellekten alma
UYGULANANLAR: Tüm API Management katmanları
Önbellek araması yapmak ve kullanılabilir olduğunda geçerli bir önbelleğe alınmış yanıt döndürmek için ilkeyi cache-lookup
kullanın. 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 ilke, ilkeyi önbelleğe almak için karşılık gelen bir Depoya sahip 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-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>
Özellikler
Öznitelik | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
allow-private-response-caching | olarak true ayarlandığında, Yetkilendirme üst bilgisi içeren isteklerin önbelleğe alınmasını sağlar. İlke ifadelerine izin verilir. |
Hayır | false |
önbelleğe alma türü | Özniteliğin aşağıdaki değerleri arasında seçim yapın: - internal yerleşik API Management önbelleğini kullanmak için- external Azure API Management'ta dış Redis için Azure Cache kullanma bölümünde açıklandığı gibi dış önbelleği kullanmak için,- prefer-external yapılandırıldıysa dış önbelleği veya başka bir şekilde iç önbelleği kullanmak için.İlke ifadelerine izin verilmez. |
Hayır | prefer-external |
aşağı akış-önbelleğe alma-türü | Bu öznitelik aşağıdaki değerlerden birine ayarlanmalıdır. - yok - aşağı akış önbelleğe alma işlemine izin verilmez. - private - aşağı akış özel önbelleğe alma işlemine izin verilir. - genel - özel ve paylaşılan aşağı akış önbelleğe alma işlemine izin verilir. İlke ifadelerine izin verilir. |
Hayır | yok |
yeniden doğrulamalı | Aşağı akış önbelleğe alma etkinleştirildiğinde, bu öznitelik ağ geçidi yanıtlarında önbellek denetimi yönergesini açar veya kapatır must-revalidate . İlke ifadelerine izin verilir. |
Hayır | true |
geliştiriciye göre değişiklik | İstekte true yer alan abonelik anahtarına sahip geliştirici hesabı başına yanıtları önbelleğe almak için olarak ayarlayın. İlke ifadelerine izin verilir. |
Yes | false |
geliştirici gruplarına göre değişiklik göster | true Kullanıcı grubu başına yanıtları önbelleğe almak için olarak ayarlayın. İlke ifadelerine izin verilir. |
Yes | false |
Öğeler
Veri Akışı Adı | Açıklama | Gerekli |
---|---|---|
üst bilgiye göre değişiklik göster | Belirtilen üst bilginin değeri başına ( , gibiAccept Authorization Accept-Charset Accept-Language If-Match Accept-Encoding Expect From Host ) yanıtları önbelleğe almaya başlamak için bu öğelerden birini veya daha fazlasını ekleyin. |
Hayır |
vary-by-query-parameter | Belirtilen sorgu parametrelerinin değeri başına yanıtları önbelleğe almaya başlamak için bu öğelerden birini veya daha fazlasını ekleyin. Tek veya birden çok parametre girin. Ayırıcı olarak noktalı virgül kullanın. | Hayır |
Kullanım
- İlke bölümleri: gelen
- İlke kapsamları: genel, çalışma alanı, ürün, API, işlem
- Ağ geçitleri: klasik, v2, tüketim, şirket içinde barındırılan, çalışma alanı
Kullanım notları
- API Management yalnızca HTTP GET istekleri için önbellek araması gerçekleştirir.
- kullanırken
vary-by-query-parameter
, rewrite-uri şablonundaki parametreleri bildirmek veya özniteliğinicopy-unmatched-params
olarakfalse
ayarlamak isteyebilirsiniz. Bu bayrak devre dışı bırakılarak, bildirilmeyen parametreler arka uçtan gönderilir.
- Bu ilke, ilke bölümünde yalnızca bir kez kullanılabilir.
Örnekler
Karşılık gelen önbellek deposu ilkesine sahip örnek
<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>
İ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>
<!-- 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.
İlgili ilkeler
İlgili içerik
İlkelerle çalışma hakkında daha fazla bilgi için bkz: