คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
แคชข้อมูลจากทรัพยากรแบ็กเอนด์ ซึ่งจะลดจำนวนคำขอไปยังทรัพยากร ในรูปแบบแอป ส่งคำขอไปยัง URI เดียวกัน คุณสามารถใช้นโยบายนี้เพื่อแสดงการตอบกลับที่แคชไว้แทน ส่งต่อคำขอเหล่านั้นไปยังเซิร์ฟเวอร์แบ็กเอนด์ นโยบาย ResponseCache ช่วยปรับปรุง API ประสิทธิภาพผ่านเวลาในการตอบสนองและการจราจรของข้อมูลในเครือข่ายที่ลดลง
คุณอาจพบว่า ResponseCache มีประโยชน์มากที่สุดเมื่อข้อมูลแบ็กเอนด์ที่ใช้โดย API ของคุณอัปเดต เป็นระยะๆ เท่านั้น ตัวอย่างเช่น สมมติว่าคุณมี API ที่แสดงข้อมูลรายงานสภาพอากาศ จะรีเฟรชทุก 10 นาทีเท่านั้น ใช้ ResponseCache เพื่อแสดงผลการตอบกลับที่แคชไว้ระหว่าง คุณสามารถลดจำนวนคำขอที่ไปถึงแบ็กเอนด์ได้ ซึ่งยังช่วยลด จำนวนการกระโดดข้ามเครือข่าย
สำหรับวัตถุประสงค์ทั่วไปในการแคชระยะสั้น ให้พิจารณาใช้นโยบายแคชการเติมข้อมูล นโยบายดังกล่าวจะใช้ร่วมกับนโยบายแคชการค้นหา (สำหรับการอ่านรายการแคช) และ นโยบายแคชใช้งานไม่ได้ (สำหรับการทำรายการให้เป็นโมฆะ)
ดูวิดีโอนี้สำหรับการแนะนำนโยบายแคชการตอบกลับ
ตัวอย่าง
แคช 10 นาที
ตัวอย่างนี้แสดงวิธีเก็บการตอบกลับที่แคชไว้สำหรับ 10 นาที
ลองนึกภาพว่าคุณมี API ที่ URL ต่อไปนี้
http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778
คุณใช้พารามิเตอร์การค้นหา w
เป็นคีย์แคช Apigee Edge จะตรวจสอบ
ของพารามิเตอร์การค้นหา w
ทุกครั้งที่ได้รับคำขอ หากถูกต้อง (ที่
สถานะ (ยังไม่หมดอายุ) มีอยู่ในแคช ข้อความตอบกลับที่แคชไว้จะเป็น
กลับไปที่ไคลเอ็นต์ที่ส่งคำขอ
ตอนนี้สมมติว่าคุณได้กำหนดค่านโยบาย ResponseCache ไว้ดังต่อไปนี้
<ResponseCache name="ResponseCache"> <CacheKey> <KeyFragment ref="request.queryparam.w" /> </CacheKey> <ExpirySettings> <TimeoutInSeconds>600</TimeoutInSeconds> </ExpirySettings> </ResponseCache>
ครั้งแรกที่พร็อกซี API ได้รับข้อความคำขอสำหรับ URL ต่อไปนี้ มีการแคชการตอบกลับแล้ว ในคำขอที่ 2 ภายใน 10 นาที จะมีการค้นหาแคชเกิดขึ้น ระบบจะส่งการตอบสนองที่แคชไว้ไปยังแอปโดยไม่มีการส่งต่อคำขอไปยังบริการแบ็กเอนด์
http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778
ข้ามการค้นหาแคช
ตัวอย่างต่อไปนี้แสดงวิธีข้ามการค้นหาแคชและใช้แคช รีเฟรชแล้ว ดูเพิ่มเติมที่ ในวิดีโอนี้โดยใช้ SkipCacheLookup
ระบบจะประเมินเงื่อนไข SkipCacheLookup (หากกําหนดค่าไว้) ในเส้นทางคําขอ หากเงื่อนไขประเมินเป็น "จริง" ระบบจะข้ามการค้นหาแคชและแคชจะ รีเฟรชแล้ว
การใช้งานทั่วไปของการรีเฟรชแคชแบบมีเงื่อนไขคือเงื่อนไขที่กำหนด HTTP เฉพาะ ส่วนหัวที่ทำให้เงื่อนไขประเมินเป็น "จริง" แอปพลิเคชันไคลเอ็นต์ที่ใช้สคริปต์อาจเป็น มีการกำหนดค่าให้ส่งคำขอที่มีส่วนหัว HTTP ที่เหมาะสมเป็นระยะๆ ซึ่งทำให้แคชการตอบกลับรีเฟรช
ตัวอย่างเช่น สมมติว่ามีการเรียก API ที่ URL ต่อไปนี้:
'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"
คราวนี้ลองนึกภาพนโยบาย ResponseCache ต่อไปนี้ที่กำหนดค่าบนพร็อกซีนั้น โปรดทราบว่า กำหนดเงื่อนไขบายพาสแคชเป็น "จริง"
<ResponseCache name="ResponseCache"> <CacheKey> <KeyFragment ref="request.queryparam.w" /> </CacheKey> <!-- Explicitly refresh the cached response --> <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup> <ExpirySettings> <TimeoutInSeconds>600</TimeoutInSeconds> </ExpirySettings> </ResponseCache>
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเงื่อนไข โปรดดูตัวแปรโฟลว์และ ของ Google
การอ้างอิงองค์ประกอบ
การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1"> <DisplayName>Response Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.uri" /> </CacheKey> <Scope>Exclusive</Scope> <ExpirySettings> <ExpiryDate/> <TimeOfDay/> <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds> </ExpirySettings> <CacheResource>cache_to_use</CacheResource> <CacheLookupTimeoutInSeconds/> <ExcludeErrorResponse/> <SkipCacheLookup/> <SkipCachePopulation/> <UseAcceptHeader/> <UseResponseCacheHeaders/> </ResponseCache>
<ResponseCache> แอตทริบิวต์
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
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>
ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช
<CacheLookupTimeoutInSeconds> องค์ประกอบ
ระบุจำนวนวินาทีหลังจากที่ระบบพิจารณาการค้นหาแคชที่ไม่สำเร็จ ไม่พบแคช หากเป็นเช่นนี้ ขั้นตอนจะกลับมาทำงานอีกครั้งตามเส้นทางที่ไม่มีข้อมูลแคช
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
ค่าเริ่มต้น: |
30 |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
<CacheResource> องค์ประกอบ
ระบุแคชที่ใช้เก็บข้อความ ละเว้นองค์ประกอบนี้เพื่อใช้ แคชที่แชร์ คุณควรระบุ CacheResource ตามชื่อหากต้องการ รายการที่ชัดเจนในการดูแลระบบในแคช สำหรับข้อมูลเพิ่มเติม โปรดดูที่แคช
<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>
ดูข้อมูลเพิ่มเติมได้ที่การใช้งานคีย์แคช
<ExcludeErrorResponse> องค์ประกอบ
ในปัจจุบัน นโยบายนี้แคชการตอบกลับ HTTP ไว้ที่ใดก็ได้โดยค่าเริ่มต้น รหัสสถานะ ซึ่งหมายความว่าระบบจะแคชการตอบกลับที่สำเร็จและข้อผิดพลาดไว้ เช่น คำตอบที่มี ทั้งรหัสสถานะ 2xx และ 3xx จะถูกแคชไว้โดยค่าเริ่มต้น
ตั้งค่าองค์ประกอบนี้เป็น true
หากคุณไม่ต้องการแคชเป้าหมาย
การตอบกลับที่มีรหัสสถานะข้อผิดพลาด HTTP การตอบกลับที่มีรหัสสถานะจาก 200 ถึง 205 เท่านั้นที่จะได้รับ
แคชไว้หากองค์ประกอบนี้เป็นจริง รหัสสถานะ HTTP เหล่านี้เป็นรหัสสถานะ HTTP เพียงรหัสเดียวที่ Edge นับเป็น
"ความสำเร็จ" และคุณไม่สามารถเปลี่ยนการเชื่อมโยงนี้ได้
หากต้องการพูดคุยเกี่ยวกับรูปแบบแคชการตอบกลับซึ่งองค์ประกอบนี้มีประโยชน์ โปรดดูโพสต์ชุมชนนี้
หมายเหตุ: ในรุ่นถัดไป (รอการกำหนด) การตั้งค่าเริ่มต้นของ จะเปลี่ยนเป็น "จริง" ดู Apigee บันทึกประจำรุ่นเพื่อดูรายละเอียด
<ExcludeErrorResponse>true</ExcludeErrorResponse>
ค่าเริ่มต้น: |
เท็จ |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
บูลีน |
<ExpirySettings> องค์ประกอบ
ระบุเวลาที่รายการแคชควรหมดอายุ หากมี <TimeoutInSeconds>
จะลบล้างทั้ง <TimeOfDay>
และ <ExpiryDate>
<ExpirySettings> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> </ExpirySettings>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ต้องระบุ |
ประเภท: |
ไม่มี |
<ExpirySettings>/<ExpiryDate> องค์ประกอบ
ระบุวันที่ที่รายการแคชจะหมดอายุ ใช้แบบฟอร์ม mm-dd-yyyy
หากมี <TimeoutInSeconds>
ข้างเคียงขององค์ประกอบนี้จะลบล้าง
<ExpiryDate>
<ExpirySettings> <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate> </ExpirySettings>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
สตริง |
Attributes
<ExpiryDate ref="" />
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ | ประเภท |
---|---|---|---|---|
อ้างอิง |
ตัวแปรที่จะรับค่า ไม่ควรใช้หากองค์ประกอบนี้มี ค่าลิเทอรัล |
ไม่มี | ไม่บังคับ | สตริง |
<ExpirySettings>/<TimeOfDay> องค์ประกอบ
เวลาที่รายการแคชควรหมดอายุ ใช้แบบฟอร์ม hh:mm:ss
หากมี <TimeoutInSeconds>
ข้างเคียงขององค์ประกอบนี้จะลบล้าง
<TimeOfDay>
ป้อนเวลาของวันในรูปแบบ HH:mm:ss โดยที่ HH จะแสดงชั่วโมงในรูปแบบนาฬิกาแบบ 24 ชั่วโมง สำหรับ เช่น 14:30:00 สำหรับ 2:30 ในช่วงบ่าย
สำหรับเวลาของวัน ภาษาและเขตเวลาเริ่มต้นจะแตกต่างกันไปตามตำแหน่งของรหัส ทำงาน (ซึ่งไม่ทราบเมื่อกำหนดค่านโยบาย) สำหรับข้อมูลเกี่ยวกับการกำหนดค่า โปรดดูการสร้างและแก้ไข แคชสภาพแวดล้อม
<ExpirySettings> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
สตริง |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ | ประเภท |
---|---|---|---|---|
อ้างอิง | ตัวแปรที่มีค่าเวลาหมดอายุ | ไม่มี | ไม่บังคับ | สตริง |
<ExpirySettings>/<TimeoutInSec> องค์ประกอบ
จำนวนวินาทีที่รายการแคชควรหมดอายุ
<ExpirySettings>/<TimeoutInSeconds> องค์ประกอบ
จำนวนวินาทีที่รายการแคชควรหมดอายุ เมื่อมีอยู่ องค์ประกอบนี้
จะลบล้างรายการข้างเคียง <TimeOfDay>
และ <ExpiryDate>
<ExpirySettings> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> </ExpirySettings>
หมายเหตุ: ระบุค่าระยะหมดเวลาเริ่มต้นเพื่อใช้ในกรณีที่ข้อมูลอ้างอิงไม่ได้รับค่าจาก
duration_variable
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
สตริง |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ | ประเภท |
---|---|---|---|---|
อ้างอิง | ตัวแปรที่มีค่าระยะหมดเวลา |
ไม่มี
|
ไม่บังคับ | สตริง |
<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 |
<SkipCacheLookup> องค์ประกอบ
กำหนดนิพจน์ที่หากประเมินเป็น true ที่รันไทม์ จะระบุการค้นหาแคชนั้น ควรข้ามและควรรีเฟรชแคช ดูเพิ่มเติมที่ วิดีโอเกี่ยวกับการใช้ SkipCacheLookup
<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
สตริง |
จากตัวอย่างต่อไปนี้ หากตั้งค่าตัวแปรการข้ามแคชเป็น "จริง" ในส่วนหัวขาเข้า ระบบจะข้ามการค้นหาแคชและรีเฟรชแคช
<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
<SkipCachePopulation> องค์ประกอบ
กำหนดนิพจน์ที่หากประเมินเป็น true ที่รันไทม์ จะระบุว่าการเขียนไปยังฟังก์ชัน ควรข้ามแคช ดูเพิ่มเติมที่ วิดีโอเกี่ยวกับการใช้ SkipCachePopulation
<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>
ค่าเริ่มต้น: |
ไม่มี |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
สตริง |
ตัวอย่างเช่น โค้ดต่อไปนี้จะข้ามการเขียนแคชหากรหัสสถานะการตอบสนองคือ 400 หรือ สูงกว่า:
<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>
<UseAcceptHeader> องค์ประกอบ
ตั้งค่าเป็น true
เพื่อให้คีย์แคชของรายการแคชการตอบกลับต่อท้ายด้วยค่าจาก
คำตอบ ยอมรับส่วนหัว
Edge ใช้ Accept
, Accept-Encoding
, Accept-Language
และส่วนหัวของคำขอ Accept-Charset
เมื่อคำนวณคีย์แคช วิธีนี้
ป้องกันไม่ให้ไคลเอ็นต์ได้รับประเภทสื่อที่ไม่ได้ขอ
ตัวอย่างเช่น พิจารณาว่าคำขอ 2 รายการมาจาก URL เดียวกัน โดยคำขอแรก ยอมรับ gzip ส่วนที่สองไม่ยอมรับ ระบบจะแคชคำขอแรกและรายการที่แคชไว้ (อาจจะ) เป็นการตอบกลับในรูปแบบ gzip คำขอที่ 2 จะอ่านค่าที่แคชไว้แล้ว ส่งกลับรายการที่ gzip ไปยังไคลเอ็นต์ที่ไม่สามารถอ่าน gzip
ดูข้อมูลเพิ่มเติมในการกำหนดค่าคีย์แคช
<UseAcceptHeader>false</UseAcceptHeader>
ค่าเริ่มต้น: |
เท็จ |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
บูลีน |
<UseResponseCacheHeaders> องค์ประกอบ
ตั้งค่าเป็น true
เพื่อพิจารณาส่วนหัวการตอบกลับ HTTP เมื่อตั้งค่า "เวลาเป็น"
เผยแพร่อยู่" (TTL) ของการตอบกลับในแคช เมื่อเป็นจริง Edge จะพิจารณาค่าของฟิลด์
ตามส่วนหัวการตอบกลับ เปรียบเทียบค่ากับค่าที่กำหนดโดย
<ExpirySettings>
เมื่อตั้งค่า Time to Live:
Cache-Control s-maxage
Cache-Control max-age
Expires
ดูข้อมูลเพิ่มเติมในการตั้งค่าวันหมดอายุของรายการแคช รายละเอียด
<UseResponseCacheHeaders>false</UseResponseCacheHeaders>
ค่าเริ่มต้น: |
เท็จ |
การตรวจหาบุคคล: |
ไม่บังคับ |
ประเภท: |
บูลีน |
หมายเหตุการใช้งาน
ขนาดสูงสุดของแต่ละออบเจ็กต์ที่แคชคือ 256 KB (สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีที่ Edge ประมวลผลแคช โปรดดูแคช ภายใน)
คุณจะทำให้ Edge รวมการตอบกลับ HTTP ได้ผ่านการกำหนดค่าในนโยบาย ResponseCache ส่วนหัวในการตั้งค่าการหมดอายุของรายการแคชและคีย์แคช ส่วนนี้อธิบายว่าคุณสามารถใช้ นโยบายที่มีส่วนหัวเพื่อจัดการการหมดอายุของแคชและคีย์แคช
โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Edge จัดการส่วนหัวการตอบกลับด้วยนโยบาย ResponseCache ที่หัวข้อการรองรับส่วนหัวการตอบกลับ HTTP
การตั้งค่าการหมดอายุของรายการแคช
เช่นเดียวกับคอลัมน์ การป้อนข้อมูล
นโยบายแคช คุณสามารถตั้งค่าการหมดอายุของรายการแคชการตอบกลับ (เวลาที่จะเผยแพร่) โดยใช้
องค์ประกอบ <ExpirySettings>
ในนโยบาย ResponseCache คุณยังใช้ Edge ได้
พิจารณาใช้ส่วนหัวการตอบกลับเมื่อมี
หากต้องการใช้ส่วนหัวการตอบกลับ ให้กำหนดค่าองค์ประกอบ <UseResponseCacheHeaders>
เป็น
true การตั้งค่าดังกล่าวจะทำให้ Edge พิจารณาส่วนหัวการตอบกลับ เปรียบเทียบกับชุดค่า
ภายในวันที่ <ExpirySettings>
แล้วใช้ค่าต่ำสุดระหว่างค่าทั้งสอง วันและเวลา
จากส่วนหัวการตอบกลับ Edge จะเลือกค่าที่มีให้ตามที่อธิบายไว้ใน
ดังต่อไปนี้:
ตัวอย่างเช่น สมมติว่าระบบแคชการตอบกลับไว้ในแคชด้วยค่าต่อไปนี้
- ไม่มีค่า
Cache-Control s-maxage
- ค่า
Cache-Control max-age
เท่ากับ 300 - วันที่
Expires
ในอีก 3 วัน - ค่า
<ExpirySettings>
TimeoutInSeconds
เท่ากับ 600
ในกรณีนี้ ระบบจะใช้ค่า max-age
ของ Cache-Control
สำหรับ
TTL เนื่องจากต่ำกว่าค่า <ExpirySettings>
และเนื่องจากมี
ไม่มีค่า Cache-Control s-maxage
(ซึ่งมีลำดับความสำคัญสูงกว่า
max-age
)
การกำหนดค่าคีย์แคช
เช่นเดียวกับนโยบายแคชสำหรับจุดประสงค์ทั่วไป เช่น นโยบายแคชการเติมข้อมูล โดย
ResponseCache ที่ใช้องค์ประกอบ <CacheKey>
และ <Scope>
กำหนดค่าการสร้างคีย์แคชสำหรับรายการแคช คุณใช้ ResponseCache เพื่อสร้างคีย์แคชได้ด้วย
มีความหมายมากขึ้นด้วยการใส่ส่วนหัว "การยอมรับการตอบกลับ" ต่อท้ายค่าคีย์
ดูข้อมูลทั่วไปเกี่ยวกับการกำหนดค่าคีย์แคชได้ที่การใช้งานคีย์แคช สำหรับ
ข้อมูลเกี่ยวกับการใช้ส่วนหัว "ยอมรับ" โปรดดู <UseAcceptHeader>
เกี่ยวกับการเข้ารหัสแคช
Edge for Public Cloud: แคชจะได้รับการเข้ารหัสในเท่านั้น PCI และ HIPAA องค์กร มีการกำหนดค่าการเข้ารหัสสำหรับองค์กรเหล่านั้นระหว่างองค์กร การจัดสรร
ตัวแปรโฟลว์
ระบบจะป้อนข้อมูลตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าต่อไปนี้เมื่อบังคับใช้นโยบาย ResponseCache ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรโฟลว์ได้ที่ข้อมูลอ้างอิงตัวแปร
ตัวแปร | ประเภท | สิทธิ์ | คำอธิบาย |
---|---|---|---|
responsecache.{policy_name}.cachename |
สตริง | อ่านอย่างเดียว | แสดงแคชที่ใช้ในนโยบาย |
responsecache.{policy_name}.cachekey |
สตริง | อ่านอย่างเดียว | แสดงคีย์ที่ใช้ |
responsecache.{policy_name}.cachehit |
บูลีน | อ่านอย่างเดียว | จริงหากการบังคับใช้นโยบายสำเร็จ |
responsecache.{policy_name}.invalidentry |
บูลีน | อ่านอย่างเดียว | เป็นจริงหากรายการแคชไม่ถูกต้อง |
รหัสข้อผิดพลาด
ส่วนนี้อธิบายข้อความแสดงข้อผิดพลาดและตัวแปรโฟลว์ที่ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้สำคัญที่ต้องทราบ หากคุณกำลังพัฒนากฎข้อผิดพลาดสำหรับพร็อกซี ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
คำนำหน้ารหัสข้อผิดพลาด
ไม่มีข้อมูล
ข้อผิดพลาดเกี่ยวกับรันไทม์
นโยบายนี้จะไม่แสดงข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidTimeout |
หากตั้งค่าองค์ประกอบ <CacheLookupTimeoutInSeconds> ของนโยบาย ResponseCache เป็นตัวเลขติดลบ การติดตั้งใช้งานพร็อกซี API จะไม่สําเร็จ |
build |
InvalidCacheResourceReference |
ข้อผิดพลาดนี้เกิดขึ้นหากองค์ประกอบ <CacheResource> ในนโยบาย ResponseCache เป็นชื่อที่ไม่มีอยู่ในสภาพแวดล้อมที่ทำให้พร็อกซี API ใช้งานได้ |
build |
ResponseCacheStepAttachmentNotAllowedReq |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการแนบนโยบาย ResponseCache เดียวกันกับเส้นทางคําขอหลายเส้นทางภายในขั้นตอนใดก็ตามของพร็อกซี API | build |
ResponseCacheStepAttachmentNotAllowedResp |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการแนบนโยบาย ResponseCache เดียวกันกับเส้นทางการตอบกลับหลายเส้นทางภายในโฟลว์ใดๆ ของพร็อกซี API | build |
InvalidMessagePatternForErrorCode |
ข้อผิดพลาดนี้เกิดขึ้นหากองค์ประกอบ <SkipCacheLookup> หรือองค์ประกอบ <SkipCachePopulation> ในนโยบาย ResponseCache มีเงื่อนไขที่ไม่ถูกต้อง |
build |
CacheNotFound |
ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้สร้างแคชที่ระบุในข้อความแสดงข้อผิดพลาดบนคอมโพเนนต์โปรแกรมประมวลผลข้อความที่เฉพาะเจาะจง | build |
ตัวแปรของข้อผิดพลาด
ไม่มีข้อมูล
ตัวอย่างการตอบกลับข้อผิดพลาด
ไม่มีข้อมูล
สคีมา
นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd
) สคีมานโยบายสำหรับใช้อ้างอิง
ที่มีอยู่ใน GitHub