查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
使用快取政策時,您可以設定快取,確保快取值金鑰的唯一性 鍵。快取金鑰以及其他可設定的值,能讓您以可靠的方式 顯示您加入的資料快取金鑰與填入快取政策、查詢快取政策、InvalidateCache 政策和 回應快取 政策。
設定元素的值 --
<CacheKey>
/<KeyFragment>
、<Scope>
和
<Prefix>
-- 串連起來,建立與
您放入快取中的值您使用相同的設定擷取值。
使用下列快取政策設定元素,即可建立快取金鑰:
快取設定元素 | 說明 |
---|---|
<CacheKey> /<KeyFragment> |
結合使用 <CacheKey> <KeyFragment> 元素:
為快取項目指定不重複的 ID。KeyFragment 值可以是靜態常值,
透過變數設定 |
<Scope> 或 <Prefix> |
如要進一步使用 <Scope> 或 <Prefix> 元素
命名空間快取金鑰<Scope> 會列舉預先定義值的清單。
<Prefix> 元素會透過值覆寫 <Scope>
自訂內容 |
這些值會串連成下列格式,其中 <Scope>
或
<Prefix>
值,以雙底線分隔。
多個 KeyFragment 值之間也會以雙底線分隔。
範圍 |prefix__keyfragment[__keyfragment]
使用回應快取 政策,您可以選擇用「接受」回應中的值附加這個快取金鑰 標題。
使用 <CacheKey>
<CacheKey>
元素會設定 Edge 建立專屬 ID 的方式
(金鑰) 代表系統建立的每個快取項目。邊緣擷取快取值時,會使用快取
即可找到正確值。在 ResponseCache 政策中,有一項設定會定義索引鍵
執行快取和擷取作業在 PopulateCache 和 LookupCache 政策中,每項政策都必須
包含相同的 <CacheKey>
元素,以確保從
則對應在該處加入的值。
<CacheKey>
元素可包含多個
<KeyFragment>
元素。在執行階段中,由管理員指定的值
<KeyFragment>
元素在以下項目之間以兩條底線串連在一起
組成部分快取金鑰
例如,下列設定會建立 hello__world
的值,以供使用
中的值:
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
您也可以透過參照
<KeyFragment>
元素,如下所示:
<KeyFragment ref="variable_name"/>
舉例來說,若要快取金鑰值包含要求訊息的 Content-Type; 方法如下:
<KeyFragment ref="request.header.Content-Type"/>
在下列設定中,request.header.Content-Type
變數具有
值 application/json
。
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
這就會產生結尾為 apiAccessToken__application/json__bar
的快取金鑰。
如需可用變數的清單,請參閱變數參考資料。
從查詢衍生的快取金鑰 參數
使用 request.queryparam.<queryparam_name> 等變數和 request.querystring 您可以設定快取金鑰,讓金鑰包含要求查詢字串的一部分。適用對象 舉例來說,以下網址使用了「param1」和「param2」這兩個查詢參數,您可以 快取金鑰:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
您的 <CacheKey>
元素可與設定整合這些值
例如:
<CacheKey> <KeyFragment ref="request.queryparam.param1" /> <KeyFragment ref="request.queryparam.param2" /> <CacheKey>
在執行階段,快取金鑰會包含串連的參數值,如 包括:
other_key_parts__value1__value2
請注意,透過變數插入參數值時,
依 <KeyFragment>
元素順序建議的順序串連。另外,
請注意,Edge 只會使用您明確參照的值
<KeyFragment>
元素。如果您的要求查詢參數清單不同,
但不會考慮快取金鑰中的任何變化版本。
另一種方法是使用 request.querystring 變數,系統就會插入
參數當做快取金鑰的一部分。請注意,雖然這個方法
所有的參數,如果參數順序因一個要求而異,則
鍵的值會有所不同。也就是 param1=value1¶m2=value2
和
param2=value2¶m1=value1
不會產生相同的快取金鑰值。
如需可用變數的清單,請參閱變數參考資料。
使用 <Scope>和 <Prefix>
<Scope>
和 <Prefix>
元素可讓您
請用命名空間前置字串擴充索引鍵。它們代表的值會在快取前面加上
鍵。
系統預設會使用 <Scope>
元素。這是一個列舉,其值
範圍從廣到精,最小為預設值。如未使用這個預設值,
您指定其他值或指定 <Prefix>
元素值。你可以
使用 <Prefix>
元素覆寫 <Scope>
值;以及
因此請指定自訂命名空間的值
例如,<Scope>
值「Global」-- 最廣的範圍,代表
機構和環境名稱因此,如果您的 Proxy 是部署在名為
「mycompany」和名為「prod」的環境,產生的前置值會是
包括:
設定 | 結果 |
---|---|
<Scope>Global</Scope> |
mycompany__prod__ 。 |
如果您使用 Global 範圍搭配上述定義的快取金鑰,結果會是: 如下:
設定 | 結果 |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world 。 |
如 LookupCache 政策所述,範圍 並設定從「全域」變更為「專屬」專屬範圍則是 因此代表在特定快取中發生命名空間衝突的風險最低。 每個具有專屬範圍的快取項目都會以下列格式開頭:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
例如,使用 <Scope>
的「專屬值」建立的快取金鑰
看起來會像這樣:
apifactory__test__weatherapi__16__default__apiAccessToken