คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
เมื่อใช้นโยบายแคช คุณต้องกำหนดค่าคีย์แคช เพื่อให้แน่ใจว่าคีย์ของค่าแคชจะไม่ซ้ำกัน คีย์แคชพร้อมกับค่าอื่นๆ ที่คุณกำหนดค่าได้จะช่วยให้คุณดึงข้อมูลเดียวกันกับที่ป้อนเข้าไปได้อย่างน่าเชื่อถือ คุณใช้คีย์แคชกับนโยบาย PopulateCache, นโยบาย LookupCache, นโยบาย InvalidateCache และ นโยบาย ResponseCache
ระบบจะผสานค่าขององค์ประกอบการกำหนดค่า --
<CacheKey>/<KeyFragment>, <Scope>, และ
<Prefix> -- เพื่อสร้างตัวระบุที่เชื่อมโยงกับ
ค่าที่คุณป้อนลงในแคช คุณใช้การกำหนดค่าเดียวกันนี้เพื่อดึงค่า
คุณสร้างคีย์แคชได้ด้วยองค์ประกอบการกำหนดค่านโยบายแคชต่อไปนี้
| องค์ประกอบการกำหนดค่าแคช | คำอธิบาย |
|---|---|
<CacheKey> / <KeyFragment> |
ใช้องค์ประกอบ <CacheKey> <KeyFragment> ร่วมกันเพื่อระบุตัวระบุที่ไม่ซ้ำกันสำหรับรายการแคช ค่า KeyFragment อาจเป็นค่าคงที่หรือ
ตั้งค่าจากตัวแปร |
<Scope> หรือ <Prefix> |
ใช้องค์ประกอบ <Scope> หรือ <Prefix> เพื่อกำหนดขอบเขตคีย์แคชเพิ่มเติม <Scope> แสดงรายการค่าที่กำหนดไว้ล่วงหน้า
องค์ประกอบ <Prefix> จะลบล้าง <Scope> ด้วยค่าที่คุณเลือกเอง |
ระบบจะผสานค่าเหล่านี้ในรูปแบบต่อไปนี้ โดยคั่นค่า <Scope> หรือ
<Prefix> กับค่า KeyFragment ด้วยขีดล่าง 2 ตัว
นอกจากนี้ ระบบยังคั่นค่า KeyFragment หลายค่าด้วยขีดล่าง 2 ตัวด้วย
scope | prefix__keyfragment[__keyfragment]
เมื่อใช้นโยบาย Response Cache คุณสามารถเลือกที่จะต่อท้ายคีย์แคชนี้ด้วยค่าจากส่วนหัว Accept ของการตอบกลับ
การใช้ <CacheKey>
องค์ประกอบ <CacheKey> จะกำหนดค่าวิธีที่ Edge จะสร้างตัวระบุที่ไม่ซ้ำกัน
(คีย์) สำหรับรายการแคชแต่ละรายการที่สร้างขึ้น เมื่อ Edge ดึงค่าที่แคชไว้ ระบบจะใช้คีย์แคช
เพื่อค้นหาค่าที่ถูกต้อง ในนโยบาย ResponseCache การกำหนดค่าหนึ่งรายการจะกำหนดคีย์
สำหรับการแคชและการดึงข้อมูล ในนโยบาย 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>ในรันไทม์ คีย์แคชจะมีค่า param ที่ผสานกัน ดังตัวอย่างต่อไปนี้
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> "Global" ซึ่งเป็นขอบเขตกว้างที่สุดจะแสดง
ชื่อองค์กรและสภาพแวดล้อม ดังนั้น หากพร็อกซีของคุณได้รับการติดตั้งใช้งานในองค์กรที่ชื่อว่า
'mycompany' และสภาพแวดล้อมที่ชื่อว่า 'prod' ค่าที่นำหน้าจะเป็นดังนี้
| การกำหนดค่า | ผลลัพธ์ |
|---|---|
<Scope>Global</Scope> |
mycompany__prod__ |
หากคุณใช้ขอบเขต Global กับคีย์แคชที่กำหนดไว้ข้างต้น ผลลัพธ์จะเป็นดังนี้
| การกำหนดค่า | ผลลัพธ์ |
|---|---|
<Scope>Global</Scope>
<CacheKey>
<KeyFragment>hello</KeyFragment>
<KeyFragment>world</KeyFragment>
<CacheKey> |
mycompany__prod__hello__world |
ตามที่อธิบายไว้ใน นโยบาย LookupCache คุณสามารถ กำหนดค่าขอบเขตให้มีความเฉพาะเจาะจงมากขึ้นจาก Global เป็น Exclusive ขอบเขต Exclusive เป็นขอบเขตที่เฉพาะเจาะจงที่สุด ดังนั้นจึงมีความเสี่ยงน้อยที่สุดที่จะเกิดการชนกันของเนมสเปซภายในแคชที่กำหนด รายการแคชแต่ละรายการที่มีขอบเขต Exclusive จะมีคำนำหน้าในรูปแบบต่อไปนี้
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
ตัวอย่างเช่น คีย์แคชที่สร้างขึ้นจากการใช้ค่า Exclusive สำหรับ <Scope>
จะมีลักษณะดังนี้
apifactory__test__weatherapi__16__default__apiAccessToken