คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
กำหนดค่าวิธีดึงค่าที่แคชไว้ที่รันไทม์
นโยบายนี้มีไว้สำหรับใช้ในการแคชแบบอเนกประสงค์ระยะสั้น โดยใช้ร่วมกับ นโยบาย Populate Cache (สำหรับการเขียนรายการ) และนโยบาย Invalidate Cache (สำหรับการล้างรายการ)
หากต้องการแคชการตอบสนองของทรัพยากรแบ็กเอนด์ โปรดดูนโยบาย Response Cache
ข้อมูลอ้างอิงองค์ประกอบ
รายการต่อไปนี้แสดงองค์ประกอบที่คุณกำหนดค่าในนโยบายนี้ได้
<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> ในการกำหนดค่านโยบายนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บข้อมูลพื้นฐานได้ที่หัวข้อ Cache internals ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า แคชได้ที่หัวข้อการสร้างและแก้ไขแคชสภาพแวดล้อม
แอตทริบิวต์ <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
| Attribute | Type | Default | Required | Description |
|---|---|---|---|---|
| ref | string | ไม่ |
ตัวแปรที่จะดึงค่า ไม่ควรใช้หากองค์ประกอบนี้มีค่าลิเทอรัล |
องค์ประกอบ <CacheKey>/<Prefix>
ระบุค่าที่จะใช้เป็นคำนำหน้าคีย์แคช
<Prefix>prefix_string</Prefix>
|
ค่าเริ่มต้น: |
ไม่มี |
|
การแสดงผล: |
ไม่บังคับ |
|
ประเภท: |
สตริง |
ใช้ค่านี้แทน <Scope> เมื่อต้องการระบุค่าของคุณเอง
แทนค่าที่แจกแจง <Scope> หากมีการกำหนด
<Prefix> ระบบจะเพิ่มค่าคำนำหน้าคีย์แคชสำหรับรายการที่เขียนลงในแคช ค่าองค์ประกอบ
<Prefix> จะลบล้างค่าองค์ประกอบ<Scope>
คุณใช้องค์ประกอบ <Prefix> ร่วมกับ
<CacheKey> และ <Scope> ดูข้อมูลเพิ่มเติมได้ที่หัวข้อการทำงานกับคีย์แคช
องค์ประกอบ <Scope>
การแจกแจงที่ใช้สร้างคำนำหน้าสำหรับคีย์แคชเมื่อไม่มีองค์ประกอบ <Prefix>
ในองค์ประกอบ <CacheKey>
<Scope>scope_enumeration</Scope>
|
ค่าเริ่มต้น: |
"Exclusive" |
|
การแสดงผล: |
ไม่บังคับ |
|
ประเภท: |
สตริง |
การตั้งค่า <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 |
ค่าเริ่มต้น ค่านี้มีความเฉพาะเจาะจงมากที่สุด จึงมีความเสี่ยงน้อยที่สุดที่จะเกิดการชนกันของเนมสเปซ ภายในแคชที่กำหนด คำนำหน้ามี 1 ใน 2 รูปแบบต่อไปนี้
ระบบจะเพิ่มคีย์แคชในรูปแบบ orgName__envName__applicationName__proxyNameITargetName ตัวอย่างเช่น สตริงแบบเต็มอาจมีลักษณะดังนี้ apifactory__test__weatherapi__16__default__apiAccessToken |
หมายเหตุการใช้งาน
ใช้นโยบายนี้สำหรับการแคชแบบอเนกประสงค์ ที่รันไทม์ นโยบาย LookupCache จะดึงค่าจากแคชและกำหนดค่าให้กับตัวแปรที่คุณระบุด้วยองค์ประกอบ AssignTo (หากไม่ดึงค่า ตัวแปรจะไม่ได้รับการตั้งค่า) โดยจะค้นหาค่าตามคีย์แคช ที่สร้างขึ้นผ่านการกำหนดค่าซึ่งรวมองค์ประกอบ CacheKey และ Scope กล่าวอีกนัยหนึ่งคือ หากต้องการดึงค่าที่เฉพาะเจาะจงซึ่งเพิ่มลงในแคชโดยนโยบาย PopulateCache นโยบาย LookupCache ต้องมีการกำหนดค่าองค์ประกอบที่เกี่ยวข้องกับคีย์แคชในลักษณะเดียวกับนโยบาย PopulateCache
การแคชแบบอเนกประสงค์ด้วยนโยบาย Populate Cache,
นโยบาย LookupCache และนโยบาย Invalidate Cache จะใช้
แคชที่คุณกำหนดค่าหรือแคชที่แชร์ซึ่งรวมอยู่โดยค่าเริ่มต้น ในกรณีส่วนใหญ่ แคชที่แชร์พื้นฐานควรตอบสนองความต้องการของคุณ หากต้องการใช้แคชเริ่มต้น ให้ออก
องค์ประกอบ <CacheResource>
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่หัวข้อการสร้างและแก้ไขแคชสภาพแวดล้อม ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บข้อมูลพื้นฐานได้ที่หัวข้อ Cache internals
ตัวแปรโฟลว์
คุณสามารถใช้ตัวแปรโฟลว์เพื่อกำหนดค่าลักษณะการทำงานแบบไดนามิกที่รันไทม์สำหรับนโยบายและโฟลว์ โดยอิงตาม ส่วนหัว HTTP หรือเนื้อหาข้อความ หรือบริบทที่มีอยู่ในโฟลว์ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรโฟลว์ได้ที่ ข้อมูลอ้างอิงตัวแปร
ตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าต่อไปนี้จะพร้อมใช้งานหลังจากที่คุณปรับแต่งลักษณะการทำงานของ แคชที่กำหนดไว้ในนโยบาย LookupCache
| Variables | Type | Permission | Description |
|---|---|---|---|
| lookupcache.{policy-name}.cachename | String | อ่านอย่างเดียว | แสดงชื่อแคชที่ใช้ในนโยบาย |
| lookupcache.{policy-name}.cachekey | String | อ่านอย่างเดียว | แสดงคีย์ที่ใช้ |
| lookupcache.{policy-name}.cachehit | บูลีน | อ่านอย่างเดียว | จริง หากนโยบายพบค่าสำหรับคีย์แคชที่ระบุ |
| lookupcache.{policy-name}.assignto | String | อ่านอย่างเดียว | แสดงตัวแปรที่จะกำหนดแคช |
รหัสข้อผิดพลาด
ส่วนนี้อธิบายข้อความแสดงข้อผิดพลาดและตัวแปรโฟลว์ที่ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้สำคัญที่ต้องทราบ หากคุณกำลังพัฒนากฎข้อผิดพลาดสำหรับพร็อกซี ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
คำนำหน้ารหัสข้อผิดพลาด
ไม่มีข้อมูล
ข้อผิดพลาดเกี่ยวกับรันไทม์
นโยบายนี้จะไม่แสดงข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
| ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
|---|---|---|
InvalidCacheResourceReference |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <CacheResource> เป็นชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี API ใช้งานได้ |
build |
InvalidTimeout |
หากตั้งค่าองค์ประกอบ <CacheLookupTimeoutInSeconds> เป็นตัวเลขติดลบ จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ |
build |
CacheNotFound |
ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้สร้างแคชที่ระบุในข้อความแสดงข้อผิดพลาดบนคอมโพเนนต์โปรแกรมประมวลผลข้อความที่เฉพาะเจาะจง | build |
ตัวแปรของข้อผิดพลาด
ไม่มีข้อมูล
ตัวอย่างการตอบกลับข้อผิดพลาด
ไม่มีข้อมูล