คุณกำลังดูเอกสารประกอบของ 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__keyfulfillment[__keyfulfillment]
เมื่อใช้นโยบายแคชการตอบกลับ คุณจะเพิ่มคีย์แคชนี้ต่อท้ายด้วยค่าจากส่วนหัว "ยอมรับ" ของการตอบกลับหรือไม่ก็ได้
การใช้ <CacheKey>
องค์ประกอบ <CacheKey>
จะกำหนดค่าวิธีที่ Edge จะสร้างตัวระบุที่ไม่ซ้ำกัน (คีย์) สำหรับรายการแคชแต่ละรายการที่สร้างขึ้น เมื่อ Edge ดึงค่าที่แคชไว้ ระบบจะใช้คีย์แคชเพื่อหาค่าที่ถูกต้อง ในนโยบาย ResponseCache การกำหนดค่า 1 รายการจะกำหนดคีย์สำหรับทั้งการแคชและการดึงข้อมูล ในนโยบาย addeCache และ LookupCache แต่ละนโยบายต้องมีองค์ประกอบ <CacheKey>
ที่เหมือนกัน เพื่อให้แน่ใจว่าค่าที่ดึงมาจากแคชสอดคล้องกับค่าที่ใส่ไว้
องค์ประกอบ <CacheKey>
มีองค์ประกอบ <KeyFragment>
ได้หลายรายการ ขณะรันไทม์ ค่าที่ระบุโดยองค์ประกอบ <KeyFragment>
จะต่อกันด้วยขีดล่าง 2 ขีดระหว่างค่าเหล่านั้นเพื่อประกอบกันเป็นส่วนหนึ่งของคีย์แคช
ตัวอย่างเช่น การกำหนดค่าต่อไปนี้จะสร้างค่า hello__world
เพื่อใช้ในคีย์แคช
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
คุณยังใช้ค่าตัวแปรในคีย์แคชได้โดยอ้างอิงตัวแปรในองค์ประกอบ <KeyFragment>
ตามที่แสดงไว้ที่นี่
<KeyFragment ref="variable_name"/>
เช่น หากต้องการทำให้ค่าคีย์แคชรวมประเภทเนื้อหาของข้อความคำขอเข้าด้วยกัน ให้ทำดังนี้
<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