นโยบายateateCache ไม่ถูกต้อง

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

กำหนดค่าวิธีล้างค่าที่แคชไว้ออกจากแคช

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

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

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

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

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

&lt;InvalidateCache&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;CacheContext&gt;/&lt;APIProxyName&gt; องค์ประกอบ

ระบุชื่อแอปพลิเคชันที่เพิ่มรายการแคช

<APIProxyName>application_that_added_the_entry</APIProxyName>

Attributes

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

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

ระบุวิธีสร้างคีย์แคชเมื่อค่าขององค์ประกอบ Prefix ไม่ถูกต้อง หรือเพื่อล้างรายการแคชที่เพิ่มโดยพร็อกซี API อื่น

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

ใช้เพื่อสร้าง CacheKey ค่าของ APIProxyName, ProxyName และ TargetName มีดังนี้ จำเป็นเมื่อไม่ได้ใช้คำนำหน้า CacheKey (ซึ่งก็คือคำนำหน้าที่กำหนดเอง) เพื่อล้างรายการแคช ที่เพิ่มโดยพร็อกซี API อื่น

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

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

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

<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;CacheContext&gt;/&lt;ProxyName&gt; องค์ประกอบ

ระบุชื่อของพร็อกซีที่เก็บข้อมูล

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

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

ไม่มี

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

ไม่บังคับ

ประเภท:

สตริง

Attributes

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

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

true เพื่อลบรายการแคชที่ใช้ค่าที่แชร์โดย กำหนดค่าองค์ประกอบ <KeyFragment> สำหรับนโยบายนี้แล้ว ค่าในส่วนอื่นๆ ของ ระบบจะไม่พิจารณาคีย์แคช เช่น ในองค์ประกอบ <Prefix>

โปรดทราบว่าต้องระบุองค์ประกอบ <KeyFragment> หากไม่เป็นเช่นนั้น การตั้งค่าเป็น "จริง" สำหรับ <PurgeChildEntries> อาจทำให้รายการทั้งหมดใน แคช

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

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

เท็จ

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

ไม่บังคับ

ประเภท:

บูลีน

&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

&lt;CacheContext&gt;/&lt;TargetName&gt; องค์ประกอบ

ระบุชื่อของปลายทางเป้าหมายที่มีการแคชข้อมูลไว้

<TargetName>endpoint_for_which_data_was_cached</TargetName>

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

ไม่มี

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

ไม่บังคับ

ประเภท:

สตริง

Attributes

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

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

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

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

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

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 in the InvalidateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A