คุณกําลังดูเอกสารประกอบของ 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 | สตริง | อ่านอย่างเดียว | แสดงผลตัวแปรที่มีการกำหนดแคช |
รหัสข้อผิดพลาด
ส่วนนี้อธิบายข้อความแสดงข้อผิดพลาดและตัวแปรโฟลว์ที่ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้สำคัญที่ต้องทราบ หากคุณกำลังพัฒนากฎข้อผิดพลาดสำหรับพร็อกซี ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
คำนำหน้ารหัสข้อผิดพลาด
ไม่มีข้อมูล
ข้อผิดพลาดเกี่ยวกับรันไทม์
นโยบายนี้จะไม่แสดงข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidCacheResourceReference |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <CacheResource> เป็นชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี API ใช้งานได้ |
build |
InvalidTimeout |
หากตั้งค่าองค์ประกอบ <CacheLookupTimeoutInSeconds> เป็นตัวเลขติดลบ จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ |
build |
CacheNotFound |
ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้สร้างแคชที่ระบุในข้อความแสดงข้อผิดพลาดบนคอมโพเนนต์โปรแกรมประมวลผลข้อความที่เฉพาะเจาะจง | build |
ตัวแปรของข้อผิดพลาด
ไม่มีข้อมูล
ตัวอย่างการตอบกลับข้อผิดพลาด
ไม่มีข้อมูล