LookupCache politikası

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

Önbelleğe alınan değerlerin çalışma zamanında nasıl alınacağını yapılandırır.

Bu politika, genel amaçlı kısa süreli önbelleğe alma işlemlerinde kullanılmak üzere tasarlanmıştır. Önbelleği doldurma politikası (giriş yazmak için) ve Önbelleği geçersiz kılma politikası (girişleri geçersiz kılmak için) ile birlikte kullanılır.

Arka uç kaynaklarının yanıtlarını önbelleğe almak için Yanıt Önbelleği Politikası'na bakın.

Öğe referansı

Aşağıda, bu politikada yapılandırabileceğiniz öğeler listelenmiştir.

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

Paylaşılan önbellek varsayılan olarak eklenir. Paylaşılan önbelleği kullanmak için bu politika yapılandırmasında <CacheResource> öğesini çıkarın.

Temel veri deposu hakkında daha fazla bilgi için Önbelleğin iç işleyiş mekanizması başlıklı makaleyi inceleyin. Önbellekleri yapılandırma hakkında daha fazla bilgi için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleyi inceleyin.

<LookupCache> özellikleri

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çermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

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

true İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<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

<AssignTo> öğesi

Önbellekten alındıktan sonra önbellek girişinin atandığı değişkeni belirtir. Değişken yazılabilir olmalıdır. Önbelleğe göz atma işlemi bir değer döndürmezse değişken ayarlanmaz.

<AssignTo>variable_to_receive_cached_value</AssignTo>

Varsayılan:

Yok

Bulunma:

Zorunlu

Tür:

Dize

<CacheKey> öğesi

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

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

Varsayılan:

Yok

Bulunma:

Zorunlu

Tür:

Yok

<CacheKey>, önbellekte saklanan her veri parçasının adını oluşturur.

Çalışma zamanında <KeyFragment> değerlerine <Scope> öğesi değeri veya <Prefix> değeri eklenir. Örneğin, aşağıdaki kod UserToken__apiAccessToken__<value_of_client_id> önbelleğe alınmış 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 başlıklı makaleyi inceleyin.

<CacheLookupTimeoutInSeconds> öğesi

Başarısız bir önbellek aramasının kaç saniye sonra önbellek kaçırması olarak değerlendirileceğini belirtir. Bu durumda akış, önbellek kaçırma yolunda devam eder.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Varsayılan:

30

Bulunma:

İsteğe bağlı

Tür:

Tamsayı

<CacheResource> öğesi

Mesajların saklanacağı önbelleği belirtir.

Bu politika (ve ilgili PopulateCache ve InvalidateCache politikalarınız) dahili paylaşılan önbelleği kullanıyorsa bu öğeyi tamamen çıkarın.

<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 için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleyi inceleyin.

<CacheKey>/<KeyFragment> öğesi

Önbelleğe anahtarına dahil edilmesi gereken bir değeri belirtir. Bu değer, isteklerin önbelleğe alınmış yanıtlarla eşleştirilmesi 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 bir ad) veya değer (bir değişkene referans vererek ayarlanan dinamik giriş) olabilir. Önek de dahil olmak üzere belirtilen tüm parçalar birleştirilerek önbelleğe alma anahtarı oluşturulur.

<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 başlıklı makaleyi inceleyin.

Özellikler

Özellik Tür Varsayılan Zorunlu Açıklama
ref 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ğeri belirtir.

<Prefix>prefix_string</Prefix>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

<Scope> - listelenen bir değer yerine kendi değerinizi belirtmek istediğinizde <Scope> yerine bu değeri kullanın. Tanımlanmışsa <Prefix>, önbelleğe yazılan girişler için önbelleğe anahtar değerini ekler. <Prefix> öğesi değeri, <Scope> öğesi 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 başlıklı makaleyi inceleyin.

<Scope> öğesi

<CacheKey> öğesinde <Prefix> öğesi sağlanmadığında önbelleğe alma anahtarı için önek oluşturmak amacıyla kullanılan listeleme.

<Scope>scope_enumeration</Scope>

Varsayılan:

"Özel"

Bulunma:

İsteğe bağlı

Tür:

Dize

<Scope> ayarı, <Scope> değerine göre ön ek olarak eklenen bir önbellek anahtarı belirler. Örneğin, kapsam Exclusive olarak ayarlandığında bir önbellek anahtarı aşağıdaki biçimi alır: orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ].

<CacheKey> içinde bir <Prefix> öğesi varsa bu öğe, <Scope> öğesi değerinin yerini alır. Geçerli değerler aşağıdaki listelemelerin yanı sıra

<Scope> öğesini <CacheKey> ve <Prefix> ile birlikte kullanırsınız. Daha fazla bilgi için Önbellek anahtarlarıyla çalışma başlıklı makaleyi inceleyin.

Kabul edilebilir değerler

Global

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

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

Application

Ön ek olarak API proxy adı kullanılır.

Önbelleğe alma anahtarı, orgName__envName__applicationName biçiminde eklenir.

Proxy

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

Önbelleğe alma anahtarı, orgName__envName__applicationName__proxyEndpointName biçiminde eklenir.

Target

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

orgName__envName__applicationName__targetEndpointName biçiminde eklenmiş önbelleğe alma anahtarı .

Exclusive

Varsayılan. Bu, en spesifik olanıdır ve bu nedenle belirli bir önbellekte ad alanı çakışması riski minimumdur.

Ön ek iki biçimden biri olabilir:

  • Politika ProxyEndpoint akışına eklenmişse ön ek ApiProxyName_ProxyEndpointName şeklindedir.
  • Politika TargetEndpoint konumuna eklenmişse önek ApiProxyName_TargetName biçimindedir.

Önbelleğe alma anahtarı şu şekilde eklenir: orgName__envName__applicationName__proxyNameITargetName

Örneğin, dizenin tamamı şu şekilde görünebilir:

apifactory__test__weatherapi__16__default__apiAccessToken
.

Kullanım notları

Genel amaçlı önbelleğe alma için bu politikayı kullanın. LookupCache politikası, çalışma zamanında önbellekten bir değer alır ve bu değeri AssignTo öğesiyle belirttiğiniz değişkene atar (hiçbir değer alınmazsa değişken ayarlanmaz). CacheKey ve Scope öğelerini birleştiren yapılandırma aracılığıyla oluşturulan bir önbelleğe alma anahtarına göre değeri arar. Diğer bir deyişle, PopulateCache politikası tarafından önbelleğe eklenen belirli bir değeri almak için LookupCache politikanızda, önbelleğe anahtarıyla ilgili öğelerin PopulateCache politikasıyla aynı şekilde yapılandırılmış olması gerekir.

PopulateCache politikası, LookupCache politikası ve InvalidateCache politikası ile genel amaçlı önbelleğe alma, yapılandırdığınız bir önbelleği veya varsayılan olarak dahil edilen paylaşılan bir önbelleği kullanır. Çoğu durumda, temel alınan paylaşılan önbellek ihtiyaçlarınızı karşılar. Varsayılan önbelleği kullanmak için <CacheResource> öğesini çıkarmanız yeterlidir.

Önbellekleri yapılandırma hakkında daha fazla bilgi için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleyi inceleyin. Temel veri deposu hakkında daha fazla bilgi için Önbelleğin iç işleyiş mekanizması başlıklı makaleyi inceleyin.

Akış değişkenleri

Akış değişkenleri, HTTP üstbilgilerine, mesaj içeriğine veya akışta mevcut olan bağlama göre politikalar ve akışlar için dinamik çalışma zamanı davranışını yapılandırmak için kullanılabilir. Akış değişkenleri hakkında daha fazla bilgi için Değişkenler referansı başlıklı makaleyi inceleyin.

Aşağıdaki önceden tanımlanmış Flow değişkenleri, bir LookupCache politikasında tanımladığınız önbelleğin davranışını özelleştirdikten sonra kullanılabilir.

Değişkenler Tür İzin Açıklama
lookupcache.{policy-name}.cachename Dize Salt Okunur Politikada kullanılan önbellek adını döndürür.
lookupcache.{policy-name}.cachekey Dize Salt Okunur Kullanılan anahtarı döndürür.
lookupcache.{policy-name}.cachehit Boole Salt Okunur Politika, belirtilen önbellek anahtarı için bir değer bulduysa doğru değerini döndürür.
lookupcache.{policy-name}.assignto Dize Salt Okunur Önbelleğin atandığı değişkeni döndürü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
InvalidCacheResourceReference Bu hata, <CacheResource> öğesi API proxy'sinin dağıtıldığı ortamda bulunmayan bir ada ayarlanırsa ortaya çıkar.
InvalidTimeout <CacheLookupTimeoutInSeconds> öğesi negatif bir sayıya ayarlanırsa API proxy'sinin dağıtımı başarısız olur.
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