นโยบาย LookupCache

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

กำหนดค่าวิธีดึงค่าที่แคชไว้ขณะรันไทม์

นโยบายนี้มีไว้ใช้เพื่อการแคชระยะสั้นที่มีวัตถุประสงค์ทั่วไป ใช้ใน ร่วมกับป้อนข้อมูล นโยบายแคช (สำหรับการเขียนรายการ) และนโยบายแคชทำให้ใช้งานไม่ได้ (สำหรับการทำให้รายการเป็นโมฆะ)

สำหรับการแคชคำตอบของทรัพยากรแบ็กเอนด์ โปรดดูที่ นโยบายแคชการตอบกลับ

การอ้างอิงองค์ประกอบ

รายการต่อไปนี้แสดงองค์ประกอบที่คุณสามารถกำหนดค่าในนโยบายนี้

<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> ในการกำหนดค่านโยบายนี้

ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลที่สำคัญได้ที่แคชภายใน โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า โปรดดูการสร้างและแก้ไข แคชสภาพแวดล้อม

&lt;LookupCache&gt; แอตทริบิวต์

ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name สามารถ ประกอบด้วยตัวอักษร ตัวเลข การเว้นวรรค ขีดกลางสั้น ขีดล่าง และจุด ค่านี้ไม่สามารถ เกิน 255 อักขระ

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

ไม่มี ต้องระบุ
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว เป็นเรื่องปกติ พฤติกรรมสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้ดำเนินการตามขั้นตอนได้อย่างต่อเนื่องแม้จะมีนโยบายแล้วก็ตาม ล้มเหลว

เท็จ ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย นโยบายจะไม่ บังคับใช้ แม้ว่าจะยังคงแนบกับขั้นตอน

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

เท็จ เลิกใช้

&lt;DisplayName&gt; องค์ประกอบ

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มี

หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ name ของนโยบายจะเป็น

การมีบุคคลอยู่ ไม่บังคับ
ประเภท สตริง

&lt;AssignTo&gt; องค์ประกอบ

ระบุตัวแปรที่กำหนดรายการแคชหลังจากดึงข้อมูลจาก แคช ตัวแปรต้องเขียนได้ ถ้าการค้นหาแคชไม่ได้เรียกค่า ตัวแปร จะไม่ถูกตั้งค่า

<AssignTo>variable_to_receive_cached_value</AssignTo>

ค่าเริ่มต้น:

ไม่มี

การตรวจหาบุคคล:

ต้องระบุ

ประเภท:

สตริง

&lt;CacheKey&gt; องค์ประกอบ

กำหนดค่าตัวชี้ที่ไม่ซ้ำกันไปยังข้อมูลที่จัดเก็บไว้ในแคช

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

ค่าเริ่มต้น:

ไม่มี

การตรวจหาบุคคล:

ต้องระบุ

ประเภท:

ไม่มี

<CacheKey> จะสร้างชื่อข้อมูลแต่ละส่วนที่จัดเก็บไว้ใน แคช

ระหว่างรันไทม์ จะมีการเพิ่มค่า <KeyFragment> ไว้ข้างหน้าค่า ค่าองค์ประกอบ <Scope> หรือค่า <Prefix> ตัวอย่างเช่น พารามิเตอร์ ต่อจากผลลัพธ์ในคีย์แคชของ UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

คุณใช้องค์ประกอบ <CacheKey> ร่วมกับ <Prefix> และ <Scope> ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช

&lt;CacheLookupTimeoutInSeconds&gt; องค์ประกอบ

ระบุจำนวนวินาทีหลังจากที่ระบบพิจารณาการค้นหาแคชที่ไม่สำเร็จ ไม่พบแคช หากเป็นเช่นนี้ ขั้นตอนจะกลับมาทำงานอีกครั้งตามเส้นทางที่ไม่มีข้อมูลแคช

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ค่าเริ่มต้น:

30

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

จำนวนเต็ม

&lt;CacheResource&gt; องค์ประกอบ

ระบุแคชที่ใช้เก็บข้อความ

ละเว้นองค์ประกอบนี้โดยสิ้นเชิงหากนโยบายนี้ (และ PopulateCache ที่เกี่ยวข้องและ นโยบายแคชเก่า) กำลังใช้แคชที่แชร์ซึ่งรวมไว้

<CacheResource>cache_to_use</CacheResource>

ค่าเริ่มต้น:

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชที่การสร้างและแก้ไขสภาพแวดล้อม แคช

&lt;CacheKey&gt;/&lt;KeyFragment&gt; องค์ประกอบ

ระบุค่าที่ควรรวมไว้ในคีย์แคช โดยสร้างเนมสเปซสำหรับการจับคู่ คำขอไปยังการตอบกลับที่แคชไว้

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

ค่าเริ่มต้น:

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

ไม่มี

ซึ่งอาจเป็นคีย์ (ชื่อแบบคงที่ที่คุณระบุ) หรือค่า (รายการแบบไดนามิกที่ตั้งค่าโดย อ้างอิงตัวแปร) ส่วนย่อยที่ระบุทั้งหมดแบบรวม (บวกคำนำหน้า) จะต่อเข้ากับ สร้างคีย์แคช

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

คุณใช้องค์ประกอบ <KeyFragment> ร่วมกับ <Prefix> และ <Scope> ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช

Attributes

แอตทริบิวต์ ประเภท ค่าเริ่มต้น ต้องระบุ คำอธิบาย
อ้างอิง สตริง ไม่ได้

ตัวแปรที่จะรับค่า ไม่ควรใช้หากองค์ประกอบนี้มี ค่าลิเทอรัล

&lt;CacheKey&gt;/&lt;Prefix&gt; องค์ประกอบ

ระบุค่าที่จะใช้เป็นคำนำหน้าคีย์แคช

<Prefix>prefix_string</Prefix>

ค่าเริ่มต้น:

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

ใช้ค่านี้แทน <Scope> เมื่อต้องการระบุค่าของคุณเอง แทนที่จะเป็นค่าที่แจกแจง <Scope> หากกำหนดไว้ <Prefix> เพิ่มค่าคีย์แคชไว้หน้ารายการที่เขียนลงในแคช ต ค่าองค์ประกอบ <Prefix> จะลบล้างองค์ประกอบ <Scope>

คุณใช้องค์ประกอบ <Prefix> ร่วมกับ <CacheKey> และ <Scope> ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช

&lt;Scope&gt; องค์ประกอบ

การแจงนับที่ใช้เพื่อสร้างคำนำหน้าสำหรับคีย์แคชเมื่อ <Prefix> ไม่ได้ระบุองค์ประกอบในองค์ประกอบ <CacheKey>

<Scope>scope_enumeration</Scope>

ค่าเริ่มต้น:

"พิเศษ"

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

การตั้งค่า <Scope> จะกำหนดคีย์แคชที่เพิ่มด้านหน้าตาม ค่า <Scope> ตัวอย่างเช่น คีย์แคชจะมีรูปแบบต่อไปนี้เมื่อ กำหนดขอบเขตเป็น Exclusive : orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

หากมีองค์ประกอบ <Prefix> ใน <CacheKey> องค์ประกอบดังกล่าว มีผลแทนค่าของเอลิเมนต์ <Scope> ค่าที่ถูกต้องจะรวมถึงการแจงนับ ที่ด้านล่าง

คุณใช้องค์ประกอบ <Scope> ร่วมกับ <CacheKey> และ <Prefix> ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช

ค่าที่ยอมรับ

Global

ระบบจะแชร์คีย์แคชในพร็อกซี API ทั้งหมดที่ทำให้ใช้งานได้ในสภาพแวดล้อม คีย์แคชคือ ซึ่งมีคำนำหน้าในรูปแบบ orgName __ envName __

หากคุณกำหนดรายการ <CacheKey> ด้วยฟังก์ชัน <KeyFragment> apiAccessToken และขอบเขต <Global> แต่ละรายการจะเก็บเป็น orgName__envName__apiAccessToken ตามด้วย ค่าแบบอนุกรมของโทเค็นเพื่อการเข้าถึง สำหรับพร็อกซี API ที่ทำให้ใช้งานได้ในสภาพแวดล้อมที่เรียกว่า "ทดสอบ" ในองค์กรที่ชื่อ "apifactory" โทเค็นเพื่อการเข้าถึงจะได้รับการจัดเก็บอยู่ภายใต้ คีย์แคชต่อไปนี้: apifactory__test__apiAccessToken

Application

ชื่อพร็อกซี API จะใช้เป็นคำนำหน้า

มีการเพิ่มคีย์แคชไว้ข้างหน้าในแบบฟอร์ม orgName__envName__applicationName.

Proxy

การกำหนดค่า ProxyEndpoint ใช้เป็นคำนำหน้า

มีการเพิ่มคีย์แคชไว้ข้างหน้าในแบบฟอร์ม orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName ที่ใช้เวลาเพียง 2 นาที

Target

การกำหนดค่า TargetEndpoint ใช้เป็นคำนำหน้า

คีย์แคชที่มีการแทรกไว้ข้างหน้าในแบบฟอร์ม orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName ที่ใช้เวลาเพียง 2 นาที

Exclusive

ค่าเริ่มต้น นี่เป็นค่าที่เฉพาะเจาะจงที่สุด ดังนั้นจึงมีความเสี่ยงต่ำต่อเนมสเปซ ภายในแคชที่ระบุ

คำนำหน้าเป็นหนึ่งในสองรูปแบบต่อไปนี้

  • หากแนบนโยบายกับขั้นตอน ProxyEndpoint คำนำหน้าจะเป็น จาก ApiProxyName_ProxyEndpointName
  • หากมีการแนบนโยบายที่ TargetEndpoint คำนำหน้าจะเป็นรูปแบบ ApiProxyName_TargetName.

คีย์แคชที่มีการแทรกไว้ข้างหน้าในแบบฟอร์ม orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

ตัวอย่างเช่น สตริงทั้งหมดอาจมีลักษณะดังนี้

apifactory__test__weatherapi__16__default__apiAccessToken

หมายเหตุการใช้งาน

ใช้นโยบายนี้สำหรับการแคชอเนกประสงค์ ขณะรันไทม์ นโยบาย LookupCache จะดึงข้อมูล จากแคช โดยกำหนดค่าให้กับตัวแปรที่คุณระบุด้วยองค์ประกอบ AssignTo (หากไม่มีการดึงค่า จะไม่มีการตั้งตัวแปร) ระบบค้นหาค่าโดยอิงจากแคช ที่สร้างผ่านการกำหนดค่าที่รวมองค์ประกอบ CacheKey และ Scope กล่าวคือ เพื่อดึงค่าบางค่าที่เพิ่มลงในแคชโดยนโยบาย PopulateCache เช่น LookupCache นโยบายต้องมีการกำหนดค่าองค์ประกอบที่เกี่ยวข้องกับคีย์แคชในลักษณะเดียวกับ PopulateCache

การแคชจุดประสงค์ทั่วไปด้วยนโยบายแคชการเติมข้อมูล นโยบาย LookupCache และนโยบาย CacheateCache ใช้ แคชที่คุณกำหนดค่าหรือแคชที่แชร์ซึ่งรวมไว้โดยค่าเริ่มต้น ในกรณีส่วนใหญ่ พารามิเตอร์ แคชที่แชร์ที่เกี่ยวข้องควรจะตรงตามความต้องการของคุณ หากต้องการใช้แคชเริ่มต้น ให้ละเว้น องค์ประกอบ <CacheResource>

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชที่การสร้างและแก้ไขสภาพแวดล้อม แคช ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลที่สำคัญได้ที่แคชภายใน

ตัวแปรโฟลว์

ตัวแปรโฟลว์สามารถใช้เพื่อกำหนดค่าลักษณะรันไทม์แบบไดนามิกสำหรับนโยบายและโฟลว์ได้ โดยอิงตาม บนส่วนหัว HTTP หรือเนื้อหาข้อความ หรือบริบทที่มีอยู่ในโฟลว์ หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับตัวแปรโฟลว์ โปรดดูตัวแปร ข้อมูลอ้างอิง

คุณสามารถใช้ตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าต่อไปนี้หลังจากที่คุณปรับแต่งลักษณะการทำงานของ แคชที่คุณกำหนดในนโยบาย LookupCache

ตัวแปร ประเภท สิทธิ์ คำอธิบาย
lookupcache.{policy-name}.cachename สตริง อ่านอย่างเดียว แสดงผลชื่อแคชที่ใช้ในนโยบาย
lookupcache.{policy-name}.cachekey สตริง อ่านอย่างเดียว แสดงผลคีย์ที่ใช้
lookupcache.{policy-name}.cachehit บูลีน อ่านอย่างเดียว เป็นจริงหากนโยบายพบค่าสำหรับคีย์แคชที่ระบุ
lookupcache.{policy-name}.assignto สตริง อ่านอย่างเดียว แสดงผลตัวแปรที่กำหนดแคช

รหัสข้อผิดพลาด

ส่วนนี้อธิบายข้อความแสดงข้อผิดพลาดและตัวแปรโฟลว์ที่ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้สำคัญที่ต้องทราบ หากคุณกำลังพัฒนากฎข้อผิดพลาดสำหรับพร็อกซี ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด

คำนำหน้ารหัสข้อผิดพลาด

ไม่มีข้อมูล

ข้อผิดพลาดเกี่ยวกับรันไทม์

นโยบายนี้จะไม่แสดงข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดในการทำให้ใช้งานได้

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้

ชื่อข้อผิดพลาด สาเหตุ แก้ไข
InvalidCacheResourceReference ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <CacheResource> เป็นชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี API ใช้งานได้
InvalidTimeout หากตั้งค่าองค์ประกอบ <CacheLookupTimeoutInSeconds> เป็นตัวเลขติดลบ จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ
CacheNotFound ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้สร้างแคชที่ระบุในข้อความแสดงข้อผิดพลาดบนคอมโพเนนต์โปรแกรมประมวลผลข้อความที่เฉพาะเจาะจง

ตัวแปรของข้อผิดพลาด

ไม่มีข้อมูล

ตัวอย่างการตอบกลับข้อผิดพลาด

ไม่มีข้อมูล