PopulateCache politikası

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

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

Önbelleği Doldur politikası, girişleri kısa süreli genel amaçlı önbellekte yazmak için tasarlanmıştır. Arama işlevi, Lookup Önbellek politikası (önbellek girişlerini okumak için) ve Önbellek politikasını geçersiz kılma (girişleri geçersiz kılmak için)

Arka uç kaynaklarının yanıtlarını önbelleğe almak için bkz. Yanıt Önbelleği politikası.

Öğe referansı

Bu politikada yapılandırabileceğiniz öğeler aşağıda listelenmiştir.

<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1">
    <DisplayName>Populate Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSeconds>300</TimeoutInSeconds>
    </ExpirySettings>
    <Source>flowVar</Source>
</PopulateCache>

&lt;PopulateCache&gt; özellikler

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

&lt;CacheKey&gt; öğe

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

Zorunlu

Tür:

Yok

<CacheKey>, önbellek.

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

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

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

&lt;CacheResource&gt; öğe

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

Bu politika (ve karşılık gelen LookupCache ve In VerifyCache politikaları), eklenen paylaşılan önbelleği kullanır.

<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 oluşturma ve düzenleme önbellek hakkında daha fazla bilgi edinin.

&lt;CacheKey&gt;/&lt;KeyFragment&gt; öğe

Eşleştirme için bir ad alanı oluşturarak önbellek anahtarına eklenmesi gereken bir değeri belirtir yapılan istek.

<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 bir değer ( bir değişkene referansta bulunması) gerekir. Belirtilen tüm parçalar birleştirilir (artı önek) önbellek anahtarını oluşturun.

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

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

Özellikler

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

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

&lt;CacheKey&gt;/&lt;Prefix&gt; öğe

Önbellek anahtarı öneki olarak kullanılacak değeri belirtir.

<Prefix>prefix_string</Prefix>

Varsayılan:

Yok

Bulunma:

İsteğe bağlı

Tür:

Dize

Kendi değerinizi belirtmek istediğinizde <Scope> yerine bu değeri kullanın yerine <Scope> kullanabilirsiniz. Tanımlanmışsa <Prefix>, önbelleğe yazılan girişlerin başına önbellek anahtarı değerini ekler. CEVAP <Prefix> öğe değeri, <Scope> öğesini geçersiz kılar değer.

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

&lt;ExpirySettings&gt; öğe

Önbellek girişinin ne zaman sona ereceğini belirtir. Zaman mevcut, <TimeoutInSeconds> geçersiz kılma hem <TimeOfDay> hem de <ExpiryDate>.

<ExpirySettings>
  <!-- use exactly one of the following child elements -->
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

Varsayılan:

Yok

Bulunma:

Zorunlu

Tür:

Yok

<ExpirySettings> alt öğeleri

Tam olarak bir alt öğe kullanın. Aşağıdaki tabloda, <ExpirySettings>:

Alt Öğe Açıklama
<TimeoutInSeconds>

Önbellek girişinin süresinin dolacağı saniye sayısı.

<ExpirySettings>
  <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds>
</ExpirySettings>

Bu öğe, desteği sonlandırılan TimeoutInSec öğesinin yerini alır.

<ExpiryDate>

Önbellek girişinin süresinin dolacağı tarihi belirtir. Formda bir dize belirtin mm-dd-yyyy

<ExpirySettings>
  <ExpiryDate ref="var-containing-date">expiry</ExpiryDate>
</ExpirySettings>

Belirtilen tarih geçmişteyse politika giriş için maksimum geçerlilik süresidir. Bu maksimum 30 gündür.

<TimeOfDay>

Önbellek girişinin gün içinde sona ereceği saati belirtir. HH:mm:ss biçiminde bir dize belirtin; burada SS, UTC saat diliminde, 24 saatlik biçimde 1 saat. Örneğin, 14:30:00, öğleden sonra 2:30’da bulabilirsiniz.

<ExpirySettings>
  <TimeOfDay ref="var-containing-time">expiry</TimeOfDay>
</ExpirySettings>
.

Olası alt öğelerden yalnızca birini belirtmeniz gerekir. Birden çok öğe belirtirseniz öncelik sırası şu şekildedir:TimeoutInSeconds, ExpiryDate, TimeOfDay.

Yukarıdaki <ExpirySettings> alt öğelerinin her biriyle, alt öğede isteğe bağlı ref özelliğini belirtirseniz politika adlandırılmış bağlam değişkeninden geçerlilik bitiş değerini alma. Değişken tanımlanmamışsa politika, alt öğenin düz metin değerini kullanır.

&lt;Scope&gt; öğe

<Prefix> anahtar kelimesi olduğunda önbellek anahtarı için bir önek oluşturmak üzere kullanılan numaralandırma öğesi, <CacheKey> öğesinde sağlanmamış.

<Scope>scope_enumeration</Scope>

Varsayılan:

"Özel"

Bulunma:

İsteğe bağlı

Tür:

Dize

<Scope> ayarı, <Scope> değeri. Örneğin, bir önbellek anahtarı aşağıdaki biçimi kullanarak kapsam Exclusive olarak ayarlandı:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

<CacheKey> içinde bir <Prefix> öğesi varsa <Scope> öğe değerinin yerini alır. Geçerli değerler numaralandırmaları içerir bölümüne göz atın.

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

Kabul edilebilir değerler

Global

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

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

Application

API proxy adı ön ek olarak kullanılıyor.

Önbellek anahtarı başa orgName__envName__apiProxyName biçiminde eklenir.

Proxy

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

Önbellek anahtarı formun başına eklendi orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName

Target

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

Formun başına eklenmiş önbellek anahtarı orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName

Exclusive

Varsayılan. Bu, en spesifik olanıdır ve bu nedenle ad alanı açısından minimum risk sunar. çakışmalarını ön plana çıkarır.

Önek iki biçimden biridir:

  • Politika ProxyEndpoint akışına bağlıysa önek ApiProxyName_ProxyEndpointName oluşturun.
  • Politika TargetEndpoint konumuna eklenirse önek biçimdedir ApiProxyName_TargetName.

Formun başına eklenmiş önbellek anahtarı orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

&lt;Source&gt; öğe

Değerinin önbelleğe yazılması gereken değişkeni belirtir.

<Source>source_variable</Source>

Varsayılan:

Yok

Bulunma:

Zorunlu

Tür:

Dize

Kullanım notları

Genel amaçlı önbelleğe alma için bu politikayı kullanın. Çalışma zamanında, <PopulateCache> politikası, Şurada belirttiğiniz önbelleğe <Source> öğesi: <CacheResource> öğesi. <CacheKey>, ayarlamak istediğiniz anahtarı belirtmek için <Scope> ve <Prefix> değeri almak için <LookupCache> politikasından kullanabilir. Şunu kullanın: Önbelleğe alınan değerin süresinin ne zaman sona ereceğini yapılandırmak için <ExpirySettings> öğesi.

PopulateCache politikası, LookupCache politikası ve InencryptedCache politikası ile genel amaçlı önbelleğe alma yapılandırdığınız bir önbellek veya varsayılan olarak eklenmiş paylaşılan bir önbellek. Çoğu durumda temel paylaşılan önbelleğin ihtiyaçlarınızı karşılaması gerekir. Bu önbelleği kullanmak için <CacheResource> öğesi.

Önbellek sınırları: Çeşitli önbellek sınırları Örneğin, ad ve değer boyutu, toplam önbellek sayısı, önbellekteki öğe sayısı emin olmanız gerekir.

Temel veri deposu hakkında daha fazla bilgi edinmek için Önbellek dahili verileri bölümüne bakın. Yapılandırma hakkında daha fazla bilgi için daha fazla bilgi için ortam önbelleğinizdir.

Önbellek şifreleme hakkında

Edge for Public Cloud: Önbellek yalnızca şurada şifrelenir: PCI ve HIPAA özellikli kuruluşlar. Bu kuruluşlar için şifreleme, kuruluş sırasında yapılandırılır. temel hazırlık.

Hata kodları

Bu bölümde, bu politika bir hatayı tetiklediğinde döndürülen hata kodları ve hata mesajlarının yanı sıra Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.

Çalışma zamanı hataları

Bu hatalar, politika yürütüldüğünde ortaya çıkabilir.

Hata kodu HTTP Durumu Şu durumda gerçekleşir:
policies.populatecache.EntryCannotBeCached 500 Giriş önbelleğe alınamaz. Önbelleğe alınan ileti nesnesi bir sınıf oluşturun.

Dağıtım hataları

Bu politikayı içeren bir proxy dağıttığınızda bu hatalar oluşabilir.

Hata adı Neden Düzelt
InvalidCacheResourceReference Bu hata, PopulateCache politikasındaki <CacheResource> öğesi API proxy'sinin dağıtıldığı ortamda bulunmayan bir ad.
CacheNotFound <CacheResource> öğesinde belirtilen önbellek bulunur.

Hata değişkenleri

Bu değişkenler, politika bir hatayı tetiklediğinde ayarlanır. Daha fazla bilgi için Bilmeniz gerekenler hakkında daha fazla bilgi edinin.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelendiği gibi hatanın adıdır. Hata adı, hata kodunun son kısmıdır. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. populatecache.POP-CACHE-1.failed = true

Örnek hata yanıtı

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

Örnek hata kuralı

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>