คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
กำหนดค่าวิธีเขียนค่าที่แคชไว้ขณะรันไทม์
นโยบายแคชประชากรออกแบบมาเพื่อเขียนรายการในแคชชั่วคราวทั่วไป โดยใช้ร่วมกับนโยบายแคช Lookup (สำหรับการอ่านรายการแคช) และนโยบายแคชให้ใช้งานไม่ได้ (สำหรับการทำให้รายการใช้ไม่ได้)
สำหรับการแคชการตอบกลับของทรัพยากรแบ็กเอนด์ โปรดดูนโยบายแคชการตอบกลับ
การอ้างอิงองค์ประกอบ
รายการต่อไปนี้แสดงองค์ประกอบที่คุณกำหนดค่าในนโยบายนี้ได้
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
แอตทริบิวต์ <roweCache>
ตารางต่อไปนี้อธิบายแอตทริบิวต์ที่ใช้ร่วมกันในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มีข้อมูล | จำเป็น |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
false | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
false | เลิกใช้ |
องค์ประกอบ <DisplayName>
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มีข้อมูล หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
Type | สตริง |
องค์ประกอบ <CacheKey>
กำหนดค่าตัวชี้ที่ไม่ซ้ำกันไปยังชิ้นข้อมูลที่เก็บไว้ในแคช
คีย์แคชต้องมีขนาดไม่เกิน 2 KB
<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>
ระบุแคชที่ใช้เก็บข้อความ
ละเว้นองค์ประกอบนี้โดยสิ้นเชิงหากนโยบายนี้ (และนโยบาย LookupCache และ 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>
ดูข้อมูลเพิ่มเติมได้ที่การทํางานกับคีย์แคช
องค์ประกอบ <ExpirySettings>
ระบุเวลาที่รายการแคชควรหมดอายุ หากมี <TimeoutInSeconds>
จะลบล้างทั้ง <TimeOfDay>
และ <ExpiryDate>
<ExpirySettings> <!-- use exactly one of the following child elements --> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
ค่าเริ่มต้น: |
ไม่มีข้อมูล |
สถานที่ตั้ง: |
จำเป็น |
ประเภท: |
ไม่มีข้อมูล |
องค์ประกอบย่อยของ <ExpirySettings>
ใช้องค์ประกอบย่อยเพียงรายการเดียว ตารางต่อไปนี้อธิบายองค์ประกอบย่อยของ <ExpirySettings>
องค์ประกอบย่อย | คำอธิบาย |
---|---|
<TimeoutInSeconds> |
จำนวนวินาทีที่รายการแคชควรหมดอายุ <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> องค์ประกอบนี้จะแทนที่องค์ประกอบ |
<ExpiryDate> |
ระบุวันที่รายการแคชควรหมดอายุ ระบุสตริงในรูปแบบ <ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> หากวันที่ที่ระบุเป็นวันที่ในอดีต นโยบายจะใช้ Time to Live สูงสุดกับรายการที่แคชไว้ ซึ่งสูงสุดคือ 30 วัน |
<TimeOfDay> |
ระบุเวลาของวันที่รายการแคชควรหมดอายุ
ระบุสตริงในรูปแบบ <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
คุณควรระบุองค์ประกอบย่อยที่เป็นไปได้เพียงรายการเดียวเท่านั้น หากคุณระบุองค์ประกอบหลายรายการ ลำดับความสำคัญจะเป็น TimeoutInSeconds
, ExpiryDate
, TimeOfDay
สำหรับองค์ประกอบย่อยแต่ละรายการข้างต้นของ <ExpirySettings>
หากคุณระบุแอตทริบิวต์ ref
ที่ไม่บังคับในองค์ประกอบย่อย นโยบายจะดึงค่าวันหมดอายุจากตัวแปรบริบทที่มีชื่อ หากไม่ได้กำหนดตัวแปรไว้ นโยบายจะใช้ค่าข้อความตามตัวอักษรขององค์ประกอบย่อย
องค์ประกอบ <Scope>
การแจกแจงที่ใช้เพื่อสร้างคำนำหน้าสำหรับคีย์แคชเมื่อไม่ได้ระบุองค์ประกอบ <Prefix>
ในองค์ประกอบ <CacheKey>
<Scope>scope_enumeration</Scope>
ค่าเริ่มต้น: |
"พิเศษ" |
สถานที่ตั้ง: |
ไม่บังคับ |
ประเภท: |
สตริง |
การตั้งค่า <Scope>
จะกำหนดคีย์แคชที่มีการเพิ่มไว้ข้างหน้าตามค่า <Scope>
ตัวอย่างเช่น คีย์แคชจะมีรูปแบบต่อไปนี้เมื่อตั้งค่าขอบเขตเป็น Exclusive
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]
หากองค์ประกอบ <Prefix>
มีอยู่ใน <CacheKey>
องค์ประกอบนั้นจะมีผลแทนค่าองค์ประกอบ <Scope>
ค่าที่ถูกต้องรวมถึงการแจงนับด้านล่าง
คุณใช้องค์ประกอบ <Scope>
ร่วมกับ <CacheKey>
และ <Prefix>
ดูข้อมูลเพิ่มเติมได้ที่การทํางานกับคีย์แคช
ค่าที่ยอมรับ
Global |
ระบบจะแชร์คีย์แคชกับพร็อกซี API ทั้งหมดที่ทำให้ใช้งานได้ในสภาพแวดล้อม คีย์แคชจะเพิ่มไว้ข้างหน้าในรูปแบบ orgName __ envName __ หากคุณกำหนดรายการ |
Application |
ระบบใช้ชื่อพร็อกซี API เป็นคำนำหน้า คีย์แคชจะเพิ่มไว้ข้างหน้าในรูปแบบ orgName__envName__apiProxyName |
Proxy |
โดยจะใช้การกำหนดค่า ProxyEndpoint เป็นคำนำหน้า คีย์แคชจะเพิ่มไว้ข้างหน้าในรูปแบบ orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName |
Target |
มีการใช้การกำหนดค่า TargetEndpoint เป็นคํานําหน้า คีย์แคชที่ใส่ไว้ข้างหน้าในรูปแบบ orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName |
Exclusive |
ค่าเริ่มต้น วิธีนี้เป็นวิธีที่เจาะจงที่สุด จึงมีความเสี่ยงน้อยที่สุดที่จะเกิดข้อขัดแย้งของเนมสเปซภายในแคชหนึ่งๆ คำนำหน้าเป็น 1 ใน 2 รูปแบบต่อไปนี้
คีย์แคชที่แทรกไว้ข้างหน้าในแบบฟอร์ม orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName เช่น สตริงทั้งหมดอาจมีลักษณะดังนี้ apifactory__test__weatherapi__16__default__apiAccessToken. |
องค์ประกอบ <Source>
ระบุตัวแปรที่ควรเขียนค่าลงในแคช
<Source>source_variable</Source>
ค่าเริ่มต้น: |
ไม่มีข้อมูล |
สถานที่ตั้ง: |
จำเป็น |
ประเภท: |
สตริง |
หมายเหตุการใช้งาน
ใช้นโยบายนี้สำหรับการแคชเพื่อวัตถุประสงค์ทั่วไป ระหว่างรันไทม์ นโยบาย <PopulateCache>
จะเขียนข้อมูลจากตัวแปรที่คุณระบุในองค์ประกอบ <Source>
ไปยังแคชที่ระบุไว้ในองค์ประกอบ <CacheResource>
คุณใช้องค์ประกอบ <CacheKey>
, <Scope>
และ <Prefix>
เพื่อระบุคีย์ที่ใช้จากนโยบาย <LookupCache>
เพื่อเรียกข้อมูลค่าได้ ใช้องค์ประกอบ <ExpirySettings>
เพื่อกำหนดค่าว่าค่าที่แคชควรจะหมดอายุเมื่อใด
การแคชที่มีจุดประสงค์ทั่วไปด้วยนโยบาย เป็นระยะเวลาของประชากร นโยบาย LookupCache และนโยบายรหัสแคช ในกรณีส่วนใหญ่ แคชที่แชร์ซึ่งอยู่เบื้องหลังควรตรงตามความต้องการของคุณ หากต้องการใช้แคชนี้ เพียงละเว้นองค์ประกอบ <CacheResource>
ขีดจำกัดแคช: มีการใช้ขีดจำกัดของแคชที่หลากหลาย เช่น ชื่อและขนาดค่า จำนวนแคชทั้งหมด จำนวนรายการในแคช และการหมดอายุ
ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลที่สำคัญได้ที่แคชภายใน ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าแคชได้ที่การสร้างและแก้ไขแคชสภาพแวดล้อม
เกี่ยวกับการเข้ารหัสแคช
Edge for Public Cloud: แคชจะได้รับการเข้ารหัสในองค์กรที่เปิดใช้ PCI และ HIPAA เท่านั้น การกำหนดค่าการเข้ารหัสสำหรับองค์กรเหล่านั้นจะได้รับการกำหนดค่าในระหว่างการจัดสรรองค์กร
รหัสข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | เกิดขึ้นเมื่อ |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | แคชรายการไม่ได้ ออบเจ็กต์ข้อความที่กำลังแคชไม่ใช่อินสแตนซ์ของคลาสที่เป็นแบบ Serializing ได้ |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidCacheResourceReference |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <CacheResource> ในนโยบาย addeCache เป็นชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี API ใช้งานได้ |
build |
CacheNotFound |
ไม่มีแคชที่ระบุในองค์ประกอบ <CacheResource> |
build |
ตัวแปรของข้อผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบาย
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของข้อผิดพลาดตามที่แสดงในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของโค้ดข้อผิดพลาด | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นข้อผิดพลาด | populatecache.POP-CACHE-1.failed = true |
ตัวอย่างการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
ตัวอย่างกฎข้อผิดพลาด
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>