سياسة رد ذاكرة التخزين المؤقت

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

تخزّن البيانات مؤقتًا من مصدر خلفي، ما يقلّل عدد الطلبات إلى المصدر. عندما ترسل التطبيقات طلبات إلى معرّف الموارد المنتظم نفسه، يمكنك استخدام هذه السياسة لعرض الردود المخزّنة مؤقتًا بدلاً من إعادة توجيه هذه الطلبات إلى خادم الخلفية. يمكن أن تحسّن سياسة ResponseCache أداء واجهة برمجة التطبيقات من خلال تقليل وقت الاستجابة وحركة بيانات الشبكة.

من المحتمل أن تجد ResponseCache مفيدة جدًا عندما يتم تعديل بيانات الخلفية التي تستخدمها واجهة برمجة التطبيقات بشكل دوري فقط. على سبيل المثال، لنفترض أنّ لديك واجهة برمجة تطبيقات تعرض بيانات تقارير الطقس ويتم تحديثها كل عشر دقائق فقط. باستخدام ResponseCache لعرض الاستجابات المخزّنة مؤقتًا بين عمليات إعادة التحميل، يمكنك تقليل عدد الطلبات التي تصل إلى الخلفية. يؤدي ذلك أيضًا إلى تقليل عدد عمليات نقل البيانات على الشبكة.

للتخزين المؤقت العام قصير الأجل، ننصحك باستخدام سياسة "تعبئة ذاكرة التخزين المؤقت". يتم استخدام هذه السياسة مع سياسة البحث في ذاكرة التخزين المؤقت (لقراءة إدخالات ذاكرة التخزين المؤقت) وسياسة إبطال ذاكرة التخزين المؤقت (لإبطال الإدخالات).

شاهِد هذا الفيديو للحصول على مقدمة عن سياسة "ذاكرة التخزين المؤقت للردود".

نماذج

ذاكرة تخزين مؤقت لمدة 10 دقائق

يوضّح هذا النموذج كيفية الاحتفاظ بالردود المخزّنة مؤقتًا لمدة 10 دقائق.

لنفترض أنّ لديك واجهة برمجة تطبيقات على عنوان 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>

في المرة الأولى التي يتلقّى فيها خادم وكيل لواجهة برمجة التطبيقات رسالة طلب لعنوان URL التالي، يتم تخزين الرد مؤقتًا. في الطلب الثاني خلال 10 دقائق، يتم البحث في ذاكرة التخزين المؤقت، ويتم عرض الرد المخزّن مؤقتًا للتطبيق بدون إعادة توجيه الطلب إلى خدمة الخلفية.

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

تخطّي البحث في ذاكرة التخزين المؤقت

يوضّح المثال التالي كيفية تخطّي البحث في ذاكرة التخزين المؤقت وتحديثها. يمكنك أيضًا مشاهدة هذا الفيديو حول استخدام SkipCacheLookup.

يتم تقييم شرط SkipCacheLookup الاختياري (في حال ضبطه) في مسار الطلب. إذا تم تقييم الشرط على أنّه صحيح، يتم تخطّي البحث في ذاكرة التخزين المؤقت وإعادة تحميلها.

من الاستخدامات الشائعة لتحديث ذاكرة التخزين المؤقت الشرطي شرط يحدّد عنوان HTTP معيّنًا يؤدي إلى أن يتم تقييم الشرط على أنّه صحيح. يمكن ضبط تطبيق عميل مستند إلى نصوص برمجية لإرسال طلب بشكل دوري مع عنوان HTTP المناسب، ما يؤدي بشكل صريح إلى إعادة تحميل ذاكرة التخزين المؤقت للاستجابة.

على سبيل المثال، لنفترض أنّ هناك طلبًا إلى واجهة برمجة تطبيقات على عنوان URL التالي:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

لنفترض الآن أنّ سياسة ResponseCache التالية تم إعدادها على هذا الخادم الوكيل. يُرجى العِلم أنّ شرط bypass-cache مضبوط على "صحيح".

<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>

لمزيد من المعلومات حول الشروط، يُرجى الاطّلاع على متغيّرات التدفق والشروط.

مرجع العنصر

يشرح مرجع العناصر عناصر السياسة وسماتها.

<?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

الاسم الداخلي للسياسة. يمكن لقيمة السمة name أن تحتوي على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن لهذه القيمة يتجاوز 255 حرفًا.

يمكنك، إذا أردت، استخدام العنصر <DisplayName> لتصنيف السياسة محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق مطلوب
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع السلوك في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح اختياري
async

تم إيقاف هذه السمة نهائيًا.

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

العنصر <CacheKey>

تضبط هذه السمة مؤشرًا فريدًا على جزء من البيانات المخزّنة في ذاكرة التخزين المؤقت.

يبلغ الحد الأقصى لحجم مفاتيح ذاكرة التخزين المؤقت 2 كيلوبايت.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

القيمة التلقائية:

لا ينطبق

الحضور:

مطلوب

النوع:

لا ينطبق

تنشئ <CacheKey> اسم كل جزء من البيانات المخزّنة في ذاكرة التخزين المؤقت. يتم غالبًا ضبط المفتاح باستخدام قيمة من عناوين الكيانات أو مَعلمات طلب البحث. في هذه الحالات، يجب أن تحدّد السمة ref الخاصة بالعنصر متغيّرًا يحتوي على قيمة المفتاح.

في وقت التشغيل، يتم إلحاق قيم <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>. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

السمات

السمة النوع تلقائي مطلوب الوصف
ref سلسلة لا

المتغيّر الذي سيتم الحصول على القيمة منه. يجب عدم استخدامها إذا كان هذا العنصر يتضمّن قيمة حرفية.

العنصر <CacheKey>/<Prefix>

تحدّد هذه السمة قيمة لاستخدامها كبادئة لمفتاح ذاكرة التخزين المؤقت.

<Prefix>prefix_string</Prefix>

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

استخدِم هذه القيمة بدلاً من <Scope> عندما تريد تحديد قيمة خاصة بك بدلاً من قيمة <Scope> مُعدَّدة. في حال تحديدها، تضيف <Prefix> قيمة مفتاح ذاكرة التخزين المؤقت للإدخالات التي تتم كتابتها في ذاكرة التخزين المؤقت. تتجاوز قيمة العنصر <Prefix> قيمة العنصر <Scope>.

يمكنك استخدام العنصر <Prefix> مع السمتَين <CacheKey> و<Scope>. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

العنصر <ExcludeErrorResponse>

حاليًا، بشكلٍ تلقائي، تخزّن هذه السياسة مؤقتًا استجابات HTTP التي تتضمّن أي رمز حالة ممكن. وهذا يعني أنّه يتم تخزين استجابات النجاح والخطأ مؤقتًا. على سبيل المثال، يتم تلقائيًا تخزين الردود التي تتضمّن رموز الحالة 2xx و3xx مؤقتًا.

اضبط قيمة هذا العنصر على true إذا كنت لا تريد تخزين استجابات الهدف مؤقتًا باستخدام رموز حالة خطأ HTTP، إذ سيتم تخزين الاستجابات التي تتضمّن رموز الحالة من 200 إلى 205 مؤقتًا فقط إذا كانت قيمة هذا العنصر صحيحة. هذه هي رموز حالة HTTP الوحيدة التي يعتبرها Edge رموز &quot;ناجحة&quot;، ولا يمكنك تغيير هذا الربط.

للاطّلاع على مناقشة حول أنماط "ذاكرة التخزين المؤقت للردود" التي يكون فيها هذا العنصر مفيدًا، يُرجى الاطّلاع على مشاركة المنتدى هذه.

ملاحظة: في إصدار مستقبلي (سيتم تحديده)، سيتغير الإعداد التلقائي لهذا العنصر إلى "صحيح". راجِع ملاحظات إصدار 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>

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

<ExpiryDate ref="" />
السمة الوصف تلقائي التواجد في المنزل النوع
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>

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل النوع
ref متغيّر يتضمّن قيمة وقت انتهاء الصلاحية لا ينطبق اختياري سلسلة

العنصر <ExpirySettings>/<TimeoutInSec>

عدد الثواني التي يجب أن تنتهي بعدها صلاحية إدخال ذاكرة التخزين المؤقت

العنصر <ExpirySettings>/<TimeoutInSeconds>

عدد الثواني التي يجب أن تنتهي بعدها صلاحية إدخال ذاكرة التخزين المؤقت عند توفُّر هذا العنصر، يتم تجاهل العناصر المشابهة له، <TimeOfDay> و<ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

ملاحظة: أدخِل قيمة تلقائية للمهلة الزمنية لاستخدامها إذا لم يتلقَّ المرجع قيمة من duration_variable.

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل النوع
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

تتم مشاركة مفتاح ذاكرة التخزين المؤقت بين جميع خوادم وكيل واجهة برمجة التطبيقات التي تم نشرها في البيئة. يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName __ envName __.

إذا حدّدت إدخال <CacheKey> باستخدام <KeyFragment> apiAccessToken ونطاق <Global>، يتم تخزين كل إدخال على النحو orgName__envName__apiAccessToken، يليه القيمة المتسلسلة لرمز الدخول. بالنسبة إلى خادم وكيل لواجهة برمجة التطبيقات تم نشره في بيئة باسم &quot;test&quot; في مؤسسة باسم &quot;apifactory&quot;، سيتم تخزين رموز الدخول ضمن مفتاح ذاكرة التخزين المؤقت التالي: apifactory__test__apiAccessToken.

Application

يتم استخدام اسم خادم وكيل لواجهة برمجة التطبيقات كبادئة.

يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName__envName__apiProxyName.

Proxy

يتم استخدام إعداد ProxyEndpoint كبادئة.

يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالشكل orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

يتم استخدام إعدادات TargetEndpoint كبادئة.

يتم إلحاق مفتاح ذاكرة التخزين المؤقت في النموذج orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

تلقائي: وهذا هو الأكثر تحديدًا، وبالتالي يقلل من خطر حدوث تعارضات في مساحة الاسم ضمن ذاكرة تخزين مؤقت معيّنة.

تتّخذ البادئة أحد الشكلَين التاليَين:

  • إذا كانت السياسة مرتبطة بتدفق ProxyEndpoint، تكون البادئة بالتنسيق ApiProxyName_ProxyEndpointName.
  • إذا تم إرفاق السياسة في TargetEndpoint، ستكون البادئة على النحو التالي: ApiProxyName_TargetName.

يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالنموذج orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

على سبيل المثال، قد يبدو السلسلة الكاملة على النحو التالي:

apifactory__test__weatherapi__16__default__apiAccessToken
.

العنصر <SkipCacheLookup>

تحدّد هذه السمة تعبيرًا، إذا تم تقييمه على أنّه صحيح في وقت التشغيل، يحدّد أنّه يجب تخطّي البحث في ذاكرة التخزين المؤقت ويجب إعادة تحميل ذاكرة التخزين المؤقت. يمكنك أيضًا مشاهدة هذا الفيديو حول استخدام SkipCacheLookup.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

من المثال التالي، إذا تم ضبط المتغيّر bypass-cache على "صحيح" في عنوان وارد، سيتم تخطّي البحث في ذاكرة التخزين المؤقت وتحديثها.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

العنصر <SkipCachePopulation>

تحدّد هذه السمة تعبيرًا يشير إلى أنّه في حال تقييمه على أنّه صحيح في وقت التشغيل، يجب تخطّي عملية الكتابة إلى ذاكرة التخزين المؤقت. يمكنك أيضًا مشاهدة هذا الفيديو حول استخدام SkipCachePopulation.

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

القيمة التلقائية:

لا ينطبق

الحضور:

اختياري

النوع:

سلسلة

على سبيل المثال، سيتم تخطّي عملية الكتابة في ذاكرة التخزين المؤقت في حال كان رمز حالة الردّ 400 أو أعلى:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

العنصر <UseAcceptHeader>

اضبط القيمة على true لإلحاق مفتاح التخزين المؤقت لإدخال ذاكرة التخزين المؤقت للاستجابة بالقيم من عناوين Accept للاستجابة.

يستخدم Edge رؤوس طلبات Accept وAccept-Encoding وAccept-Language وAccept-Charset عند احتساب مفتاح ذاكرة التخزين المؤقت. يمنع هذا الأسلوب العميل من الحصول على نوع وسائط لم يطلبه.

على سبيل المثال، لنفترض أنّ طلبَين وردا من عنوان URL نفسه، وأنّ الطلب الأول يقبل gzip والثاني لا يقبله. سيتم تخزين الطلب الأول مؤقتًا، وسيكون الإدخال المخزّن مؤقتًا (على الأرجح) ردًا مضغوطًا باستخدام gzip. سيقرأ الطلب الثاني القيمة المخزّنة مؤقتًا وقد يعرض بعد ذلك إدخالاً مضغوطًا بتنسيق gzip على برنامج لا يمكنه قراءة هذا التنسيق.

لمزيد من المعلومات، يُرجى الاطّلاع على ضبط مفتاح ذاكرة التخزين المؤقت.

<UseAcceptHeader>false</UseAcceptHeader>

القيمة التلقائية:

خطأ

الحضور:

اختياري

النوع:

منطقي

عنصر <UseResponseCacheHeaders>

اضبط القيمة على true ليتم أخذ عناوين استجابة HTTP في الاعتبار عند ضبط "مدة البقاء" (TTL) للاستجابة في ذاكرة التخزين المؤقت. عندما تكون هذه القيمة صحيحة، يأخذ Edge في الاعتبار قيم عناوين الاستجابة التالية، ويقارن القيم بتلك التي تم ضبطها بواسطة <ExpirySettings> عند ضبط مدة البقاء على قيد الحياة:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

يمكنك الاطّلاع على تحديد تاريخ انتهاء صلاحية إدخال ذاكرة التخزين المؤقت لمزيد من التفاصيل.

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

القيمة التلقائية:

خطأ

الحضور:

اختياري

النوع:

منطقي

ملاحظات الاستخدام

يبلغ الحد الأقصى لحجم كل عنصر مخزّن مؤقتًا 256 كيلوبايت. (للحصول على معلومات مفصّلة حول طريقة معالجة Edge لذاكرة التخزين المؤقت، يُرجى الاطّلاع على التفاصيل الداخلية لذاكرة التخزين المؤقت).

من خلال الإعدادات في سياسة ResponseCache، يمكنك أن يتضمّن Edge عناوين استجابة HTTP في ضبط انتهاء صلاحية إدخال ذاكرة التخزين المؤقت ومفاتيح ذاكرة التخزين المؤقت. يوضّح هذا القسم كيف يمكنك استخدام السياسة مع العناوين لإدارة انتهاء صلاحية ذاكرة التخزين المؤقت ومفاتيح ذاكرة التخزين المؤقت.

لمزيد من المعلومات حول كيفية تعامل Edge مع عناوين الاستجابة باستخدام سياسة ResponseCache، اطّلِع على إتاحة عناوين استجابة HTTP.

ضبط تاريخ انتهاء صلاحية إدخال ذاكرة التخزين المؤقت

كما هو الحال مع سياسة ملء ذاكرة التخزين المؤقت، يمكنك ضبط تاريخ انتهاء صلاحية إدخال ذاكرة التخزين المؤقت للاستجابة (أي مدة بقائه) باستخدام العنصر <ExpirySettings>. في سياسة ResponseCache، يمكنك أيضًا أن تطلب من Edge أخذ عناوين الاستجابة في الاعتبار عند توفّرها.

لاستخدام عناوين الردود، اضبط قيمة العنصر <UseResponseCacheHeaders> على true. يؤدي هذا الإعداد إلى أن يأخذ Edge في الاعتبار عناوين الاستجابة، ويقارنها بالقيمة التي تم ضبطها بواسطة <ExpirySettings>، ثم يستخدم القيمة الأقل بين القيمتين. عند أخذ عناوين الاستجابة في الاعتبار، يختار Edge القيمة المتاحة كما هو موضح في ما يلي:

على سبيل المثال، لنفترض أنّه تم تخزين ردّ مؤقتًا بالقيم التالية:

  • لا توجد قيمة Cache-Control s-maxage
  • قيمة Cache-Control max-age تبلغ 300
  • موعد Expires بعد ثلاثة أيام
  • قيمة <ExpirySettings> TimeoutInSeconds تبلغ 600.

في هذه الحالة، سيتم استخدام قيمة Cache-Control max-age لمدة البقاء (TTL) لأنّها أقل من قيمة <ExpirySettings> ولأنّه لا توجد قيمة Cache-Control s-maxage (التي لها الأولوية على max-age).

إعداد مفتاح ذاكرة التخزين المؤقت

كما هو الحال مع سياسات ذاكرة التخزين المؤقت للأغراض العامة، مثل سياسة Populate Cache، يمكنك استخدام العنصرَين <CacheKey> و<Scope> مع ResponseCache لتحديد إعدادات إنشاء مفتاح ذاكرة التخزين المؤقت لإدخالات ذاكرة التخزين المؤقت. باستخدام ResponseCache، يمكنك أيضًا جعل مفاتيح ذاكرة التخزين المؤقت أكثر دلالةً من خلال إلحاق عناوين Accept الخاصة بالاستجابة بقيم المفاتيح.

للحصول على معلومات عامة حول ضبط مفاتيح ذاكرة التخزين المؤقت، اطّلِع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت. للحصول على معلومات حول استخدام عناوين Accept، يُرجى الاطّلاع على <UseAcceptHeader>.

لمحة عن تشفير ذاكرة التخزين المؤقت

Edge for Public Cloud: يتم تشفير ذاكرة التخزين المؤقت فقط في المؤسسات التي تم تفعيل معيار أمان بيانات صناعة بطاقات الدفع (PCI) وHIPAA فيها. يتم ضبط إعدادات التشفير لهذه المؤسسات أثناء توفير المؤسسة.

متغيّرات سير العمل

يتم ملء متغيرات Flow المحدّدة مسبقًا التالية عند تنفيذ سياسة ResponseCache. لمزيد من المعلومات عن متغيرات Flow، يُرجى الاطّلاع على مرجع المتغيرات.

المتغيّرات النوع الإذن الوصف
responsecache.{policy_name}.cachename سلسلة قراءة فقط تعرض هذه السمة ذاكرة التخزين المؤقت المستخدَمة في السياسة.
responsecache.{policy_name}.cachekey سلسلة قراءة فقط عرض المفتاح المستخدَم
responsecache.{policy_name}.cachehit منطقي قراءة فقط صحيح إذا تم تنفيذ السياسة بنجاح
responsecache.{policy_name}.invalidentry منطقي قراءة فقط صحيح إذا كان إدخال ذاكرة التخزين المؤقت غير صالح

رموز الخطأ

يوضِّح هذا القسم رسائل الخطأ ومتغيّرات التدفق التي يتم تحديدها عندما تؤدي هذه السياسة إلى ظهور خطأ. هذه المعلومات مهمة لمعرفة ما إذا كنت تعمل على تطوير قواعد خطأ لخادم وكيل. لمزيد من المعلومات، يمكنك الاطّلاع على المعلومات التي يجب معرفتها عن الأخطاء المتعلقة بالسياسات وأخطاء المعالجة.

بادئة رمز الخطأ

لا ينطبق

أخطاء في وقت التشغيل

لا تؤدي هذه السياسة إلى حدوث أي أخطاء في وقت التشغيل.

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
InvalidTimeout إذا تم ضبط العنصر <CacheLookupTimeoutInSeconds> في سياسة ResponseCache على رقم سالب، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
InvalidCacheResourceReference يحدث هذا الخطأ إذا تم ضبط العنصر <CacheResource> في سياسة ResponseCache على اسم غير متوفّر في البيئة التي يتم فيها تفعيل الخادم الوكيل لواجهة برمجة التطبيقات.
ResponseCacheStepAttachmentNotAllowedReq يحدث هذا الخطأ إذا كانت سياسة ResponseCache نفسها مرتبطة بمسارات طلبات متعدّدة ضمن أي تدفقات في الخادم الوكيل لواجهة برمجة التطبيقات.
ResponseCacheStepAttachmentNotAllowedResp يحدث هذا الخطأ إذا كانت سياسة ResponseCache مرتبطة بمسارات متعدّدة للاستجابة ضمن أي تدفقات من الخادم الوكيل لواجهة برمجة التطبيقات.
InvalidMessagePatternForErrorCode يحدث هذا الخطأ إذا كان العنصر <SkipCacheLookup> أو العنصر <SkipCachePopulation> في سياسة ResponseCache يحتوي على شرط غير صالح.
CacheNotFound يحدث هذا الخطأ إذا لم يتم إنشاء ذاكرة التخزين المؤقت المحددة المذكورة في رسالة الخطأ على مكون محدد لمعالجة الرسائل.

متغيرات الخطأ

لا ينطبق

مثال على الردّ على الخطأ

لا ينطبق

المخطط

يتم تحديد كل نوع من أنواع السياسات من خلال مخطّط XML (.xsd). وللحصول على مرجع، تتوفّر مخطّطات السياسات على GitHub.