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 yazılması gerektiğini yapılandırır.
Önbelleği Doldur politikası, kısa süreli genel amaçlı önbelleğe giriş yazmak için tasarlanmıştır. Arama Önbelleği politikası (önbellek girişlerini okumak 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.
<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>
<PopulateCache> ö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ı. İ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 |
Yok | Gerekli |
continueOnError |
Bir politika başarısız olduğunda hata döndürülmesi için Bir politika başarısız olduktan sonra bile akış yürütülmesinin devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
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 |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<CacheKey> öğesi
Ö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: |
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.
<CacheResource> öğesi
İletilerin depolanacağı önbelleği belirtir.
Bu politika (ve ilgili LookupCache ile InValidateCache politikalarınız) dahil edilen 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.
<ExpirySettings> öğesi
Bir önbellek girişinin süresinin ne zaman dolacağını belirtir. Mevcut olduğunda <TimeoutInSeconds>
hem <TimeOfDay>
hem de <ExpiryDate>
değerini geçersiz kılar.
<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: |
Gerekli |
Tür: |
Yok |
<ExpirySettings>
alt öğeleri
Tam olarak bir tane alt öğe kullanın. Aşağıdaki tabloda <ExpirySettings>
alt öğelerinin açıklaması verilmektedir:
Alt Öğe | Açıklama |
---|---|
<TimeoutInSeconds> |
Bir önbellek girişinin süresinin dolacağı saniye sayısıdır. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> Bu öğe, kullanımdan kaldırılan |
<ExpiryDate> |
Bir önbellek girişinin süresinin dolacağı tarihi belirtir. <ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> Belirtilen tarih geçmişteyse politika maksimum geçerlilik süresini önbelleğe alınan girişe uygular. Bu maksimum süre 30 gündür. |
<TimeOfDay> |
Bir önbellek girişinin gün içindeki süresinin dolacağı saati belirtir.
<ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
Olası alt öğelerden yalnızca birini belirtmelisiniz. Birden çok öğe belirtirseniz öncelik sırası şu şekildedir:TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
.
<ExpirySettings>
öğesinin yukarıdaki alt öğelerinin her birinde, alt öğede isteğe bağlı ref
özelliğini belirtirseniz politika, son geçerlilik değerini adlandırılmış bağlam değişkeninden alır. Değişken tanımlı değilse politika, alt öğenin değişmez metin değerini kullanır.
<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ı aşağıdaki biçimi alır:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ ]
<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.
|
Application |
API proxy adı önek olarak kullanılır. Önbellek anahtarı, orgName__envName__apiProxyName biçiminde eklenir. |
Proxy |
Ön ek olarak ProxyEndpoint yapılandırması kullanılır. Önbellek anahtarı, orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName şeklinde başa eklenir . |
Target |
Önek olarak TargetEndpoint yapılandırması kullanılıyor. Önbellek anahtarı başına orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName biçiminde 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:
Önbellek anahtarı, başına orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName biçiminde eklenir. Örneğin, tam dize aşağıdaki gibi görünebilir: apifactory__test__weatherapi__16__default__apiAccessToken. |
<Source> öğesi
Değerinin önbelleğe yazılması gereken değişkeni belirtir.
<Source>source_variable</Source>
Varsayılan: |
Yok |
Bulunma: |
Gerekli |
Tür: |
Dize |
Kullanım notları
Bu politikayı genel amaçlı önbelleğe alma için kullanın. Çalışma zamanında <PopulateCache>
politikası, <Source>
öğesinde belirttiğiniz değişkenden <CacheResource>
öğesinde belirttiğiniz önbelleğe veri yazar. <CacheKey>
, <Scope>
ve <Prefix>
öğelerini kullanarak değeri almak için <LookupCache>
politikasından kullanabileceğiniz bir anahtar belirtebilirsiniz. Önbelleğe alınan değerin süresinin ne zaman dolacağını yapılandırmak için <ExpirySettings>
öğesini kullanın.
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, altta yatan paylaşılan önbellek ihtiyaçlarınızı karşılamalıdır. Bu önbelleği kullanmak için <CacheResource>
öğesini çıkarmanız yeterlidir.
Önbellek sınırları: Ad ve değer boyutu, toplam önbellek sayısı, önbellekteki öğe sayısı ve geçerlilik süresi gibi çeşitli önbellek sınırları geçerlidir.
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.
Önbellek şifrelemesi hakkında
Edge for Public Cloud: Önbellek yalnızca PCI ve HIPAA hizmetinin etkinleştirildiği kuruluşlarda şifrelenir. Bu kuruluşlar için şifreleme, kuruluş temel hazırlığı sırasında yapılandırılır.
Hata kodları
Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak 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.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP Durumu | Gerçekleşme zamanı: |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Giriş önbelleğe alınamaz. Önbelleğe alınan mesaj nesnesi, Serialize edilebilir sınıfın bir örneği değil. |
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, PopulateCache politikasındaki <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda mevcut olmayan bir ada ayarlanırsa ortaya çıkar. |
build |
CacheNotFound |
<CacheResource> öğesinde belirtilen önbellek mevcut değil. |
build |
Hata değişkenleri
Bu değişkenler, bu politika bir hatayı tetiklediğinde ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen 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" } } }
Hata kuralı örneği
<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>