คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
เมื่อใช้นโยบายแคช คุณจะมั่นใจได้ว่าคีย์ค่าที่แคชไว้จะไม่ซ้ำกันด้วยการกำหนดค่าแคช คีย์ คีย์แคช รวมถึงค่าอื่นๆ ที่คุณกำหนดค่าได้ เป็นวิธีที่เชื่อถือได้ในการออกจากระบบ กับข้อมูลเดียวกับที่คุณป้อน คุณใช้คีย์แคชกับนโยบายแคชป็อปปูเลต, นโยบาย LookupCache นโยบาย ไม่สามารถใช้แคช และ แคชการตอบกลับ นโยบาย
ค่าขององค์ประกอบการกำหนดค่า --
<CacheKey>
/<KeyFragment>
, <Scope>
และ
<Prefix>
-- ถูกต่อกันเพื่อสร้างตัวระบุที่เชื่อมโยงกับ
ค่าที่คุณป้อนในแคช คุณใช้การกำหนดค่าเดียวกันนี้เพื่อเรียกข้อมูลค่า
คุณจะสร้างคีย์แคชได้ด้วยองค์ประกอบการกำหนดค่านโยบายแคชต่อไปนี้
องค์ประกอบการกำหนดค่าแคช | คำอธิบาย |
---|---|
<CacheKey> / <KeyFragment> |
ใช้องค์ประกอบ <CacheKey> <KeyFragment> รวมกันเพื่อ
ระบุตัวระบุที่ไม่ซ้ำกันสำหรับรายการแคช ค่า KeyFragment อาจเป็นลิเทอรัลแบบคงที่หรือ
ตั้งค่าจากตัวแปร |
<Scope> หรือ <Prefix> |
ใช้องค์ประกอบ <Scope> หรือ <Prefix> เพื่อดำเนินการต่อ
คีย์แคชเนมสเปซ <Scope> แจกแจงรายการค่าที่กำหนดไว้ล่วงหน้า
องค์ประกอบ <Prefix> จะลบล้าง <Scope> ด้วยค่า
ที่คุณเลือกเอง |
ค่าเหล่านี้จะเชื่อมต่อกันในรูปแบบต่อไปนี้ โดยมี <Scope>
หรือ
ค่า <Prefix>
แยกจากค่า KeyFragment ด้วยขีดล่าง 2 ขีด
ค่า KeyFragment หลายค่าจะคั่นด้วยขีดล่าง 2 ขีด
ขอบเขต | prefix__keyfragment[__keyfragment]
ด้วยแคชการตอบกลับ นโยบาย คุณสามารถเลือกต่อท้ายคีย์แคชนี้ด้วยค่าจากการตอบกลับ "ยอมรับ" ส่วนหัว
การใช้ <CacheKey>
องค์ประกอบ <CacheKey>
จะกำหนดค่าวิธีที่ Edge จะสร้างตัวระบุที่ไม่ซ้ำกัน
(คีย์) สำหรับรายการแคชแต่ละรายการที่สร้างขึ้น Edge จะใช้แคชเมื่อดึงค่าที่แคชไว้
เพื่อหาค่าที่ถูกต้อง ในนโยบาย ResponseCache การกำหนดค่า 1 รายการจะเป็นตัวกำหนดคีย์
สำหรับทั้งการแคชและการดึงข้อมูล ในนโยบาย PopulateCache และ LookupCache แต่ละนโยบายต้อง
มีองค์ประกอบ <CacheKey>
ที่เหมือนกันเพื่อให้ค่าที่ดึงมาจาก
แคชจะสอดคล้องกับค่าที่ป้อนไว้
องค์ประกอบ <CacheKey>
สามารถมีหลาย
<KeyFragment>
องค์ประกอบ ขณะรันไทม์ ค่าที่ระบุโดย
องค์ประกอบ <KeyFragment>
ต่อกันด้วยขีดล่าง 2 ขีดคั่นระหว่างองค์ประกอบเหล่านั้นใน
เพื่อเป็นส่วนหนึ่งของคีย์แคช
ตัวอย่างเช่น การกำหนดค่าต่อไปนี้สร้างค่า 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 คุณกำหนดค่าคีย์แคชเพื่อให้คีย์ดังกล่าวมีส่วนต่างๆ ของสตริงการค้นหาของคำขอได้ สำหรับ ตัวอย่างเช่น URL ต่อไปนี้ใช้พารามิเตอร์การค้นหา 2 ตัว ได้แก่ 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>
คุณสามารถ
ลบล้างค่า <Scope>
โดยใช้องค์ประกอบ <Prefix>
และ
ดังนั้นให้ระบุค่าที่กำหนดเองสำหรับเนมสเปซ
เช่น ค่า <Scope>
เป็น "ส่วนกลาง" -- ขอบเขตที่กว้างที่สุด -- แสดงถึง
ชื่อองค์กรและสภาพแวดล้อม ดังนั้นหากมีการทำให้พร็อกซีของคุณใช้งานได้ในองค์กรที่ชื่อ
"mycompany" และสภาพแวดล้อมชื่อ "prod" ค่าที่เพิ่มข้างหน้าจะเป็นค่า
ดังต่อไปนี้:
การกำหนดค่า | ผลลัพธ์ |
---|---|
<Scope>Global</Scope> |
mycompany__prod__ |
หากคุณใช้ขอบเขตรวมกับคีย์แคชที่ระบุไว้ข้างต้น ผลลัพธ์จะเป็น ดังต่อไปนี้:
การกำหนดค่า | ผลลัพธ์ |
---|---|
<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