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

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

&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ı

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP Status Occurs when
policies.populatecache.EntryCannotBeCached 500 An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element in the PopulateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound The cache specified in the <CacheResource> element does not exist.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. populatecache.POP-CACHE-1.failed = true

Example error response

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

Example fault rule

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