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

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

แอตทริบิวต์ <LookupCache>

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

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

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

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

ไม่มีข้อมูล จำเป็น
continueOnError

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

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

false ไม่บังคับ
enabled

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

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

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

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

false เลิกใช้

องค์ประกอบ <DisplayName>

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

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

ไม่มีข้อมูล

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

การมีบุคคลอยู่ ไม่บังคับ
Type สตริง

องค์ประกอบ <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>

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

ข้ามองค์ประกอบนี้ไปเลยหากนโยบายนี้ (รวมถึงนโยบาย CaptioneCache และ invalidateCache ที่เกี่ยวข้อง) ใช้แคชที่แชร์ที่รวมอยู่

<CacheResource>cache_to_use</CacheResource>

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

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

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

องค์ประกอบ <CacheKey>/<KeyFragment>

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

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

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

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

ไม่มีข้อมูล

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

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

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

Attributes

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

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

องค์ประกอบ <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__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

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

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

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

Global

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

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

Application

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

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

Proxy

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

คีย์แคชจะเพิ่มไว้ข้างหน้าในรูปแบบ orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName

Target

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

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

Exclusive

ค่าเริ่มต้น วิธีนี้เป็นวิธีที่เจาะจงที่สุด จึงมีความเสี่ยงน้อยที่สุดที่จะเกิดข้อขัดแย้งของเนมสเปซภายในแคชหนึ่งๆ

คำนำหน้าเป็น 1 ใน 2 รูปแบบต่อไปนี้

  • หากแนบนโยบายไว้กับโฟลว์ ProxyEndpoint คำนำหน้าจะเป็น ApiProxyName_ProxyEndpointName
  • หากมีการแนบนโยบายไว้ที่ TargetEndpoint คำนำหน้าจะเป็นรูปแบบ ApiProxyName_TargetName

คีย์แคชที่นำหน้าในแบบฟอร์ม orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

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

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

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

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

ตัวแปรโฟลว์

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

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

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

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

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

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

ไม่มีข้อมูล

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

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

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

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

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

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

ไม่มีข้อมูล

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

ไม่มีข้อมูล