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

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

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

นโยบายนี้มีไว้เพื่อใช้ในการแคชแบบอเนกประสงค์ระยะสั้น โดยใช้ร่วมกับ นโยบาย Populate Cache (สำหรับการเขียนรายการ) และนโยบาย Lookup Cache (สำหรับการอ่านรายการแคช)

หากต้องการแคชการตอบกลับของทรัพยากรแบ็กเอนด์ โปรดดูนโยบาย Response Cache

ข้อมูลอ้างอิงองค์ประกอบ

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

<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>

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

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

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

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

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

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

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

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

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

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

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

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

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

เท็จ เลิกใช้

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

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

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

ไม่มี

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

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

องค์ประกอบ <CacheContext>/<APIProxyName>

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

<APIProxyName>application_that_added_the_entry</APIProxyName>

แอตทริบิวต์

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

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

ระบุวิธีสร้างคีย์แคชเมื่อไม่ได้ระบุค่าองค์ประกอบ 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 อื่น

องค์ประกอบ <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> ดูข้อมูลเพิ่มเติมได้ที่การทำงานกับคีย์แคช

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

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

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

<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> ดูข้อมูลเพิ่มเติมได้ที่การทำงานกับคีย์แคช

แอตทริบิวต์

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

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

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

<Prefix>prefix_string</Prefix>

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

ไม่มี

การมีบุคคลอยู่:

ไม่บังคับ

ประเภท:

สตริง

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

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

องค์ประกอบ <CacheContext>/<ProxyName>

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

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

ไม่มี

การมีบุคคลอยู่:

ไม่บังคับ

ประเภท:

สตริง

แอตทริบิวต์

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

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

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

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

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

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

เท็จ

การมีบุคคลอยู่:

ไม่บังคับ

ประเภท:

บูลีน

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

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

<Scope>scope_enumeration</Scope>

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

"Exclusive"

การมีบุคคลอยู่:

ไม่บังคับ

ประเภท:

สตริง

การตั้งค่า <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 ที่ทำให้ใช้งานได้ในสภาพแวดล้อมที่ชื่อว่า '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

องค์ประกอบ <CacheContext>/<TargetName>

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

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

ไม่มี

การมีบุคคลอยู่:

ไม่บังคับ

ประเภท:

สตริง

แอตทริบิวต์

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

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

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

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

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

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

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

ไม่มีข้อมูล

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

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

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

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

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

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

ไม่มีข้อมูล

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

ไม่มีข้อมูล