คุณกำลังดูเอกสารประกอบ 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 องค์กร มีการกำหนดค่าการเข้ารหัสสำหรับองค์กรเหล่านั้นระหว่างองค์กร การจัดสรร
รหัสข้อผิดพลาด
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP Status | Occurs when |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable. |
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 PopulateCache policy is set to
a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
The cache specified in the <CacheResource> element does not
exist. |
build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | populatecache.POP-CACHE-1.failed = true |
Example error response
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Example fault rule
<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>