LookupCache politikası

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

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

Bu politika, genel amaçlı kısa süreli önbelleğe almada kullanılmak üzere tasarlanmıştır. Önbelleği Doldur politikası (girişleri yazmak için) ve Önbelleği Geçersiz Kılma politikasıyla (girişleri geçersiz kılmak için) 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 edinmek için Dahili verileri önbelleğe alma konusuna bakın. Önbellekleri yapılandırma hakkında daha fazla bilgi edinmek için Ortam önbelleği oluşturma ve düzenleme bölümüne bakın.

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

<assignTo> öğesi

Önbellek girişinin önbellekten alındıktan sonra atandığı değişkeni belirtir. Değişken yazılabilir olmalıdır. Önbellek araması bir değer almazsa değişken ayarlanmaz.

<AssignTo>variable_to_receive_cached_value</AssignTo>

Varsayılan:

Yok

Bulunma:

Gerekli

Tür:

Dize

<CacheKey> öğesi

Önbellekte depolanan bir veri parçasına yönelik 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:

Gerekli

Tür:

Yok

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

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

Bu politika (ve ilgili PopulateCache ile InValidateCache politikalarınız) paylaşılan önbelleği kullanıyorsa bu öğeyi tamamen atlayı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 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.

<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__applicationName__distributionedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

<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

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__applicationName şeklinde eklenir.

Proxy

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

Önbellek anahtarı, orgName__envName__applicationName__DeployedRevisionNumber__proxyEndpointName şeklinde eklenir.

Target

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

Önbellek anahtarı başına orgName__envName__applicationName__distributionedRevisionNumber__targetEndpointName şeklinde 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__applicationName__DeployedRevisionNumber__proxyNameITargetName şeklinde eklenir.

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

Kullanım notları

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

Önbelleği Doldur politikası, LookupCache politikası ve InValidateCache politikası ile genel amaçlı önbelleğe alma işlemi, yapılandırdığınız bir önbelleği veya varsayılan olarak dahil edilen paylaşılan bir önbelleği kullanır. Çoğu durumda, altta yatan paylaşılan önbellek ihtiyaçlarınızı karşılamalıdır. Varsayılan önbelleği kullanmak için <CacheResource> öğesini çıkarmanız yeterlidir.

Ö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. Temel veri deposu hakkında daha fazla bilgi edinmek için Dahili verileri önbelleğe alma konusuna bakın.

Akış değişkenleri

Akış değişkenleri, HTTP üstbilgileri, mesaj içeriği veya Akış'ta bulunan bağlama göre politikalar ve akışlar için dinamik çalışma zamanı davranışını yapılandırmak amacıyla kullanılabilir. Akış değişkenleri hakkında daha fazla bilgi için Değişkenler referansı bölümüne bakın.

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

Değişkenler Tür İzin Açıklama
searchcache.{politika-adı}.cachename Dize Salt Okunur Politikada kullanılan önbellek adını döndürür.
searchcache.{politika-adı}.cachekey Dize Salt Okunur Kullanılan anahtarı döndürür.
searchcache.{politika-adı}.cachehit Boole Salt Okunur Politika, belirtilen önbellek anahtarı için bir değer bulduysa doğru değerini alır.
searchcache.{politika-adı}.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