คุณกำลังดูเอกสารประกอบ 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>
<PopulateCache> แอตทริบิวต์
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
ประเภท | สตริง |
<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 ที่เกี่ยวข้องและ นโยบายแคชเก่า) กำลังใช้แคชที่แชร์ซึ่งรวมไว้
<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>
ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช
Attributes
แอตทริบิวต์ | ประเภท | ค่าเริ่มต้น | ต้องระบุ | คำอธิบาย |
---|---|---|---|---|
อ้างอิง | สตริง | ไม่ได้ |
ตัวแปรที่จะรับค่า ไม่ควรใช้หากองค์ประกอบนี้มี ค่าลิเทอรัล |
<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>
ใช้องค์ประกอบย่อยเพียง 1 รายการเท่านั้น ตารางต่อไปนี้จะให้คำอธิบายขององค์ประกอบย่อยของ
<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 |
ค่าเริ่มต้น นี่เป็นค่าที่เฉพาะเจาะจงที่สุด ดังนั้นจึงมีความเสี่ยงต่ำต่อเนมสเปซ ภายในแคชที่ระบุ คำนำหน้าเป็นหนึ่งในสองรูปแบบต่อไปนี้
คีย์แคชที่มีการแทรกไว้ข้างหน้าในแบบฟอร์ม orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName ตัวอย่างเช่น สตริงทั้งหมดอาจมีลักษณะดังนี้ apifactory__test__weatherapi__16__default__apiAccessToken |
<Source> องค์ประกอบ
ระบุตัวแปรที่ควรเขียนค่าลงในแคช
<Source>source_variable</Source>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ต้องระบุ |
ประเภท: |
สตริง |
หมายเหตุการใช้งาน
ใช้นโยบายนี้เพื่อการแคชสำหรับจุดประสงค์ทั่วไป ระหว่างรันไทม์
นโยบาย <PopulateCache>
จะเขียนข้อมูลจากตัวแปรที่คุณระบุในส่วน
<Source>
ลงในแคชที่คุณระบุไว้ใน
องค์ประกอบ <CacheResource>
คุณสามารถใช้ <CacheKey>
<Scope>
และ <Prefix>
เพื่อระบุคีย์ที่คุณ
สามารถใช้จากนโยบาย <LookupCache>
เพื่อดึงข้อมูลค่าได้ ใช้เมนู
<ExpirySettings>
องค์ประกอบที่จะกำหนดค่าว่าค่าที่แคชไว้ควรหมดอายุเมื่อใด
การแคชจุดประสงค์ทั่วไปด้วยนโยบาย PopulateCache, นโยบาย LookupCache และนโยบาย "แคช ใช้ไม่ได้"
แคชที่คุณกำหนดค่าหรือแคชที่แชร์ซึ่งรวมไว้โดยค่าเริ่มต้น ในกรณีส่วนใหญ่ พารามิเตอร์
แคชที่แชร์ที่เกี่ยวข้องควรจะตรงตามความต้องการของคุณ หากต้องการใช้แคชนี้ ให้ละเว้น
องค์ประกอบ <CacheResource>
ขีดจำกัดของแคช: ขีดจำกัดแคชที่หลากหลาย เช่น ชื่อและค่า จำนวนแคชทั้งหมด จำนวนรายการในแคช และวันหมดอายุ
ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลที่สำคัญได้ที่แคชภายใน โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า โปรดดูการสร้างและแก้ไข แคชสภาพแวดล้อม
เกี่ยวกับการเข้ารหัสแคช
Edge for Public Cloud: แคชจะได้รับการเข้ารหัสในเท่านั้น PCI และ HIPAA องค์กร มีการกำหนดค่าการเข้ารหัสสำหรับองค์กรเหล่านั้นระหว่างองค์กร การจัดสรร
รหัสข้อผิดพลาด
ส่วนนี้จะอธิบายรหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงกลับมา และตัวแปรข้อผิดพลาดที่ Edge ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้มีความสำคัญต่อการทราบว่าคุณจะสร้างกฎความผิดพลาดเพื่อ จัดการกับข้อผิดพลาด หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่สิ่งที่คุณจำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการ ข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | เกิดขึ้นเมื่อ |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | ระบบแคชรายการไม่ได้ ออบเจ็กต์ข้อความที่กำลังแคชไม่ใช่อินสแตนซ์ของ ที่ซีเรียลได้ |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidCacheResourceReference |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <CacheResource> ในนโยบาย PopulateCache เป็น
ชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี 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>