YanıtCache politikası

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bir arka uç kaynağından gelen verileri önbelleğe alarak kaynağa yapılan istek sayısını azaltır. Uygulamalar aynı URI'ye istek yaptığından, bu istekleri arka uç sunucusuna yönlendirmek yerine önbelleğe alınan yanıtları döndürmek için bu politikayı kullanabilirsiniz. ResponseCache politikası, daha az gecikme ve ağ trafiği sağlayarak API'nizin performansını artırabilir.

ResponseCache'ı en çok, API'niz tarafından kullanılan arka uç verileri yalnızca düzenli olarak güncellendiğinde yararlı bulabilirsiniz. Örneğin, hava durumu raporu verilerini yalnızca on dakikada bir yenilenen bir API'niz olduğunu düşünün. Yenilemeler arasında önbelleğe alınan yanıtları döndürmek için ResponseCache'ı kullanarak arka uca ulaşan isteklerin sayısını azaltabilirsiniz. Bu, ağ atlamalarının sayısını da azaltır.

Genel amaçlı kısa vadeli önbelleğe alma için Önbelleği Doldur politikasını kullanabilirsiniz. Bu politika, Arama Önbelleği politikası (önbellek girişlerini okumak için) ve Önbelleği Geçersiz Kılma politikasıyla (girişleri geçersiz kılmak için) birlikte kullanılır.

Yanıt Önbelleği Politikası'na giriş için bu videoyu izleyin.

Örnekler

10 dakikalık önbellek

Bu örnek, önbelleğe alınan yanıtların nasıl 10 dakika tutulacağını gösterir.

Aşağıdaki URL'de bir API'niz olduğunu düşünün:

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

w sorgu parametresini önbellek anahtarı olarak kullanıyorsunuz. Apigee Edge, bir istek alındığında w sorgu parametresinin değerini kontrol eder. Önbellekte geçerli bir yanıt varsa (yani süresi dolmamış) bir yanıt varsa önbelleğe alınan yanıt mesajı, istekte bulunan istemciye döndürülür.

Şimdi, aşağıdaki gibi yapılandırılmış bir ResponseCache politikanız olduğunu varsayalım.

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

API proxy'si aşağıdaki URL için ilk kez bir istek mesajı aldığında yanıt önbelleğe alınır. 10 dakika içindeki ikinci istekte, bir önbellek araması gerçekleşir. Önbelleğe alınan yanıt, arka uç hizmetine herhangi bir istek yönlendirilmeden uygulamaya döndürülür.

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

Önbellek aramasını atla

Aşağıdaki örnekte, önbellek aramasının nasıl atlanacağı ve önbelleğin nasıl yenileneceği gösterilmektedir. JumpCacheLookup kullanımı ile ilgili bu videoya da göz atın.

İsteğe bağlı JumpCacheLookup koşulu (yapılandırılmışsa) istek yolunda değerlendirilir. Koşul doğru olarak değerlendirilirse önbellek araması atlanır ve önbellek yenilenir.

Koşullu önbellek yenilemenin yaygın bir kullanımı, koşulun doğru olarak değerlendirilmesine neden olan belirli bir HTTP üst bilgisini tanımlayan bir koşuldur. Komut dosyası kullanan bir istemci uygulaması, uygun HTTP başlığıyla düzenli olarak istek gönderecek ve böylece yanıt önbelleğinin açıkça yenilenmesine neden olacak şekilde yapılandırılabilir.

Örneğin, aşağıdaki URL'de bir API çağrısı olduğunu düşünün:

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

Şimdi, bu proxy'de aşağıdaki ResponseCache politikasını yapılandırdığınızı düşünün. Önbellek atlama koşulunun doğru olarak ayarlandığını unutmayın.

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

Koşullar hakkında daha fazla bilgi için Akış değişkenleri ve koşulları bölümüne bakın.

Öğe referansı

Öğe referansı, politikanın öğelerini ve özelliklerini açıklar.

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

<ResponseCache> özellikleri

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

Aşağıdaki tabloda, tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
name

Politikanın dahili adı. name özelliğinin değeri harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içerebilir. Bu değer 255 karakterden uzun olamaz.

İsteğe bağlı olarak, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için <DisplayName> öğesini kullanın.

Yok Gerekli
continueOnError

Bir politika başarısız olduğunda hata döndürülmesi için false olarak ayarlayın. Bu, çoğu politika için beklenen davranıştır.

Bir politika başarısız olduktan sonra bile akış yürütülmesinin devam etmesi için true değerine ayarlayın.

false İsteğe bağlı
enabled

Politikayı uygulamak için true değerine ayarlayın.

Politikayı devre dışı bırakmak için false olarak ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanmaz.

true İsteğe bağlı
async

Bu özellik kullanımdan kaldırıldı.

false Kullanımdan kaldırıldı

<DisplayName> öğesi

Politikayı, yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için name özelliğine ek olarak kullanın.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi çıkarırsanız politikanın name özelliğinin değeri kullanılır.

Varlık İsteğe bağlı
Tür Dize

<CacheKey> öğesi

Önbellekte depolanan bir veri parçasına yönelik benzersiz bir işaretçi yapılandırır.

Önbellek anahtarları 2 KB boyutuyla sınırlıdır.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Varsayılan:

Yok

Bulunma:

Gerekli

Tür:

Yok

<CacheKey>, önbellekte depolanan her veri parçasının adını oluşturur. Anahtar genellikle varlık başlıkları veya sorgu parametrelerindeki bir değer kullanılarak ayarlanır. Bu gibi durumlarda, öğenin ref özelliğinin, anahtar değerini içeren bir değişken belirtmesini sağlayabilirsiniz.

Çalışma zamanında <KeyFragment> değerlerinin başına <Scope> öğe değeri veya <Prefix> değeri eklenir. Örneğin, aşağıdaki durum UserToken__apiAccessToken__<value_of_client_id> önbellek anahtarıyla sonuçlanır:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

<CacheKey> öğesini <Prefix> ve <Scope> ile birlikte kullanırsınız. Daha fazla bilgi için Önbellek anahtarlarıyla çalışma bölümüne bakın.

<CacheLookupTimeoutInSeconds> öğesi

Başarısız bir önbellek aramasının kaç saniye sonra "önbellek yok" şeklinde algılanacağını belirtir. Böyle bir durumda akış, önbellek eksikliği yolu boyunca devam eder.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Varsayılan:

30

Bulunma:

İsteğe bağlı

Tür:

Tamsayı

<CacheResource> öğesi

İletilerin depolanacağı önbelleği belirtir. Dahil edilen paylaşılan önbelleği kullanmak için bu öğeyi atlayın. Önbellekteki girişleri yönetimsel olarak temizlemek istiyorsanız CacheResource'ı ada göre belirtmeniz gerekir. Bu konuda daha fazla bilgi edinmek için Önbellekler bölümünü inceleyin.

<CacheResource>cache_to_use</CacheResource>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Önbellekleri yapılandırma hakkında daha fazla bilgi edinmek için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleye bakın.

<CacheKey>/<KeyFragment> öğesi

Önbellek anahtarına eklenmesi gereken bir değeri belirterek istekleri önbelleğe alınan yanıtlarla eşleştirmek için bir ad alanı oluşturur.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Yok

Bu bir anahtar (sağladığınız statik ad) veya bir değer (bir değişkene başvurularak ayarlanan dinamik giriş) olabilir. Belirtilen tüm parçalar (ve ön ek) birlikte önbellek anahtarını oluşturmak için birleştirilir.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

<KeyFragment> öğesini <Prefix> ve <Scope> ile birlikte kullanırsınız. Daha fazla bilgi için Önbellek anahtarlarıyla çalışma bölümüne bakın.

Özellikler

Özellik Tür Varsayılan Gerekli Açıklama
referans dize Hayır

Değerin alınacağı değişken. Bu öğe değişmez değer içeriyorsa kullanılmamalıdır.

<CacheKey>/<Prefix> öğesi

Önbellek anahtarı ön eki olarak kullanılacak bir değer belirtir.

<Prefix>prefix_string</Prefix>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

<Scope> ile numaralanmış bir değer yerine kendi değerinizi belirtmek istediğinizde <Scope> yerine bu değeri kullanın. Tanımlanırsa <Prefix>, önbelleğe yazılan girişlerin önbellek anahtarı değerinin başına ekler. <Prefix> öğesi değeri, <Scope> öğe değerini geçersiz kılar.

<Prefix> öğesini <CacheKey> ve <Scope> ile birlikte kullanırsınız. Daha fazla bilgi için Önbellek anahtarlarıyla çalışma bölümüne bakın.

<ExcludeErrorResponse> öğesi

Şu anda bu politika varsayılan olarak HTTP yanıtlarını herhangi bir olası Durum koduyla önbelleğe almaktadır. Bu, hem başarılı hem de hata yanıtlarının önbelleğe alınacağı anlamına gelir. Örneğin, hem 2xx hem de 3xx durum kodlarına sahip yanıtlar varsayılan olarak önbelleğe alınır.

Hedef yanıtları HTTP hata durum kodlarıyla önbelleğe almak istemiyorsanız bu öğeyi true olarak ayarlayın. Bu öğe doğruysa yalnızca durum kodu 200 ile 205 arasında olan yanıtlar önbelleğe alınır. Bunlar, Edge'in "başarılı" kodları olarak saydığı tek HTTP durum kodlarıdır ve bu ilişkilendirmeyi değiştiremezsiniz.

Bu öğenin faydalı olduğu Yanıt Önbelleği kalıplarıyla ilgili bir tartışma için bu topluluk yayınına bakın.

Not: Gelecekteki bir sürümde (belirlenecek) bu öğenin varsayılan ayarı "true" (doğru) olarak değiştirilecektir. Ayrıntılar için Apigee Sürüm Notları'na bakın.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

Varsayılan:

false

Bulunma:

İsteğe bağlı

Tür:

Boole

<ExpirySettings> öğesi

Bir önbellek girişinin süresinin ne zaman dolacağını belirtir. Mevcut olduğunda <TimeoutInSeconds> hem <TimeOfDay> hem de <ExpiryDate> değerlerini geçersiz kılar.

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

Varsayılan:

Yok

Bulunma:

Gerekli

Tür:

Yok

<ExpirySettings>/<ExpiryDate> öğesi

Bir önbellek girişinin süresinin dolacağı tarihi belirtir. mm-dd-yyyy formunu kullanın. Mevcut olduğunda bu öğenin eşdüzey öğesi (<TimeoutInSeconds>) <ExpiryDate> değerini geçersiz kılar.

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

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Özellikler

<ExpiryDate ref="" />
Özellik Açıklama Varsayılan Varlık Tür
referans

Değerin alınacağı değişken. Bu öğe değişmez değer içeriyorsa kullanılmamalıdır.

Yok İsteğe bağlı Dize

<ExpirySettings>/<TimeOfDay> öğesi

Önbellek girişinin süresinin dolacağı günün saati. Formu kullanın: hh:mm:ss . Mevcut olduğunda bu öğenin eşdüzey öğesi (<TimeoutInSeconds>) <TimeOfDay> değerini geçersiz kılar.

Saati, SS:dd:ss biçiminde girin; SS, 24 saatlik biçimde saati temsil eder. Örneğin, öğleden sonra 2:30 için 14:30:00.

Günün saati için varsayılan yerel ayar ve saat dilimi, kodun çalıştığı yere bağlı olarak değişir (politikayı yapılandırdığınızda bu ayar bilinmiyor). Yerel ayarlarınızı yapılandırma hakkında bilgi edinmek için Ortam önbelleği oluşturma ve düzenleme bölümüne bakın.

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

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Özellikler

Özellik Açıklama Varsayılan Varlık Tür
referans Geçerlilik bitiş zamanı değerine sahip değişken. Yok İsteğe bağlı Dize

<ExpirySettings>/<TimeoutInSec> öğesi

Bir önbellek girişinin süresinin dolacağı saniye sayısıdır.

<ExpirySettings>/<TimeoutInSeconds> öğesi

Bir önbellek girişinin süresinin dolacağı saniye sayısıdır. Bu öğe mevcut olduğunda eşdüzeylerini (<TimeOfDay> ve <ExpiryDate>) geçersiz kılar.

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

Not: Referansın duration_variable aracından bir değer almaması durumunda kullanılacak varsayılan zaman aşımı değerini sağlayın.

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Özellikler

Özellik Açıklama Varsayılan Varlık Tür
referans Zaman aşımı değerine sahip değişken.
Yok
İsteğe bağlı Dize

<Scope> öğesi

<CacheKey> öğesinde bir <Prefix> öğesi sağlanmadığında önbellek anahtarı için bir önek oluşturmak üzere kullanılan numaralandırma.

<Scope>scope_enumeration</Scope>

Varsayılan:

"Özel"

Bulunma:

İsteğe bağlı

Tür:

Dize

<Scope> ayarı, <Scope> değerinin başına eklenen bir önbellek anahtarı belirler. Örneğin, kapsam Exclusive olarak ayarlandığında önbellek anahtarı şu biçimde olur: orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ ].

<CacheKey> özelliğinde bir <Prefix> öğesi varsa <Scope> öğe değerinin yerini alır. Geçerli değerler, aşağıdaki numaralandırmaları içerir.

<Scope> öğesini <CacheKey> ve <Prefix> ile birlikte kullanırsınız. Daha fazla bilgi için Önbellek anahtarlarıyla çalışma bölümüne bakın.

Kabul edilebilir değerler

Kapsam Değeri Açıklama
Global

Önbellek anahtarı, ortamda dağıtılan tüm API proxy'leri arasında paylaşılır. Önbellek anahtarı başına orgName __ envName __ biçiminde eklenir.

<KeyFragment> apiAccessToken ve <Global> kapsamıyla bir <CacheKey> girişi tanımlarsanız her giriş, orgName__envName__apiAccessToken ve ardından erişim jetonunun serileştirilmiş değeri olarak depolanır. "apifactory" adlı bir kuruluştaki "test" adlı bir ortamda dağıtılan bir API proxy'si için erişim jetonları şu önbellek anahtarında depolanır: apifactory__test__apiAccessToken.

Application

API proxy adı önek olarak kullanılır.

Önbellek anahtarı, orgName__envName__apiProxyName biçiminde eklenir.

Proxy

Ön ek olarak ProxyEndpoint yapılandırması kullanılır.

Önbellek anahtarı, orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName şeklinde başa eklenir .

Target

Önek olarak TargetEndpoint yapılandırması kullanılıyor.

Önbellek anahtarı başına orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName biçiminde eklenir .

Exclusive

Varsayılan. En spesifik olan budur ve bu nedenle belirli bir önbellek içinde ad alanı çakışması riski minimum düzeydedir.

Önek iki biçimden biridir:

  • Politika, ProxyEndpoint akışına eklenirse ön ek ApiProxyName_ProxyEndpointName biçiminde olur.
  • Politika TargetEndpoint konumuna eklenirse önek ApiProxyName_TargetName biçiminde olur.

Önbellek anahtarı, başına orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName biçiminde eklenir.

Örneğin, tam dize aşağıdaki gibi görünebilir:

apifactory__test__weatherapi__16__default__apiAccessToken
.

<JumpCacheLookup> öğesi

Çalışma zamanında doğru olarak değerlendirilirse önbellek aramasının atlanması ve önbelleğin yenilenmesi gerektiğini belirten bir ifade tanımlar. JumpCacheLookup kullanımı ile ilgili bu videoyu da izleyin.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Aşağıdaki örnekte, gelen üst bilgide atlama önbelleği değişkeni true (doğru) değerine ayarlanırsa önbellek araması atlanır ve önbellek yenilenir.

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

<JumpCachePopulation> öğesi

Çalışma zamanında doğru olarak değerlendirilirse önbelleğe alma işleminin atlanması gerektiğini belirten bir ifade tanımlar. JumpCachePopulation kullanımıyla ilgili bu videoyu da izleyin.

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Örneğin, yanıt durum kodu 400 veya daha yüksek olduğunda aşağıdakiler, önbellek yazma işlemini atlar:

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

<UseKabulHeader> öğesi

Bir yanıt önbellek girişinin önbellek anahtarının, yanıt Kabul üstbilgilerindeki değerlerle eklenmesini sağlamak için true olarak ayarlayın.

Edge, önbellek anahtarını hesaplarken Accept, Accept-Encoding, Accept-Language ve Accept-Charset istek başlıklarını kullanır. Bu yaklaşım, müşterinin istemediği bir medya türünü almasını engeller.

Örneğin, aynı URL'den iki isteğin geldiğini, ilk isteğin gzip'i kabul ettiğini, ikincisinin ise kabul etmediğini düşünün. İlk istek önbelleğe alınır ve önbelleğe alınan giriş, (muhtemelen) gzip biçiminde bir yanıt olur. İkinci istek, önbelleğe alınan değeri okur ve daha sonra gzip'i okuyamayan bir istemciye gzip biçiminde eklenmiş bir giriş döndürebilir.

Daha fazla bilgi için Önbellek anahtarı yapılandırma bölümüne bakın.

<UseAcceptHeader>false</UseAcceptHeader>

Varsayılan:

false

Bulunma:

İsteğe bağlı

Tür:

Boole

<UseResponseCacheHeaders> öğesi

Önbellekte yanıtın "geçerlilik süresi" (TTL) ayarlanırken HTTP yanıt başlıklarının dikkate alınması için true olarak ayarlayın. Bu durumda Edge, aşağıdaki yanıt üst bilgilerinin değerlerini dikkate alarak geçerlilik süresini ayarlarken değerleri <ExpirySettings> tarafından ayarlanan değerlerle karşılaştırır:

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

Daha ayrıntılı bilgi için Önbellek girişi geçerlilik süresini ayarlama bölümüne bakın.

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

Varsayılan:

false

Bulunma:

İsteğe bağlı

Tür:

Boole

Kullanım notları

Önbelleğe alınan her nesne için maksimum boyut 256 KB'tır. (Edge'nin önbelleği nasıl işlediğiyle ilgili ayrıntılı bilgi için Dahili önbellek konusuna bakın.)

ResponseCache politikasındaki yapılandırma yoluyla, Edge'in önbellek girişi süre sonu ve önbellek anahtarlarını ayarlarken HTTP yanıt başlıkları eklemesini sağlayabilirsiniz. Bu bölümde, önbellek geçerlilik süresini ve önbellek anahtarlarını yönetmek için politikayı üst bilgilerle birlikte kullanabileceğiniz açıklanmaktadır.

Edge'in ResponseCache politikasıyla yanıt başlıklarını nasıl işlediği hakkında daha fazla bilgi için HTTP yanıt üstbilgileri için destek sayfasına bakın.

Önbellek girişi için geçerlilik bitiş tarihi ayarlama

Önbelleği Doldur politikasında olduğu gibi, <ExpirySettings> öğesini kullanarak bir yanıt önbellek girişinin geçerlilik süresini (geçerlilik süresi) ayarlayabilirsiniz. ResponseCache politikasında, Edge'in mevcut yanıt başlıklarını dikkate almasını da sağlayabilirsiniz.

Yanıt başlıklarını kullanmak için <UseResponseCacheHeaders> öğe değerini true olarak ayarlarsınız. Bu ayar, Edge'in yanıt başlıklarını dikkate almasına, bunları <ExpirySettings> tarafından ayarlanan değerle karşılaştırmasına, ardından ikisi arasındaki en düşük değeri kullanmasına neden olur. Yanıt başlıklarını değerlendirirken, Edge aşağıda açıklandığı gibi kullanılabilir değeri seçer:

Örneğin, bir yanıtın aşağıdaki değerlerle önbelleğe alındığını düşünün:

  • Cache-Control s-maxage değeri yok
  • Cache-Control max-age değeri 300
  • Üç gün sonra Expires tarihinde gerçekleşecek
  • 600 değerinde <ExpirySettings> TimeoutInSeconds değeri.

Bu durumda, <ExpirySettings> değerinden düşük olduğundan ve Cache-Control s-maxage değeri olmadığından (max-age değerinden önceliklidir) TTL için Cache-Control max-age değeri kullanılır.

Önbellek anahtarını yapılandırma

Önbelleği Doldur politikası gibi genel amaçlı önbellek politikalarında olduğu gibi ResponseCache ile önbellek girişleri için önbellek anahtarı oluşturma özelliğini yapılandırmak üzere <CacheKey> ve <Scope> öğelerini kullanırsınız. ResponseCache ile anahtar değerlerine yanıt Kabul üstbilgilerini ekleyerek önbellek anahtarlarını daha anlamlı hale getirebilirsiniz.

Önbellek anahtarlarının yapılandırılmasıyla ilgili genel bilgiler için Önbellek anahtarlarıyla çalışma başlıklı makaleye bakın. Kabul etme üstbilgilerini kullanma hakkında bilgi için <UseAcceptHeader> bölümüne bakın.

Önbellek şifrelemesi hakkında

Edge for Public Cloud: Önbellek yalnızca PCI ve HIPAA hizmetinin etkinleştirildiği kuruluşlarda şifrelenir. Bu kuruluşlar için şifreleme, kuruluş temel hazırlığı sırasında yapılandırılır.

Akış değişkenleri

Bir ResponseCache politikası yürütüldüğünde aşağıdaki önceden tanımlanmış Akış değişkenleri doldurulur. Akış değişkenleri hakkında daha fazla bilgi için Değişkenler referansı başlıklı makaleyi inceleyin.

Değişkenler Tür İzin Açıklama
responsecache.{policy_name}.cachename Dize Salt Okunur Politikada kullanılan önbelleği döndürür
responsecache.{policy_name}.cachekey Dize Salt Okunur Kullanılan anahtarı döndürür
responsecache.{policy_name}.cachehit Boole Salt Okunur Politika başarıyla yürütülürse doğru değerini alır
responsecache.{policy_name}.invalidentry Boole Salt Okunur Önbellek girişi geçerli değilse doğru değerini alır

Hata kodları

Bu bölümde, bu politika bir hatayı tetiklediğinde ayarlanan hata mesajları ve akış değişkenleri açıklanmaktadır. Bu bilgiler, bir proxy için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Hata kodu öneki

Yok

Çalışma zamanı hataları

Bu politika, çalışma zamanı hatası bildirmez.

Dağıtım hataları

Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.

Hata adı Neden Düzelt
InvalidTimeout ResponseCache politikasının <CacheLookupTimeoutInSeconds> öğesi negatif bir sayıya ayarlanırsa API proxy'sinin dağıtımı başarısız olur.
InvalidCacheResourceReference Bu hata, ResponseCache politikasındaki <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda var olmayan bir ada ayarlanırsa ortaya çıkar.
ResponseCacheStepAttachmentNotAllowedReq Bu hata, bir API proxy'sinin herhangi bir akışındaki birden fazla istek yoluna aynı ResponseCache politikası eklenirse ortaya çıkar.
ResponseCacheStepAttachmentNotAllowedResp Bu hata, API proxy'sinin herhangi bir akışındaki birden fazla yanıt yoluna aynı ResponseCache politikası eklenirse ortaya çıkar.
InvalidMessagePatternForErrorCode Bu hata, ResponseCache politikasındaki <SkipCacheLookup> veya <SkipCachePopulation> öğesi geçersiz bir koşul içeriyorsa ortaya çıkar.
CacheNotFound Bu hata, hata mesajında bahsedilen belirli önbellek belirli bir Mesaj İşleyici bileşeninde oluşturulmamışsa ortaya çıkar.

Hata değişkenleri

Yok

Örnek hata yanıtı

Yok

Şema

Her politika türü, bir XML şeması (.xsd) ile tanımlanır. Referans olarak, GitHub'da politika şemaları bulunabilir.