Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Önbelleğe alınmış değerlerin çalışma zamanında nasıl yazılacağını yapılandırır.
Önbelleği Doldurma politikası, kısa süreli genel amaçlı bir önbelleğe giriş yazmak için tasarlanmıştır. Lookup Cache policy (önbellek girişlerini okumak için) ve Invalidate Cache policy (girişleri geçersiz kılmak için) ile birlikte kullanılır.
Arka uç kaynaklarının yanıtlarını önbelleğe alma hakkında bilgi edinmek için Response Cache politikasına bakın.
Öğ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><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ı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile 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 özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğ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 |
|---|---|
| Varlık | İsteğe bağlı |
| Tür | Dize |
<CacheKey> öğesi
Önbellekte depolanan bir veri parçasına benzersiz bir işaretçi yapılandırır.
Önbellek anahtarları 2 KB ile sınırlıdır.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
|
Varsayılan: |
Yok |
|
Mevcut olma: |
Zorunlu |
|
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ğıdakiler 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 başlıklı makaleyi inceleyin.
<CacheResource> öğesi
İletilerin depolanması gereken önbelleği belirtir.
Bu politika (ve ilgili LookupCache ile InvalidateCache politikalarınız) paylaşılan önbelleği kullanıyorsa bu öğeyi tamamen atlayın.
<CacheResource>cache_to_use</CacheResource>
|
Varsayılan: |
Yok |
|
Mevcut olma: |
İ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 alınmış yanıtlara isteklerin eşleştirilmesi için bir ad alanı oluşturarak önbellek anahtarına dahil edilmesi gereken bir değeri belirtir.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
|
Varsayılan: |
Yok |
|
Mevcut olma: |
İsteğe bağlı |
|
Tür: |
Yok |
Bu, bir anahtar (sizin sağladığınız statik bir ad) veya bir değer (bir değişkene referans verilerek ayarlanan dinamik bir giriş) olabilir. Belirtilen tüm parçalar (ön ekle birlikte) birleştirilerek önbellek 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 bir değer içeriyorsa kullanılmamalıdır. |
<CacheKey>/<Prefix> öğesi
Önbellek anahtarı öneki olarak kullanılacak bir değeri belirtir.
<Prefix>prefix_string</Prefix>
|
Varsayılan: |
Yok |
|
Mevcut olma: |
İsteğe bağlı |
|
Tür: |
Dize |
<Scope> ile numaralandırılmış 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 önbellek anahtarı değerinin başına eklenir. <Prefix> öğe 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 başlıklı makaleyi inceleyin.
<ExpirySettings> öğesi
Önbellek girişinin ne zaman süresinin dolacağını belirtir. <TimeoutInSeconds> mevcut olduğunda hem <TimeOfDay> hem de <ExpiryDate>'ı 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 |
|
Mevcut olma: |
Zorunlu |
|
Tür: |
Yok |
<ExpirySettings> öğesinin alt öğeleri
Tam olarak bir alt öğe kullanın. Aşağıdaki tabloda <ExpirySettings> öğesinin alt öğeleri açıklanmaktadır:
| Alt öğe | Açıklama |
|---|---|
<TimeoutInSeconds> |
Bir önbellek girişinin süresinin dolması gereken saniye sayısı. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> Bu öğe, artık kullanımdan kaldırılan |
<ExpiryDate> |
Bir önbellek girişinin geçerliliğinin sona ereceği tarihi belirtir. Formda bir dize belirtin
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> Belirtilen tarih geçmişteyse politika, önbelleğe alınmış girişe maksimum geçerlilik süresini uygular. Bu maksimum süre 30 gündür. |
<TimeOfDay> |
Bir önbellek girişinin geçerliliğinin sona ermesi gereken günün saatini belirtir.
<ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
Olası alt öğelerden yalnızca birini belirtmeniz gerekir. Birden fazla öğe belirtirseniz
öncelik sırası:TimeoutInSeconds, ExpiryDate,
TimeOfDay.
<ExpirySettings> öğesinin yukarıdaki alt öğelerinin her birinde, alt öğede isteğe bağlı ref özelliğini belirtirseniz politika, son kullanma tarihini adlandırılmış bağlam değişkeninden alır. Değişken tanımlanmamışsa politika, alt öğenin değişmez metin değerini kullanır.
<Scope> öğesi
<CacheKey> öğesinde <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" |
|
Mevcut olma: |
İsteğe bağlı |
|
Tür: |
Dize |
<Scope> ayarı, <Scope> değerine göre önüne eklenen bir önbellek anahtarı belirler. Örneğin, kapsam Exclusive olarak ayarlandığında bir önbellek anahtarı aşağıdaki biçimi alır:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]
<CacheKey> içinde bir <Prefix> öğesi varsa bu öğe, <Scope> öğesi değerinin yerine geçer. 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 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.
|
Application |
API proxy adı, önek olarak kullanılır. Önbellek anahtarı, orgName__envName__apiProxyName biçiminde öneklenir. |
Proxy |
ProxyEndpoint yapılandırması, önek olarak kullanılır. Önbellek anahtarı, orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName biçiminde öneklenir . |
Target |
TargetEndpoint yapılandırması, önek olarak kullanılır. Önüne orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName biçiminde önbellek anahtarı eklenir . |
Exclusive |
Varsayılan. Bu, en belirgin olanıdır ve bu nedenle belirli bir önbellekte ad alanı çakışması riskini en aza indirir. Önek iki biçimden birinde olabilir:
Önbellek anahtarı, şu biçimde eklenir: orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName Örneğin, tam dize şu şekilde görünebilir: apifactory__test__weatherapi__16__default__apiAccessToken |
<Source> öğesi
Değeri önbelleğe yazılacak değişkeni belirtir.
<Source>source_variable</Source>
|
Varsayılan: |
Yok |
|
Mevcut olma: |
Zorunlu |
|
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şkendeki verileri <CacheResource> öğesinde belirttiğiniz önbelleğe yazar. Değeri almak için <LookupCache> politikasından kullanabileceğiniz bir anahtarı belirtmek üzere <CacheKey>, <Scope> ve <Prefix> öğelerini kullanabilirsiniz. Önbelleğe alınan değerin ne zaman sona ereceğini 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, temel alınan paylaşılan önbellek ihtiyaçlarınızı karşılar. Bu önbelleği kullanmak için <CacheResource> öğesini atlamanı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 alınan veri deposu hakkında daha fazla bilgi için Önbellek iç işleyişi 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.
Önbellek şifreleme hakkında
Herkese Açık Bulut için Edge: Önbellek yalnızca PCI- ve HIPAA etkin kuruluşlarda şifrelenir. Bu kuruluşlar için şifreleme, kuruluş sağlama sırasında yapılandırılır.
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. |
build |
CacheNotFound |
<CacheResource> öğesinde belirtilen önbellek
bulunur. |
build |
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>