Önbellek anahtarlarıyla çalışma

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

Önbellek politikalarını kullanırken, önbellek anahtarlarını yapılandırarak önbelleğe alınan değer anahtarlarının benzersiz olmasını sağlarsınız. Önbellek anahtarı, yapılandırabileceğiniz diğer değerlerle birlikte, yerleştirdiğiniz aynı verileri almak için güvenilir bir yol sunar. Önbellek anahtarlarını; Önbelleği Doldurma politikası, LookupCache politikası, InValidateCache politikası ve Yanıt Önbelleği Politikası ile birlikte kullanırsınız.

Yapılandırma öğelerinin (<CacheKey>/<KeyFragment>, <Scope> ve <Prefix>) değerleri, önbelleğe aldığınız değerle ilişkilendirilmiş bir tanımlayıcı oluşturmak için birleştirilir. 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> Önbellek girişleri için benzersiz bir tanımlayıcı belirtmek üzere <CacheKey> <KeyFragment> öğelerini birlikte kullanın. KeyFragment değerleri statik değişmez değerler olabilir veya değişkenlerden ayarlanabilir.
<Scope> veya <Prefix> Diğer ad alanı önbellek anahtarları için <Scope> veya <Prefix> öğelerini kullanın. <Scope>, önceden tanımlanmış değerlerin listesini sıralar. <Prefix> öğesi, <Scope> öğesini kendi seçtiğiniz bir değerle geçersiz kılar.

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

kapsam | prefix__keysegment[__keyfragman]

Yanıt Önbelleği politikası ile isteğe bağlı olarak bu önbellek anahtarını yanıt Kabul üstbilgisindeki değerlerle ekleyebilirsiniz.

<CacheKey> kullanma

<CacheKey> öğesi, Edge'in oluşturduğu her önbellek girişi için benzersiz bir tanımlayıcıyı (anahtar) nasıl oluşturacağını yapılandırır. Edge önbelleğe alınan değeri aldığında, doğru değeri bulmak için önbellek anahtarını kullanır. ResponseCache politikasında, bir yapılandırma hem önbelleğe alma hem de alma için anahtarı tanımlar. PopulateCache ve LookupCache politikalarında, önbellekten alınan bir değerin buraya yerleştirilen bir değere karşılık gelmesini sağlamak için her politika aynı <CacheKey> öğelerine sahip olmalıdır.

<CacheKey> öğesi, birden fazla <KeyFragment> öğesi içerebilir. Çalışma zamanında, <KeyFragment> öğeleri tarafından belirtilen değerler, önbellek anahtarının bir kısmını oluşturmak üzere aralarında iki alt çizgiyle birleştirilir.

Örneğin, aşağıdaki yapılandırma önbellek anahtarında kullanılmak üzere hello__world değerini oluşturur:

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

Aşağıda gösterildiği gibi, <KeyFragment> öğesinde değişkene referans vererek önbellek anahtarında değişken değerleri de kullanabilirsiniz:

<KeyFragment ref="variable_name"/>

Örneğin, önbellek anahtarı değerinin istek mesajının İçerik Türünü içermesini sağlamak için aşağıdakileri yapın:

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

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

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

Bu sonuç, apiAccessToken__application/json__bar ile biten bir önbellek anahtarıdır.

Kullanabileceğiniz değişkenlerin listesi için Değişkenler referansı başlıklı makaleyi inceleyin.

Sorgu parametrelerinden türetilen önbellek anahtarları

request.queryparam.<queryparam_name> ve request.querystring gibi değişkenleri kullanarak bir önbellek anahtarını, isteğin sorgu dizesinin parçalarını içerecek şekilde yapılandırabilirsiniz. Örneğin, aşağıdaki URL, önbellek anahtarınızda kullanabileceğiniz iki sorgu parametresi (param1 ve param2) kullanır:

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

<CacheKey> öğeniz, bu değerleri aşağıdaki gibi bir yapılandırmayla dahil edebilir:

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

Çalışma zamanında önbellek anahtarı, aşağıdaki gibi birleştirilen param değerlerini içerir:

other_key_parts__value1__value2

Parametrelerden değer eklemek için değişkenleri kullandığınızda, değerlerin <KeyFragment> öğe sırasında önerilen sırada birleştirileceğini unutmayın. Ayrıca, Edge'in yalnızca <KeyFragment> öğeleriyle özellikle referans verdiğiniz değerleri kullanacağını unutmayın. İstek sorgusu parametre listeleriniz farklılık gösteriyorsa varyasyonlar önbellek anahtarında dikkate alınmaz.

Alternatif olarak, parametre dizesinin tamamını önbellek anahtarının bir parçası olarak ekleyen request.querystring değişkenini kullanabilirsiniz. Bu yöntem tüm parametreleri hesaba katsa da, parametrelerin sırasının bir istekten diğerine farklılık göstermesi durumunda anahtarın farklı olacağını unutmayın. Diğer bir deyişle, param1=value1&param2=value2 ve param2=value2&param1=value1 aynı önbellek anahtarı değeriyle sonuçlanmaz.

Kullanabileceğiniz değişkenlerin listesi için Değişkenler referansı başlıklı makaleyi inceleyin.

<Scope> ve <Prefix> kullanma

<Scope> ve <Prefix> öğeleri, anahtarı bir ad alanı önekiyle genişletmenin bir yolunu sunar. Temsil ettikleri değerler önbellek anahtarınızın başına eklenir.

Varsayılan olarak <Scope> öğesi kullanılır. Değerleri genişten dar kapsamlıya doğru değişen ve varsayılan olarak en dar olan bir numaralandırmadır. Başka bir değer belirtmediğiniz veya bir <Prefix> öğesi değeri belirtmediğiniz sürece bu varsayılan değer kullanılır. <Prefix> öğesi kullanarak <Scope> değerini geçersiz kılabilir, dolayısıyla ad hızı için özel bir değer belirtebilirsiniz.

Örneğin, <Scope> değeri "Global" (en geniş kapsam), kuruluş ve ortam adını temsil eder. Dolayısıyla proxy'niz "sirketim" adlı bir kuruluşta ve "prod" adlı bir ortamda dağıtılmışsa elde edilen önceden belirlenmiş değer aşağıdaki gibi olur:

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

Global kapsamı yukarıda tanımlanan önbellek anahtarıyla kullanıyorsanız sonuç şu şekilde 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, belirginliği Genel'den Özel'e artıracak şekilde yapılandırılabilir. Özel kapsam en spesifik kapsamdır ve bu nedenle belirli bir önbellekte ad alanı çakışması riskini minimum düzeyde temsil eder. Özel kapsama sahip her önbellek girişinin önüne aşağıdaki biçimde eklenir:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

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

apifactory__test__weatherapi__16__default__apiAccessToken