คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info

กําหนดค่าวิธีดึงข้อมูลค่าที่แคชไว้ขณะรันไทม์
นโยบายนี้มีไว้สำหรับใช้กับแคชระยะสั้นอเนกประสงค์ นโยบายนี้ใช้ร่วมกับนโยบายการป้อนข้อมูลแคช (สําหรับการเขียนรายการ) และนโยบายการทำให้แคชใช้งานไม่ได้ (สําหรับการทำให้รายการใช้งานไม่ได้)
สําหรับการแคชคําตอบของทรัพยากรแบ็กเอนด์ โปรดดูนโยบายแคชคําตอบ
การอ้างอิงองค์ประกอบ
รายการต่อไปนี้แสดงองค์ประกอบที่คุณกำหนดค่าในนโยบายนี้ได้
<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1"> <DisplayName>Lookup Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <CacheLookupTimeoutInSeconds/> <Scope>Exclusive</Scope> <AssignTo>flowVar</AssignTo> </LookupCache>
ระบบจะรวมแคชที่แชร์ไว้โดยค่าเริ่มต้น หากต้องการใช้แคชที่ใช้ร่วมกัน ให้ยกเว้นองค์ประกอบ <CacheResource>
ในการกำหนดค่านโยบายนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บข้อมูลพื้นฐานได้ที่ข้อมูลภายในของแคช ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่หัวข้อการสร้างและแก้ไขแคชสภาพแวดล้อม
แอตทริบิวต์ <LookupCache>
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบ <AssignTo>
ระบุตัวแปรที่จะกำหนดให้กับรายการแคชหลังจากที่ดึงข้อมูลรายการดังกล่าวจากแคชแล้ว ตัวแปรต้องเขียนได้ หากการค้นหาแคชไม่ดึงข้อมูลค่า ระบบจะไม่ตั้งค่าตัวแปร
<AssignTo>variable_to_receive_cached_value</AssignTo>
ค่าเริ่มต้น: |
ไม่มี |
การแสดงผล: |
ต้องระบุ |
ประเภท: |
สตริง |
องค์ประกอบ <CacheKey>
กำหนดค่าพอยน์เตอร์ที่ไม่ซ้ำกันไปยังข้อมูลที่จัดเก็บไว้ในแคช
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
ค่าเริ่มต้น: |
ไม่มี |
การแสดงผล: |
ต้องระบุ |
ประเภท: |
ไม่มี |
<CacheKey>
สร้างชื่อของข้อมูลแต่ละรายการที่จัดเก็บไว้ในแคช
ขณะรันไทม์ ค่า <KeyFragment>
จะมีค่าองค์ประกอบ <Scope>
หรือ <Prefix>
อยู่หน้า ตัวอย่างเช่น ข้อความต่อไปนี้จะส่งผลให้คีย์แคชเป็น UserToken__apiAccessToken__
<value_of_client_id>
<CacheKey> <Prefix>UserToken</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey>
คุณใช้องค์ประกอบ <CacheKey>
ร่วมกับ <Prefix>
และ <Scope>
ดูข้อมูลเพิ่มเติมได้ที่การจัดการคีย์แคช
องค์ประกอบ <CacheLookupTimeoutInSeconds>
ระบุจำนวนวินาทีหลังจากที่การค้นหาแคชไม่สำเร็จจะถือว่าไม่พบแคช หากเกิดกรณีนี้ขึ้น ขั้นตอนจะกลับมาทำงานต่อตามเส้นทางที่ไม่มีการพบแคช
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
ค่าเริ่มต้น: |
30 |
การแสดงผล: |
ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ<CacheResource>
ระบุแคชที่ควรจัดเก็บข้อความ
ละเว้นองค์ประกอบนี้โดยสิ้นเชิงหากนโยบายนี้ (และนโยบาย PopulateCache และ InvalidateCache ที่เกี่ยวข้อง) ใช้แคชที่แชร์ซึ่งรวมอยู่ด้วย
<CacheResource>cache_to_use</CacheResource>
ค่าเริ่มต้น: |
ไม่มี |
การแสดงผล: |
ไม่บังคับ |
ประเภท: |
สตริง |
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่การสร้างและแก้ไขแคชสภาพแวดล้อม
องค์ประกอบ <CacheKey>/<KeyFragment>
ระบุค่าที่ควรรวมอยู่ในคีย์แคช ซึ่งจะสร้างเนมสเปซสำหรับการจับคู่คำขอกับคำตอบที่แคชไว้
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
ค่าเริ่มต้น: |
ไม่มี |
การแสดงผล: |
ไม่บังคับ |
ประเภท: |
ไม่มี |
ซึ่งอาจเป็นคีย์ (ชื่อแบบคงที่ที่คุณระบุ) หรือค่า (รายการแบบไดนามิกที่ตั้งค่าโดยการอ้างอิงตัวแปร) ระบบจะรวมข้อมูลโค้ดที่ระบุทั้งหมด (รวมถึงคำนำหน้า) เข้าด้วยกันเพื่อสร้างคีย์แคช
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
คุณใช้องค์ประกอบ <KeyFragment>
ร่วมกับ <Prefix>
และ <Scope>
ดูข้อมูลเพิ่มเติมได้ที่การจัดการคีย์แคช
Attributes
แอตทริบิวต์ | ประเภท | ค่าเริ่มต้น | ต้องระบุ | คำอธิบาย |
---|---|---|---|---|
ref | สตริง | ไม่ได้ |
ตัวแปรที่จะดึงค่า ไม่ควรใช้หากองค์ประกอบนี้มีค่าลิเทอรัล |
องค์ประกอบ <CacheKey>/<Prefix>
ระบุค่าที่จะใช้เป็นคำนำหน้าคีย์แคช
<Prefix>prefix_string</Prefix>
ค่าเริ่มต้น: |
ไม่มี |
การแสดงผล: |
ไม่บังคับ |
ประเภท: |
สตริง |
ใช้ค่านี้แทน <Scope>
เมื่อคุณต้องการระบุค่าของคุณเองแทนค่าที่ระบุรายการเป็น <Scope>
หากมีการกําหนดไว้
<Prefix>
จะเพิ่มค่าคีย์แคชไว้หน้ารายการที่เขียนลงในแคช ค่าขององค์ประกอบ <Prefix>
จะลบล้างค่าขององค์ประกอบ <Scope>
คุณใช้องค์ประกอบ <Prefix>
ร่วมกับ <CacheKey>
และ <Scope>
ดูข้อมูลเพิ่มเติมได้ที่การจัดการคีย์แคช
องค์ประกอบ <Scope>
การแจกแจงที่ใช้ในการสร้างคำนำหน้าสำหรับคีย์แคชเมื่อไม่มีองค์ประกอบ <Prefix>
ในองค์ประกอบ <CacheKey>
<Scope>scope_enumeration</Scope>
ค่าเริ่มต้น: |
"พิเศษ" |
การแสดงผล: |
ไม่บังคับ |
ประเภท: |
สตริง |
การตั้งค่า <Scope>
จะกําหนดคีย์แคชที่จะใส่ไว้ข้างหน้าตามค่า <Scope>
ตัวอย่างเช่น คีย์แคชจะมีรูปแบบต่อไปนี้เมื่อตั้งค่าขอบเขตเป็น Exclusive
orgName__envName__applicationName__proxy|TargetName__
[ serializedCacheKey ].
หากองค์ประกอบ <Prefix>
แสดงอยู่ใน <CacheKey>
องค์ประกอบดังกล่าวจะลบล้างค่าองค์ประกอบ <Scope>
ค่าที่ใช้ได้มีดังนี้
คุณใช้องค์ประกอบ <Scope>
ร่วมกับ <CacheKey>
และ <Prefix>
ดูข้อมูลเพิ่มเติมได้ที่การจัดการคีย์แคช
ค่าที่ยอมรับ
Global |
คีย์แคชจะแชร์กับพร็อกซี API ทั้งหมดที่ติดตั้งใช้งานในสภาพแวดล้อม คีย์แคชจะใส่ไว้ข้างหน้าในรูปแบบ orgName __ envName __ หากคุณกําหนดรายการ |
Application |
ระบบจะใช้ชื่อพร็อกซี API เป็นคำนำหน้า คีย์แคชจะใส่ไว้ข้างหน้าในรูปแบบ orgName__envName__applicationName |
Proxy |
ระบบจะใช้การกําหนดค่า ProxyEndpoint เป็นคำนำหน้า คีย์แคชจะใส่ไว้ข้างหน้าในรูปแบบ orgName__envName__applicationName__proxyEndpointName . |
Target |
ใช้การกําหนดค่า TargetEndpoint เป็นคำนำหน้า คีย์แคชที่ใส่ไว้ข้างหน้าในรูปแบบ orgName__envName__applicationName__targetEndpointName . |
Exclusive |
ค่าเริ่มต้น ซึ่งมีความเฉพาะเจาะจงมากที่สุด จึงมีความเสี่ยงน้อยที่สุดที่จะเกิดการชนกันของเนมสเปซภายในแคชหนึ่งๆ คำนำหน้ามี 2 รูปแบบดังนี้
คีย์แคชที่ใส่ไว้ข้างหน้าในรูปแบบ orgName__envName__applicationName__proxyNameITargetName ตัวอย่างเช่น สตริงแบบเต็มอาจมีลักษณะดังนี้ apifactory__test__weatherapi__16__default__apiAccessToken |
หมายเหตุการใช้งาน
ใช้นโยบายนี้กับการแคชสำหรับวัตถุประสงค์ทั่วไป ขณะรันไทม์ นโยบาย LookupCache จะดึงค่าจากแคช โดยกำหนดค่าให้กับตัวแปรที่คุณระบุด้วยองค์ประกอบ AssignTo (หากไม่มีการดึงค่า ระบบจะไม่ตั้งค่าตัวแปร) โดยจะค้นหาค่าตามคีย์แคชที่สร้างผ่านการกําหนดค่าที่รวมองค์ประกอบ CacheKey และขอบเขต กล่าวคือ หากต้องการดึงค่าที่เฉพาะเจาะจงซึ่งเพิ่มลงในแคชโดยนโยบาย PopulateCache นโยบาย LookupCache ของคุณต้องมีการกําหนดค่าองค์ประกอบที่เกี่ยวข้องกับคีย์แคชในลักษณะเดียวกับนโยบาย PopulateCache
การแคชสําหรับวัตถุประสงค์ทั่วไปที่มีนโยบายการป้อนข้อมูลแคช นโยบาย LookupCache และนโยบาย InvalidateCache จะใช้แคชที่คุณกําหนดค่าหรือแคชที่แชร์ซึ่งรวมอยู่โดยค่าเริ่มต้น ในกรณีส่วนใหญ่ แคชที่แชร์ที่อยู่เบื้องหลังน่าจะตอบสนองความต้องการของคุณ หากต้องการใช้แคชเริ่มต้น ให้ละเว้นองค์ประกอบ <CacheResource>
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่การสร้างและแก้ไขแคชสภาพแวดล้อม ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บข้อมูลพื้นฐานได้ที่ข้อมูลภายในของแคช
ตัวแปรของโฟลว์
ตัวแปรของโฟลว์สามารถใช้เพื่อกําหนดค่าลักษณะการทํางานแบบไดนามิกของรันไทม์สําหรับนโยบายและโฟลว์ โดยอิงตามส่วนหัว HTTP หรือเนื้อหาข้อความ หรือบริบทที่มีอยู่ในโฟลว์ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรของขั้นตอนได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวแปร
ตัวแปร Flow ที่กําหนดไว้ล่วงหน้าต่อไปนี้จะพร้อมใช้งานหลังจากที่คุณปรับแต่งลักษณะการทํางานของแคชที่กําหนดไว้ในนโยบาย LookupCache
ตัวแปร | ประเภท | สิทธิ์ | คำอธิบาย |
---|---|---|---|
lookupcache.{policy-name}.cachename | สตริง | อ่านอย่างเดียว | แสดงผลชื่อแคชที่ใช้ในนโยบาย |
lookupcache.{policy-name}.cachekey | สตริง | อ่านอย่างเดียว | แสดงผลคีย์ที่ใช้ |
lookupcache.{policy-name}.cachehit | บูลีน | อ่านอย่างเดียว | จริง หากนโยบายพบค่าสำหรับคีย์แคชที่ระบุ |
lookupcache.{policy-name}.assignto | สตริง | อ่านอย่างเดียว | แสดงผลตัวแปรที่มีการกำหนดแคช |
รหัสข้อผิดพลาด
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element is set to a
name which does not exist in the environment where the API proxy is being deployed. |
build |
InvalidTimeout |
If the <CacheLookupTimeoutInSeconds> element is set to
a negative number, then the deployment of the API proxy fails. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A