Önbellek anahtarlarıyla çalışma

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Önbellek politikalarını kullanırken önbelleği yapılandırarak önbelleğe alınan değer anahtarlarının benzersiz olmasını sağlarsınız tuşlarını kullanın. Önbellek anahtarı ve yapılandırabileceğiniz diğer değerlerle birlikte bu dosyalardan çıkmanız için girdiğiniz veriler yer alır. Önbellek anahtarlarını Populate Cache politikası, LookupCache politikası, InauthorizedCache politikası ile ve Yanıt Önbelleği politikası hakkında daha fazla bilgi edinin.

Yapılandırma öğelerinin değerleri -- <CacheKey>/<KeyFragment>, <Scope> ve <Prefix> -- benzersiz bir tanımlayıcı oluşturmak için birleştirilir. değer. Değeri almak için aynı yapılandırmayı kullanırsınız.

Aşağıdaki önbellek politikası yapılandırma öğeleriyle bir önbellek anahtarı oluşturabilirsiniz:

Önbellek Yapılandırma Öğesi Açıklama
<CacheKey>/<KeyFragment> Şunları yapmak için <CacheKey> <KeyFragment> öğelerini birlikte kullanın: önbellek girişleri için benzersiz bir tanımlayıcı belirtin. KeyFragment değerleri statik değişmez değerler veya değişkenlerinden gruplandırılır.
<Scope> veya <Prefix> Daha fazla ayrıntı için <Scope> veya <Prefix> öğelerini kullanın ad alanı önbellek anahtarları kullanır. <Scope>, önceden tanımlanmış değerlerin bir listesini numaralandırır. <Prefix> öğesi, <Scope> öğesini bir değerle geçersiz kılar tercih edebilirsiniz.

Bu değerler aşağıdaki biçimde <Scope> veya KeyFragment değerlerinden çift alt çizgiyle ayrılmış <Prefix> değerleri. Birden fazla KeyFragment değeri de çift alt çizgiyle ayrılır.

kapsam | prefix__keyfragment[__keyfragment]

Yanıt Önbelleği ile politikasına göre, isteğe bağlı olarak bu önbellek anahtarını, Kabul Etme kullanabilirsiniz.

<CacheKey>'i kullanma

<CacheKey> öğesi, Edge'in benzersiz bir tanımlayıcı oluşturma şeklini yapılandırır (bir anahtar) oluşturur. Edge önbelleğe alınan değeri aldığında önbelleği kullanır tuşuna basarak doğru değeri bulun. ResponseCache politikasında bir yapılandırma, anahtarı hem önbelleğe alma hem de alma için kullanılır. PopulateCache ve LookupCache politikalarında her politika, URL'den bir değerin alındığından emin olmak için<CacheKey> önbellek, oraya koyulan bir değere karşılık gelir.

<CacheKey> öğesi birden çok öğe içerebilir <KeyFragment> öğeleri. Çalışma zamanında, <KeyFragment> öğe, satırlarda iki alt çizgiyle birleştiriliyor: önbellek anahtarının bir bölümünü oluşturur.

Örneğin, aşağıdaki yapılandırmanın kullanılması için bir hello__world değeri oluşturuyor girin:

<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>

Ayrıca, Burada gösterildiği gibi <KeyFragment> öğesi:

<KeyFragment ref="variable_name"/>

Örneğin, önbellek anahtar değerinin istek mesajının Content-Type'ını dahil etmesini sağlamak için şunları yapabilirsiniz:

<KeyFragment ref="request.header.Content-Type"/>

Aşağıdaki yapılandırmada, request.header.Content-Type değişkeni değeri application/json.

<CacheKey>
  <KeyFragment>apiAccessToken</KeyFragment>
  <KeyFragment ref="request.header.Content-Type" />
  <KeyFragment>bar</KeyFragment>
</CacheKey>

Bu işlem, apiAccessToken__application/json__bar ile biten bir önbellek anahtarıyla sonuçlanır.

Kullanabileceğiniz değişkenlerin listesi için Değişkenler referansı bölümüne bakın.

Sorgudan türetilen önbellek anahtarları parametreler

request.queryparam.<queryparam_name> gibi değişkenleri kullanma request.querystring ile Önbellek anahtarını, anahtarın bir isteğin sorgu dizesinin bölümlerini içerecek şekilde yapılandırabilirsiniz. Örneğin, örnek olarak, aşağıdaki URL'de kullanabileceğiniz iki sorgu parametresi (param1 ve param2) önbellek anahtarınız:

http://myaccount.apigee.net/mydata?param1=value1&param2=value2

<CacheKey> öğeniz, bu değerleri bir yapılandırmayla birlikte kullanabilir Örneğin:

<CacheKey>
    <KeyFragment ref="request.queryparam.param1" />
    <KeyFragment ref="request.queryparam.param2" />
<CacheKey>

Çalışma zamanında önbellek anahtarı, takip etmek için:

other_key_parts__value1__value2

Parametrelerden değer eklemek için değişkenleri kullandığınızda, değerlerin <KeyFragment> öğe sırasında belirtilen sırada birleştirilir. Ayrıca, Edge'in yalnızca özellikle referans verdiğiniz değerleri kullanacağını unutmayın. <KeyFragment> öğeleri. İstek sorgu parametresi listeleriniz değişiklik gösteriyorsa Varyasyonlar önbellek anahtarında dikkate alınmaz.

Alternatif bir yöntem de request.querystring değişkenini kullanmaktır. Bu değişken, parametrelerini önbellek anahtarının parçası olarak kullanabilirsiniz. Bu yöntemin projenize dahil olan istekteki tüm parametrelerden biri, parametrelerin sırası bir istekten diğerine farklılık gösteriyorsa, anahtarı farklı olacaktır. Başka bir deyişle param1=value1&param2=value2 ve param2=value2&param1=value1 aynı önbellek anahtarı değerine sahip değil.

Kullanabileceğiniz değişkenlerin listesi için Değişkenler referansı bölümüne bakın.

<Kapsam>'ı Kullanma ve <Prefix>

<Scope> ve <Prefix> öğeleri, anahtarı bir ad alanı önekiyle güçlendirir. Temsil ettikleri değerler önbelleğinizin başına eklenir tuşuna basın.

Varsayılan olarak <Scope> öğesi kullanılır. Bu, değerleri içeren bir numaralandırma varsayılan olarak en dar olacak şekilde genişten dar kapsamlıya kadar bir aralıktır. Bu varsayılan değer başka bir değer veya bir <Prefix> öğe değeri belirtin. Şunları yapabilirsiniz: Bir <Prefix> öğesi kullanarak <Scope> değerini geçersiz kılıp Bu nedenle, ad alanı için özel bir değer belirtin.

Örneğin, <Scope> değeri "Global" -- en geniş kapsam, Kuruluş ve ortam adı. Proxy'niz "sirketim" ve "prod" adlı bir ortam sağlarsanız, önceden kullanılan değer takip etmek için:

Yapılandırma Sonuç
<Scope>Global</Scope> mycompany__prod__.

Global kapsamı yukarıda tanımlanan önbellek anahtarıyla kullanıyorsanız sonuç şöyle olur:

Yapılandırma Sonuç
<Scope>Global</Scope>
<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>
mycompany__prod__hello__world.

LookupCache politikasında açıklandığı gibi, kapsam: Global'dan Özel'e yükseltilecek şekilde yapılandırılacak. Özel kapsam, özeldir ve bu nedenle, belirli bir önbellek içinde ad alanı çakışmasıyla ilgili minimum risk teşkil eder. Özel kapsama sahip her önbellek girişinin önüne aşağıdaki biçimde eklenmiştir:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

Örneğin, <Scope> için Özel değer kullanılarak oluşturulmuş bir önbellek anahtarı şöyle görünür:

apifactory__test__weatherapi__16__default__apiAccessToken