คุณกำลังดูเอกสารประกอบของ 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 |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
| ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
|---|---|
| การมีบุคคลอยู่ | ไม่บังคับ |
| ประเภท | สตริง |
องค์ประกอบ <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 __ หากคุณกำหนดรายการ |
Application |
ใช้ชื่อพร็อกซี API เป็นคำนำหน้า ระบบจะเพิ่มคีย์แคชในรูปแบบ orgName__envName__applicationName. |
Proxy |
ใช้การกำหนดค่า ProxyEndpoint เป็นคำนำหน้า ระบบจะเพิ่มคีย์แคชในรูปแบบ orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName |
Target |
ใช้การกำหนดค่า TargetEndpoint เป็นคำนำหน้า ระบบจะเพิ่มคีย์แคชในรูปแบบ orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName |
Exclusive |
ค่าเริ่มต้น ค่านี้มีความเฉพาะเจาะจงมากที่สุด จึงมีความเสี่ยงน้อยที่สุดที่จะเกิดการชนกันของเนมสเปซ ภายในแคชที่กำหนด คำนำหน้ามี 1 ใน 2 รูปแบบต่อไปนี้
ระบบจะเพิ่มคีย์แคชในรูปแบบ 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>
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่ การสร้างและแก้ไขสภาพแวดล้อม แคช ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บข้อมูลพื้นฐานได้ที่ข้อมูลภายในของแคช
รหัสข้อผิดพลาด
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. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A